103 lines
3.3 KiB
C++
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();
|
|
}
|