77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
#include "xmenulist.h"
|
|
|
|
XMenuList::XMenuList()
|
|
: XAsset()
|
|
, mName()
|
|
, mMenuCount(0)
|
|
, mMenus()
|
|
{
|
|
SetType(ASSET_TYPE_MENULIST);
|
|
SetName("Menu List");
|
|
}
|
|
|
|
XMenuList::~XMenuList()
|
|
{
|
|
mMenus.clear();
|
|
}
|
|
|
|
void XMenuList::SetMenuListName(XString aName)
|
|
{
|
|
mName = aName;
|
|
}
|
|
|
|
XString XMenuList::MenuListName() const
|
|
{
|
|
return mName;
|
|
}
|
|
|
|
int XMenuList::GetMenuCount() const
|
|
{
|
|
return mMenuCount;
|
|
}
|
|
|
|
void XMenuList::SetMenuEntry(int aIndex, XMenuDef aMenuDef)
|
|
{
|
|
mMenus[aIndex] = aMenuDef;
|
|
}
|
|
|
|
XMenuDef XMenuList::GetMenuEntry(int aIndex) const
|
|
{
|
|
return mMenus[aIndex];
|
|
}
|
|
|
|
void XMenuList::Clear()
|
|
{
|
|
mName.Clear();
|
|
mMenuCount = 0;
|
|
mMenus.clear();
|
|
}
|
|
|
|
void XMenuList::ParseData(XDataStream *aStream)
|
|
{
|
|
mName.ParsePtr(aStream, false);
|
|
|
|
mMenuCount = aStream->ParseUInt32(QString("%1 menu count").arg(GetName()));
|
|
|
|
qint32 menusPtr = aStream->ParseInt32(QString("%1 menus ptr").arg(GetName()));
|
|
|
|
mName.ParseDataSafe(aStream);
|
|
SetDisplayName(mName.GetString());
|
|
|
|
if (menusPtr)
|
|
{
|
|
for (uint i = 0; i < mMenuCount; i++)
|
|
{
|
|
XMenuDef newMenu;
|
|
newMenu.SetCommonInfo(GetCommonInfo());
|
|
newMenu.ParsePtr(aStream, false);
|
|
mMenus.push_back(newMenu);
|
|
}
|
|
|
|
for (uint i = 0; i < mMenus.size(); i++)
|
|
{
|
|
mMenus[i].ParseDataSafe(aStream);
|
|
}
|
|
}
|
|
}
|