XPlor/libs/xassets/xasset.h

64 lines
1.4 KiB
C++

#ifndef XASSET_H
#define XASSET_H
#include "xassettype.h"
#include "xdatastream.h"
#include "xcommoninfo.h"
#include <QString>
#include <QDebug>
#include <QIODevice>
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<XAsset *> SubAssets() const;
void SetSubAssets(const QVector<XAsset *> &aSubAssets);
void AddSubAsset(XAsset *aSubAsset);
private:
qint32 mPtr;
XAssetType mType;
QString mName;
QString mDisplayName;
const XCommonInfo* mCommonInfo;
QVector<XAsset*> mSubAssets;
};
#endif // XASSET_H