Update XFxElemDef parsing logic
This commit is contained in:
parent
00618f8081
commit
0da6a4aee7
@ -1,5 +1,4 @@
|
|||||||
#include "xfxelemdef.h"
|
#include "xfxelemdef.h"
|
||||||
#include "xfxtraildef.h"
|
|
||||||
|
|
||||||
XFxElemDef::XFxElemDef()
|
XFxElemDef::XFxElemDef()
|
||||||
: XAsset()
|
: XAsset()
|
||||||
@ -11,11 +10,11 @@ XFxElemDef::XFxElemDef()
|
|||||||
, mSpawnFrustumCullRadius(0)
|
, mSpawnFrustumCullRadius(0)
|
||||||
, mSpawnDelayMsec()
|
, mSpawnDelayMsec()
|
||||||
, mLifeSpanMsec()
|
, mLifeSpanMsec()
|
||||||
, mSpawnOrigin()
|
, mSpawnOrigin(3)
|
||||||
, mSpawnOffsetRadius()
|
, mSpawnOffsetRadius()
|
||||||
, mSpawnOffsetHeight()
|
, mSpawnOffsetHeight()
|
||||||
, mSpawnAngles()
|
, mSpawnAngles(3)
|
||||||
, mAngularVelocity()
|
, mAngularVelocity(3)
|
||||||
, mInitialRotation()
|
, mInitialRotation()
|
||||||
, mGravity()
|
, mGravity()
|
||||||
, mReflectionFactor()
|
, mReflectionFactor()
|
||||||
@ -36,8 +35,7 @@ XFxElemDef::XFxElemDef()
|
|||||||
, mEffectEmitted()
|
, mEffectEmitted()
|
||||||
, mEmitDist()
|
, mEmitDist()
|
||||||
, mEmitDistVariance()
|
, mEmitDistVariance()
|
||||||
, mTrailDefPtr(0)
|
, mTrailDef()
|
||||||
, mTrailDef(new XFxTrailDef())
|
|
||||||
, mSortOrder(0)
|
, mSortOrder(0)
|
||||||
, mLightingFrac(0)
|
, mLightingFrac(0)
|
||||||
, mUseItemClip(0)
|
, mUseItemClip(0)
|
||||||
@ -85,8 +83,7 @@ void XFxElemDef::Clear()
|
|||||||
mEffectEmitted.Clear();
|
mEffectEmitted.Clear();
|
||||||
mEmitDist.Clear();
|
mEmitDist.Clear();
|
||||||
mEmitDistVariance.Clear();
|
mEmitDistVariance.Clear();
|
||||||
mTrailDefPtr = 0;
|
mTrailDef.Clear();
|
||||||
mTrailDef->Clear();
|
|
||||||
mSortOrder = 0;
|
mSortOrder = 0;
|
||||||
mLightingFrac = 0;
|
mLightingFrac = 0;
|
||||||
mUseItemClip = 0;
|
mUseItemClip = 0;
|
||||||
@ -94,5 +91,90 @@ void XFxElemDef::Clear()
|
|||||||
|
|
||||||
void XFxElemDef::ParseData(QDataStream *aStream)
|
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