47 lines
769 B
C++
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();
|
|
}
|
|
}
|