Add xfxelemdef structures

This commit is contained in:
Nicholas Johnson 2025-09-03 13:04:54 -04:00
parent 2b1a18be6a
commit ea90db4fe6
2 changed files with 157 additions and 0 deletions

View File

@ -0,0 +1,97 @@
#include "xfxelemdef.h"
XFxElemDef::XFxElemDef()
: XAsset()
, mFlags(0)
, mSpawn()
, mSpawnRange()
, mFadeInRange()
, mFadeOutRange()
, mSpawnFrustumCullRadius(0)
, mSpawnDelayMsec()
, mLifeSpanMsec()
, mSpawnOrigin()
, mSpawnOffsetRadius()
, mSpawnOffsetHeight()
, mSpawnAngles()
, mAngularVelocity()
, mInitialRotation()
, mGravity()
, mReflectionFactor()
, mAtlas()
, mElemType(0)
, mVisualCount(0)
, mVelIntervalCount(0)
, mVisStateIntervalCount(0)
, mVelSamplesPtr(0)
, mVelSamples()
, mVisSamplesPtr(0)
, mVisSamples()
, mVisuals()
, mCollMins()
, mCollMaxs()
, mEffectOnImpact()
, mEffectOnDeath()
, mEffectEmitted()
, mEmitDist()
, mEmitDistVariance()
, mTrailDefPtr(0)
, mTrailDef(new XFxTrailDef())
, mSortOrder(0)
, mLightingFrac(0)
, mUseItemClip(0)
{
}
XFxElemDef::~XFxElemDef()
{
}
void XFxElemDef::Clear()
{
mFlags = 0;
mSpawn.Clear();
mSpawnRange = FxFloatRange();
mFadeInRange = FxFloatRange();
mFadeOutRange = FxFloatRange();
mSpawnFrustumCullRadius = 0;
mSpawnDelayMsec = FxIntRange();
mLifeSpanMsec = FxIntRange();
mSpawnOrigin = QVector<FxFloatRange>();
mSpawnOffsetRadius = FxFloatRange();
mSpawnOffsetHeight = FxFloatRange();
mSpawnAngles = QVector<FxFloatRange>();
mAngularVelocity = QVector<FxFloatRange>();
mInitialRotation = FxFloatRange();
mGravity = FxFloatRange();
mReflectionFactor = FxFloatRange();
mAtlas = FxElemAtlas();
mElemType = 0;
mVisualCount = 0;
mVelIntervalCount = 0;
mVisStateIntervalCount = 0;
mVelSamplesPtr = 0;
mVelSamples = QVector<FxElemVelStateSample>();
mVisSamplesPtr = 0;
mVisSamples = QVector<FxElemVisStateSample>();
mVisuals = FxElemDefVisuals();
mCollMins = QVector3D();
mCollMaxs = QVector3D();
mEffectOnImpact = ;
mEffectOnDeath = ;
mEffectEmitted = ;
mEmitDist = ;
mEmitDistVariance = ;
mTrailDefPtr = 0;
mTrailDef = new XFxTrailDef = ;;
mSortOrder = 0;
mLightingFrac = 0;
mUseItemClip = 0;
}
void XFxElemDef::ParseData(QDataStream *aStream)
{
}

60
libs/xassets/xfxelemdef.h Normal file
View File

@ -0,0 +1,60 @@
#ifndef XFXELEMDEF_H
#define XFXELEMDEF_H
#include "xasset.h"
#include "xeffectdef.h"
#include "xfxtraildef.h"
class XFxElemDef : public XAsset
{
public:
explicit XFxElemDef();
~XFxElemDef();
void Clear() override;
void ParseData(QDataStream *aStream) override;
private:
int mFlags;
FxSpawnDef mSpawn;
FxFloatRange mSpawnRange;
FxFloatRange mFadeInRange;
FxFloatRange mFadeOutRange;
float mSpawnFrustumCullRadius;
FxIntRange mSpawnDelayMsec;
FxIntRange mLifeSpanMsec;
QVector<FxFloatRange> mSpawnOrigin;
FxFloatRange mSpawnOffsetRadius;
FxFloatRange mSpawnOffsetHeight;
QVector<FxFloatRange> mSpawnAngles;
QVector<FxFloatRange> mAngularVelocity;
FxFloatRange mInitialRotation;
FxFloatRange mGravity;
FxFloatRange mReflectionFactor;
FxElemAtlas mAtlas;
quint8 mElemType;
quint8 mVisualCount;
quint8 mVelIntervalCount;
quint8 mVisStateIntervalCount;
qint32 mVelSamplesPtr;
QVector<FxElemVelStateSample> mVelSamples;
qint32 mVisSamplesPtr;
QVector<FxElemVisStateSample> mVisSamples;
FxElemDefVisuals mVisuals;
QVector3D mCollMins;
QVector3D mCollMaxs;
EffectDefRef mEffectOnImpact;
EffectDefRef mEffectOnDeath;
EffectDefRef mEffectEmitted;
FxFloatRange mEmitDist;
FxFloatRange mEmitDistVariance;
qint32 mTrailDefPtr;
XFxTrailDef *mTrailDef;
quint8 mSortOrder;
quint8 mLightingFrac;
quint8 mUseItemClip;
};
#endif // XFXELEMDEF_H