XPlor/libs/xassets/xitemkeyhandler.cpp

47 lines
769 B
C++

#include "xitemkeyhandler.h"
XItemKeyHandler::XItemKeyHandler()
: XAsset()
, mKey(0)
, mAction()
, mNext(nullptr)
{
SetName("Item Key Handler");
}
XItemKeyHandler::~XItemKeyHandler()
{
if (mNext)
{
delete mNext;
}
}
void XItemKeyHandler::ParseData(XDataStream *aStream)
{
*aStream >> mKey;
mAction.ParsePtr(aStream, false);
qint32 nextPtr = aStream->ParseInt32(QString("%1 next ptr").arg(GetName()));
mAction.ParseDataSafe(aStream);
if (nextPtr)
{
mNext = new XItemKeyHandler();
mNext->ParseData(aStream);
}
}
void XItemKeyHandler::Clear()
{
mKey = 0;
mAction.Clear();
if (mNext)
{
mNext->Clear();
}
}