XPlor/libs/xassets/xfxtraildef.cpp

58 lines
1.5 KiB
C++

#include "xfxtraildef.h"
XFxTrailDef::XFxTrailDef()
: XAsset()
, mScrollTimeMsec(0)
, mRepeatDist(0)
, mSplitDist(0)
, mVertCount(0)
, mVerts()
, mIndCount(0)
, mIndices()
{
SetName("Trail Definition");
}
void XFxTrailDef::Clear()
{
mScrollTimeMsec = 0;
mRepeatDist = 0;
mSplitDist = 0;
mVertCount = 0;
mVerts = QVector<XFxTrailVertex>();
mIndCount = 0;
mIndices = QVector<quint32>();
}
void XFxTrailDef::ParseData(XDataStream *aStream)
{
mScrollTimeMsec = aStream->ParseInt32(QString("%1 scroll time (ms)").arg(GetName()));
mRepeatDist = aStream->ParseInt32(QString("%1 repeat dist").arg(GetName()));
mSplitDist = aStream->ParseInt32(QString("%1 split dist").arg(GetName()));
mVertCount = aStream->ParseInt32(QString("%1 vert count").arg(GetName()));
qint32 vertsPtr = aStream->ParseInt32(QString("%1 verts ptr").arg(GetName()));
mIndCount = aStream->ParseUInt32(QString("%1 sort order").arg(GetName()));
qint32 indicesPtr = aStream->ParseInt32(QString("%1 indices ptr").arg(GetName()));
if (vertsPtr)
{
for (int i = 0; i < mVertCount; i++)
{
XFxTrailVertex newVert;
newVert.ParseData(aStream);
mVerts.push_back(newVert);
}
}
if (indicesPtr)
{
for (int i = 0; i < mIndCount; i++)
{
mIndices.push_back(aStream->ParseUInt16(QString("%1 index %2").arg(GetName()).arg(i)));
}
}
}