diff --git a/libs/xassets/xscriptstringlist.cpp b/libs/xassets/xscriptstringlist.cpp new file mode 100644 index 0000000..f49326f --- /dev/null +++ b/libs/xassets/xscriptstringlist.cpp @@ -0,0 +1,51 @@ +#include "xscriptstringlist.h" +#include "xstring.h" + +XScriptStringList::XScriptStringList() + : XAsset() + , mCount(0) + , mStringPtrs() + , mScriptStrings() +{ + +} + +int XScriptStringList::Size() +{ + return mScriptStrings.size(); +} + +void XScriptStringList::Clear() +{ + mCount = 0; + mStringPtrs.clear(); + mScriptStrings.clear(); +} + +void XScriptStringList::ParseData(QDataStream *aStream) +{ + if (GetPtr()) + { + for (int i = 0; i < mCount; i++) + { + qint32 tempStringPtr; + *aStream >> tempStringPtr; + + if (tempStringPtr == -1) + { + mScriptStrings << XString::ParseCustom(aStream); + } + } + } +} + +void XScriptStringList::ParsePtr(QDataStream *aStream, bool aDataFlag) +{ + qint32 stringsPtr; + + *aStream + >> mCount + >> stringsPtr; + + SetPtr(stringsPtr); +} diff --git a/libs/xassets/xscriptstringlist.h b/libs/xassets/xscriptstringlist.h new file mode 100644 index 0000000..ce6bf5d --- /dev/null +++ b/libs/xassets/xscriptstringlist.h @@ -0,0 +1,25 @@ +#ifndef XSCRIPTSTRINGLIST_H +#define XSCRIPTSTRINGLIST_H + +#include "xasset.h" + +#include + +class XScriptStringList : public XAsset +{ +public: + explicit XScriptStringList(); + + virtual int Size(); + + virtual void Clear() override; + virtual void ParseData(QDataStream *aStream) override; + virtual void ParsePtr(QDataStream *aStream, bool aDataFlag = true) override; + +private: + int mCount; + QVector mStringPtrs; + QStringList mScriptStrings; +}; + +#endif // XSCRIPTSTRINGLIST_H