From 7d103dfcea7d7242893b424faa11354f6456c635 Mon Sep 17 00:00:00 2001 From: njohnson Date: Sun, 7 Sep 2025 23:16:00 -0400 Subject: [PATCH] Updated xitemkeyhandler --- libs/xassets/xitemkeyhandler.cpp | 27 +++++++++++++++++++++------ libs/xassets/xitemkeyhandler.h | 5 ++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/libs/xassets/xitemkeyhandler.cpp b/libs/xassets/xitemkeyhandler.cpp index 04e3213..d5ea4d2 100644 --- a/libs/xassets/xitemkeyhandler.cpp +++ b/libs/xassets/xitemkeyhandler.cpp @@ -3,8 +3,8 @@ XItemKeyHandler::XItemKeyHandler() : XAsset() , mKey(0) - , mAction("") - , mNext(new XItemKeyHandler()) + , mAction() + , mNext(nullptr) { } @@ -16,13 +16,28 @@ XItemKeyHandler::~XItemKeyHandler() void XItemKeyHandler::ParseData(QDataStream *aStream) { - + if (GetPtr() == -1) + { + *aStream >> mKey; + + mAction.ParsePtr(aStream, false); + + qint32 nextPtr; + *aStream >> nextPtr; + + mAction.ParseData(aStream); + + if (nextPtr) + { + mNext = new XItemKeyHandler(); + mNext->ParseData(aStream); + } + } } void XItemKeyHandler::Clear() { mKey = 0; - mAction = ""; - delete mNext; - mNext = new XItemKeyHandler(); + mAction.Clear(); + mNext = nullptr; } diff --git a/libs/xassets/xitemkeyhandler.h b/libs/xassets/xitemkeyhandler.h index b495e6a..7171274 100644 --- a/libs/xassets/xitemkeyhandler.h +++ b/libs/xassets/xitemkeyhandler.h @@ -2,8 +2,7 @@ #define XITEMKEYHANDLER_H #include "xasset.h" - -#include +#include "xstring.h" class XItemKeyHandler : public XAsset { @@ -16,7 +15,7 @@ public: private: int mKey; - QString mAction; + XString mAction; XItemKeyHandler *mNext; };