XPlor/libs/xassets/xmodellodinfo.cpp

41 lines
1.1 KiB
C++

#include "xmodellodinfo.h"
XModelLodInfo::XModelLodInfo()
: XAsset()
, mDist(0)
, mNumSurfs(0)
, mSurfIndex(0)
, mPartBits()
, mLod(0)
, mSmcIndexPlusOne(0)
, mSmcAllocBits(0)
{
SetName("Model LOD Info");
}
void XModelLodInfo::ParseData(XDataStream *aStream)
{
mDist = aStream->ParseSingle(QString("%1 distance").arg(GetName()));
mNumSurfs = aStream->ParseUInt16(QString("%1 number surfaces").arg(GetName()));
mSurfIndex = aStream->ParseUInt16(QString("%1 surface index").arg(GetName()));
for (int i = 0; i < 4; i++)
{
mPartBits.push_back(aStream->ParseInt32(QString("%1 part bit %2").arg(GetName()).arg(i)));
}
mLod = aStream->ParseUInt8(QString("%1 level of detail").arg(GetName()));
mSmcIndexPlusOne = aStream->ParseUInt8(QString("%1 smc index plus one").arg(GetName()));
mSmcAllocBits = aStream->ParseUInt8(QString("%1 smc alloc bits").arg(GetName()));
aStream->skipRawData(1);
}
void XModelLodInfo::Clear()
{
mDist = 0;
mNumSurfs = 0;
mSurfIndex = 0;
mPartBits.clear();
mLod = 0;
mSmcIndexPlusOne = 0;
mSmcAllocBits = 0;
}