XPlor/libs/xassets/xsunflare.cpp

103 lines
3.3 KiB
C++

#include "xsunflare.h"
XSunFlare::XSunFlare()
: XAsset()
, mHasValidData(false)
, mSpriteMaterial()
, mFlareMaterial()
, mSpriteSize(0.0f)
, mFlareMinSize(0.0f)
, mFlareMinDot(0.0f)
, mFlareMaxSize(0.0f)
, mFlareMaxDot(0.0f)
, mFlareMaxAlpha(0.0f)
, mFlareFadeInTime(0)
, mFlareFadeOutTime(0)
, mBlindMinDot(0.0f)
, mBlindMaxDot(0.0f)
, mBlindMaxDarken(0.0f)
, mBlindFadeInTime(0)
, mBlindFadeOutTime(0)
, mGlareMinDot(0.0f)
, mGlareMaxDot(0.0f)
, mGlareMaxLighten(0.0f)
, mGlareFadeInTime(0)
, mGlareFadeOutTime(0)
, mSunFxPosition()
{
SetName("Sun Flare");
}
XSunFlare::~XSunFlare()
{
}
void XSunFlare::ParseData(XDataStream *aStream)
{
mHasValidData = aStream->ParseUInt8(QString("%1 has valid data").arg(GetName()));
aStream->skipRawData(3);
mSpriteMaterial.ParsePtr(aStream, false);
mFlareMaterial.ParsePtr(aStream, false);
mSpriteSize = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareMinSize = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareMinDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareMaxSize = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareMaxDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareMaxAlpha = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mFlareFadeInTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
mFlareFadeOutTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
mBlindMinDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mBlindMaxDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mBlindMaxDarken = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mBlindFadeInTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
mBlindFadeInTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
mGlareMinDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mGlareMaxDot = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mGlareMaxLighten = aStream->ParseSingle(QString("%1 radius").arg(GetName()));
mGlareFadeInTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
mGlareFadeOutTime = aStream->ParseInt32(QString("%1 radius").arg(GetName()));
for (int i = 0; i < 3; i++)
{
mSunFxPosition[i] = aStream->ParseSingle(QString("%1 sun fx position %2").arg(GetName()).arg(i));
}
mSpriteMaterial.ParseDataSafe(aStream);
mFlareMaterial.ParseDataSafe(aStream);
}
void XSunFlare::Clear()
{
mHasValidData = false;
mSpriteMaterial.Clear();
mFlareMaterial.Clear();
mSpriteSize = 0.0f;
mFlareMinSize = 0.0f;
mFlareMinDot = 0.0f;
mFlareMaxSize = 0.0f;
mFlareMaxDot = 0.0f;
mFlareMaxAlpha = 0.0f;
mFlareFadeInTime = 0;
mFlareFadeOutTime = 0;
mBlindMinDot = 0.0f;
mBlindMaxDot = 0.0f;
mBlindMaxDarken = 0.0f;
mBlindFadeInTime = 0;
mBlindFadeOutTime = 0;
mGlareMinDot = 0.0f;
mGlareMaxDot = 0.0f;
mGlareMaxLighten = 0.0f;
mGlareFadeInTime = 0;
mGlareFadeOutTime = 0;
mSunFxPosition = QVector3D();
}