XPlor/libs/xassets/xmenudef.cpp

119 lines
3.1 KiB
C++
Raw Normal View History

2025-08-17 13:14:17 -04:00
#include "xmenudef.h"
2025-09-05 18:35:17 -04:00
#include "xitemdef.h"
2025-08-17 13:14:17 -04:00
XMenuDef::XMenuDef()
: XAsset()
, mWindow()
, mFont()
2025-09-07 23:16:07 -04:00
, mFullScreen(0)
, mItemCount(0)
, mFontIndex(0)
, mCursorItem(4)
, mFadeCycle(0)
, mFadeClamp(0.0f)
, mFadeAmount(0.0f)
, mFadeInAmount(0.0f)
, mBlurRadius(0.0f)
2025-08-17 13:14:17 -04:00
, mOnOpen()
, mOnClose()
, mOnESC()
, mOnKey()
, mVisibleExp()
, mAllowedBinding()
, mSoundName()
2025-09-07 23:16:07 -04:00
, mImageTrack(0)
2025-08-17 13:14:17 -04:00
, mFocusColor()
, mDisableColor()
, mRectXExp()
, mRectYExp()
, mItems()
{
2025-09-05 18:35:17 -04:00
SetType(ASSET_TYPE_MENU);
2025-09-10 21:58:26 -04:00
SetName("Menu Definition");
2025-08-17 13:14:17 -04:00
}
XMenuDef::~XMenuDef()
{
}
void XMenuDef::Clear()
{
}
2025-09-10 21:58:26 -04:00
void XMenuDef::ParseData(XDataStream *aStream)
2025-08-17 13:14:17 -04:00
{
2025-09-07 23:16:07 -04:00
mWindow.ParseData(aStream);
2025-08-17 13:14:17 -04:00
2025-09-07 23:16:07 -04:00
mFont.ParsePtr(aStream, false);
*aStream
>> mFullScreen
>> mItemCount
>> mFontIndex;
for (int i = 0; i < 4; i++)
{
*aStream >> mCursorItem[i];
}
2025-09-10 21:58:26 -04:00
mFadeCycle = aStream->ParseInt32(QString("%1 fade cycle").arg(GetName()));
mFadeClamp = aStream->ParseSingle(QString("%1 fade clamp").arg(GetName()));
mFadeAmount = aStream->ParseSingle(QString("%1 fade amount").arg(GetName()));
mFadeInAmount = aStream->ParseSingle(QString("%1 fade in amount").arg(GetName()));
mBlurRadius = aStream->ParseSingle(QString("%1 blur radius").arg(GetName()));
2025-09-07 23:16:07 -04:00
mOnOpen.ParsePtr(aStream, false);
mOnClose.ParsePtr(aStream, false);
mOnESC.ParsePtr(aStream, false);
mOnKey.ParsePtr(aStream, false);
mVisibleExp.ParseData(aStream);
mAllowedBinding.ParsePtr(aStream, false);
mSoundName.ParsePtr(aStream, false);
*aStream >> mImageTrack;
2025-09-10 21:58:26 -04:00
float focusR = aStream->ParseSingle(QString("%1 focus color r").arg(GetName()));
float focusG = aStream->ParseSingle(QString("%1 focus color g").arg(GetName()));
float focusB = aStream->ParseSingle(QString("%1 focus color b").arg(GetName()));
float focusA = aStream->ParseSingle(QString("%1 focus color a").arg(GetName()));
2025-09-07 23:16:07 -04:00
2025-09-10 21:58:26 -04:00
float disableR = aStream->ParseSingle(QString("%1 disable color r").arg(GetName()));
float disableG = aStream->ParseSingle(QString("%1 disable color g").arg(GetName()));
float disableB = aStream->ParseSingle(QString("%1 disable color b").arg(GetName()));
float disableA = aStream->ParseSingle(QString("%1 disable color a").arg(GetName()));
mFocusColor = QColor::fromRgbF(focusR, focusG, focusB, focusA);
mDisableColor = QColor::fromRgbF(disableR, disableG, disableB, disableA);
2025-09-07 23:16:07 -04:00
mRectXExp.ParseData(aStream);
mRectYExp.ParseData(aStream);
qint32 itemsPtr;
*aStream >> itemsPtr;
mFont.ParseData(aStream);
mOnOpen.ParseData(aStream);
mOnClose.ParseData(aStream);
mOnESC.ParseData(aStream);
mOnKey.ParseData(aStream);
mVisibleExp.ParseData(aStream);
mAllowedBinding.ParseData(aStream);
mSoundName.ParseData(aStream);
mRectXExp.ParseData(aStream);
mRectYExp.ParseData(aStream);
if (itemsPtr)
{
for (int i = 0; i < mItemCount; i++)
{
XItemDef newItemDef;
newItemDef.ParsePtr(aStream);
mItems.append(newItemDef);
}
}
2025-08-17 13:14:17 -04:00
}