57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#include "xeffectdef.h"
|
|
|
|
XEffectDef::XEffectDef()
|
|
: XAsset()
|
|
, mName("")
|
|
, mFlags(0)
|
|
, mTotalSize(0)
|
|
, mMsecLoopingLife(0)
|
|
, mElemDefCountLooping(0)
|
|
, mElemDefCountOneShot(0)
|
|
, mElemDefCountEmission(0)
|
|
, mElemDefs()
|
|
{
|
|
SetName("Effect Definition");
|
|
}
|
|
|
|
XEffectDef::~XEffectDef()
|
|
{
|
|
|
|
}
|
|
|
|
void XEffectDef::Clear()
|
|
{
|
|
mName.Clear();
|
|
mFlags = 0;
|
|
mTotalSize = 0;
|
|
mMsecLoopingLife = 0;
|
|
mElemDefCountLooping = 0;
|
|
mElemDefCountOneShot = 0;
|
|
mElemDefCountEmission = 0;
|
|
mElemDefs.clear();
|
|
}
|
|
|
|
void XEffectDef::ParseData(XDataStream *aStream)
|
|
{
|
|
mName.ParsePtr(aStream, false);
|
|
|
|
mFlags = aStream->ParseInt32(QString("%1 flags").arg(GetName()));
|
|
mTotalSize = aStream->ParseInt32(QString("%1 total size").arg(GetName()));
|
|
mMsecLoopingLife = aStream->ParseInt32(QString("%1 looping life (ms)").arg(GetName()));
|
|
mElemDefCountLooping = aStream->ParseInt32(QString("%1 looping count").arg(GetName()));
|
|
mElemDefCountOneShot = aStream->ParseInt32(QString("%1 one shot count").arg(GetName()));
|
|
mElemDefCountEmission = aStream->ParseInt32(QString("%1 emission count").arg(GetName()));
|
|
|
|
qint32 elemDefsPtr = aStream->ParseInt32(QString("%1 element def ptr").arg(GetName()));
|
|
if (elemDefsPtr)
|
|
{
|
|
int elemCount = mElemDefCountLooping + mElemDefCountOneShot + mElemDefCountEmission;
|
|
for (int i = 0; i < elemCount; i++)
|
|
{
|
|
XFxElemDef newElemDef;
|
|
newElemDef.ParseData(aStream);
|
|
mElemDefs.push_back(newElemDef);
|
|
}
|
|
}
|
|
}
|