Update XFxElemDef parsing logic
This commit is contained in:
parent
00618f8081
commit
0da6a4aee7
@ -1,5 +1,4 @@
|
||||
#include "xfxelemdef.h"
|
||||
#include "xfxtraildef.h"
|
||||
|
||||
XFxElemDef::XFxElemDef()
|
||||
: XAsset()
|
||||
@ -11,11 +10,11 @@ XFxElemDef::XFxElemDef()
|
||||
, mSpawnFrustumCullRadius(0)
|
||||
, mSpawnDelayMsec()
|
||||
, mLifeSpanMsec()
|
||||
, mSpawnOrigin()
|
||||
, mSpawnOrigin(3)
|
||||
, mSpawnOffsetRadius()
|
||||
, mSpawnOffsetHeight()
|
||||
, mSpawnAngles()
|
||||
, mAngularVelocity()
|
||||
, mSpawnAngles(3)
|
||||
, mAngularVelocity(3)
|
||||
, mInitialRotation()
|
||||
, mGravity()
|
||||
, mReflectionFactor()
|
||||
@ -36,8 +35,7 @@ XFxElemDef::XFxElemDef()
|
||||
, mEffectEmitted()
|
||||
, mEmitDist()
|
||||
, mEmitDistVariance()
|
||||
, mTrailDefPtr(0)
|
||||
, mTrailDef(new XFxTrailDef())
|
||||
, mTrailDef()
|
||||
, mSortOrder(0)
|
||||
, mLightingFrac(0)
|
||||
, mUseItemClip(0)
|
||||
@ -85,8 +83,7 @@ void XFxElemDef::Clear()
|
||||
mEffectEmitted.Clear();
|
||||
mEmitDist.Clear();
|
||||
mEmitDistVariance.Clear();
|
||||
mTrailDefPtr = 0;
|
||||
mTrailDef->Clear();
|
||||
mTrailDef.Clear();
|
||||
mSortOrder = 0;
|
||||
mLightingFrac = 0;
|
||||
mUseItemClip = 0;
|
||||
@ -94,5 +91,90 @@ void XFxElemDef::Clear()
|
||||
|
||||
void XFxElemDef::ParseData(QDataStream *aStream)
|
||||
{
|
||||
|
||||
*aStream >> mFlags;
|
||||
|
||||
mSpawn.ParseData(aStream);
|
||||
mSpawnRange.ParseData(aStream);
|
||||
mFadeInRange.ParseData(aStream);
|
||||
mFadeOutRange.ParseData(aStream);
|
||||
|
||||
*aStream >> mSpawnFrustumCullRadius;
|
||||
|
||||
mSpawnDelayMsec.ParseData(aStream);
|
||||
mLifeSpanMsec.ParseData(aStream);
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
mSpawnOrigin[i].ParseData(aStream);
|
||||
}
|
||||
mSpawnOffsetRadius.ParseData(aStream);
|
||||
mSpawnOffsetHeight.ParseData(aStream);
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
mSpawnAngles[i].ParseData(aStream);
|
||||
}
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
mAngularVelocity[i].ParseData(aStream);
|
||||
}
|
||||
mInitialRotation.ParseData(aStream);
|
||||
mGravity.ParseData(aStream);
|
||||
mReflectionFactor.ParseData(aStream);
|
||||
mAtlas.ParseData(aStream);
|
||||
|
||||
qint32 velSamplesPtr, visSamplesPtr;
|
||||
*aStream
|
||||
>> mElemType
|
||||
>> mVisualCount
|
||||
>> mVelIntervalCount
|
||||
>> mVisStateIntervalCount
|
||||
>> velSamplesPtr
|
||||
>> visSamplesPtr;
|
||||
|
||||
mVisuals.ParseData(aStream);
|
||||
|
||||
*aStream
|
||||
>> mCollMins[0]
|
||||
>> mCollMins[1]
|
||||
>> mCollMins[2]
|
||||
>> mCollMaxs[0]
|
||||
>> mCollMaxs[1]
|
||||
>> mCollMaxs[2];
|
||||
|
||||
mEffectOnImpact.ParseData(aStream);
|
||||
mEffectOnDeath.ParseData(aStream);
|
||||
mEffectEmitted.ParseData(aStream);
|
||||
mEmitDist.ParseData(aStream);
|
||||
mEmitDistVariance.ParseData(aStream);
|
||||
mEffectOnImpact.ParseData(aStream);
|
||||
|
||||
qint32 trailDefPtr;
|
||||
*aStream
|
||||
>> trailDefPtr
|
||||
>> mSortOrder
|
||||
>> mLightingFrac
|
||||
>> mUseItemClip;
|
||||
|
||||
aStream->skipRawData(1);
|
||||
|
||||
if (velSamplesPtr)
|
||||
{
|
||||
for (int i = 0; i < mVelIntervalCount + 1; i++)
|
||||
{
|
||||
XFxElemVelStateSample newVelSample;
|
||||
newVelSample.ParseData(aStream);
|
||||
mVelSamples.append(newVelSample);
|
||||
}
|
||||
}
|
||||
|
||||
if (visSamplesPtr)
|
||||
{
|
||||
for (int i = 0; i < mVisStateIntervalCount + 1; i++)
|
||||
{
|
||||
XFxElemVisStateSample newVisSample;
|
||||
newVisSample.ParseData(aStream);
|
||||
mVisSamples.append(newVisSample);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Finish this ugh
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user