58 lines
1.5 KiB
C++
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)));
|
|
}
|
|
}
|
|
}
|