#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(); }