#ifndef XASSET_H #define XASSET_H #include "xassettype.h" #include "xdatastream.h" #include "xcommoninfo.h" #include #include #include class ZoneFile; class XAsset { public: explicit XAsset(); virtual ~XAsset() = default; void SetPtr(qint32 aPtr); qint32 GetPtr() const; void SetType(XAssetType aType); XAssetType GetType() const; void SetName(QString aName); QString GetName() const; static void SetDebug(bool aDebug); bool IsDebug() const; virtual void Clear(); virtual void ParsePtr(XDataStream *aStream, bool aDataFlag = true); virtual void ParseData(XDataStream *aStream) = 0; virtual void ParseDataSafe(XDataStream *aStream); static XAsset* Create(XAssetType aAssetType); static QString XAssetTypeToString(XAssetType type); static bool mDebug; const XCommonInfo *GetCommonInfo() const; void SetCommonInfo(const XCommonInfo *newCommonInfo); QString DisplayName() const; void SetDisplayName(const QString &aDisplayName); QVector SubAssets() const; void SetSubAssets(const QVector &aSubAssets); void AddSubAsset(XAsset *aSubAsset); private: qint32 mPtr; XAssetType mType; QString mName; QString mDisplayName; const XCommonInfo* mCommonInfo; QVector mSubAssets; }; #endif // XASSET_H