2025-08-17 13:14:17 -04:00
|
|
|
#include "xcollisionpartition.h"
|
|
|
|
|
|
|
|
|
|
XCollisionPartition::XCollisionPartition()
|
2025-09-05 18:35:17 -04:00
|
|
|
: XAsset()
|
|
|
|
|
, mTriCount(0)
|
|
|
|
|
, mBorderCount(0)
|
|
|
|
|
, mFirstTri(0)
|
|
|
|
|
, mBorders()
|
|
|
|
|
{
|
2025-09-10 21:58:26 -04:00
|
|
|
SetName("Collision Partition");
|
2025-08-17 13:14:17 -04:00
|
|
|
}
|
|
|
|
|
|
2025-09-05 18:35:17 -04:00
|
|
|
XCollisionPartition::~XCollisionPartition()
|
|
|
|
|
{
|
2025-08-17 13:14:17 -04:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-10 21:58:26 -04:00
|
|
|
void XCollisionPartition::ParseData(XDataStream *aStream) {
|
2025-09-05 18:35:17 -04:00
|
|
|
if (GetPtr() == -1) {
|
2025-12-19 23:06:03 -05:00
|
|
|
mTriCount = aStream->ParseUInt8(QString("%1 tri count").arg(GetName()));
|
|
|
|
|
mBorderCount = aStream->ParseUInt8(QString("%1 border count").arg(GetName()));
|
2025-09-07 23:15:49 -04:00
|
|
|
|
|
|
|
|
aStream->skipRawData(2);
|
|
|
|
|
|
2025-12-19 23:06:03 -05:00
|
|
|
mFirstTri = aStream->ParseUInt32(QString("%1 first tri").arg(GetName()));
|
2025-09-07 23:15:49 -04:00
|
|
|
|
2025-12-19 23:06:03 -05:00
|
|
|
qint32 bordersPtr;
|
|
|
|
|
bordersPtr = aStream->ParseUInt32(QString("%1 first tri").arg(GetName()));
|
2025-09-07 23:15:49 -04:00
|
|
|
if (bordersPtr == -1)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < mBorderCount; i++)
|
|
|
|
|
{
|
|
|
|
|
XCollisionBorder newBorder;
|
|
|
|
|
newBorder.ParseData(aStream);
|
|
|
|
|
mBorders.append(newBorder);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-09-05 18:35:17 -04:00
|
|
|
}
|
2025-08-17 13:14:17 -04:00
|
|
|
}
|
|
|
|
|
|
2025-09-05 18:35:17 -04:00
|
|
|
void XCollisionPartition::Clear()
|
|
|
|
|
{
|
|
|
|
|
mTriCount = 0;
|
|
|
|
|
mBorderCount = 0;
|
|
|
|
|
mFirstTri = 0;
|
|
|
|
|
mBorders = QVector<XCollisionBorder>();
|
2025-08-17 13:14:17 -04:00
|
|
|
}
|