XPlor/libs/xassets/xeffectdef.cpp

57 lines
1.5 KiB
C++
Raw Normal View History

2025-09-05 18:35:17 -04:00
#include "xeffectdef.h"
XEffectDef::XEffectDef()
: XAsset()
, mName("")
, mFlags(0)
, mTotalSize(0)
, mMsecLoopingLife(0)
, mElemDefCountLooping(0)
, mElemDefCountOneShot(0)
, mElemDefCountEmission(0)
, mElemDefs()
{
2025-09-10 21:58:26 -04:00
SetName("Effect Definition");
2025-09-05 18:35:17 -04:00
}
XEffectDef::~XEffectDef()
{
}
void XEffectDef::Clear()
{
mName.Clear();
2025-09-05 18:35:17 -04:00
mFlags = 0;
mTotalSize = 0;
mMsecLoopingLife = 0;
mElemDefCountLooping = 0;
mElemDefCountOneShot = 0;
mElemDefCountEmission = 0;
mElemDefs.clear();
}
2025-09-10 21:58:26 -04:00
void XEffectDef::ParseData(XDataStream *aStream)
2025-09-05 18:35:17 -04:00
{
mName.ParsePtr(aStream, false);
2025-09-05 18:35:17 -04:00
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);
}
}
2025-09-05 18:35:17 -04:00
}