XPlor/libs/xassets/xcollisionpartition.cpp

48 lines
1.1 KiB
C++

#include "xcollisionpartition.h"
XCollisionPartition::XCollisionPartition()
: XAsset()
, mTriCount(0)
, mBorderCount(0)
, mFirstTri(0)
, mBorders()
{
SetName("Collision Partition");
}
XCollisionPartition::~XCollisionPartition()
{
}
void XCollisionPartition::ParseData(XDataStream *aStream) {
if (GetPtr() == -1) {
mTriCount = aStream->ParseUInt8(QString("%1 tri count").arg(GetName()));
mBorderCount = aStream->ParseUInt8(QString("%1 border count").arg(GetName()));
aStream->skipRawData(2);
mFirstTri = aStream->ParseUInt32(QString("%1 first tri").arg(GetName()));
qint32 bordersPtr;
bordersPtr = aStream->ParseUInt32(QString("%1 first tri").arg(GetName()));
if (bordersPtr == -1)
{
for (int i = 0; i < mBorderCount; i++)
{
XCollisionBorder newBorder;
newBorder.ParseData(aStream);
mBorders.append(newBorder);
}
}
}
}
void XCollisionPartition::Clear()
{
mTriCount = 0;
mBorderCount = 0;
mFirstTri = 0;
mBorders = QVector<XCollisionBorder>();
}