2025-02-08 19:58:54 -05:00
|
|
|
#ifndef ZONEFILE_H
|
|
|
|
|
#define ZONEFILE_H
|
|
|
|
|
|
|
|
|
|
#include "asset_structs.h"
|
2025-04-04 20:40:45 -04:00
|
|
|
#include "qicon.h"
|
2025-02-08 19:58:54 -05:00
|
|
|
|
|
|
|
|
#include <QStringList>
|
|
|
|
|
|
|
|
|
|
class ZoneFile
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
ZoneFile();
|
|
|
|
|
~ZoneFile();
|
|
|
|
|
ZoneFile(const ZoneFile &aZoneFile);
|
|
|
|
|
ZoneFile &operator=(const ZoneFile &other);
|
|
|
|
|
|
2025-05-03 09:57:47 -04:00
|
|
|
virtual bool Load(const QByteArray aFileData) = 0;
|
|
|
|
|
virtual AssetType AssetStrToEnum(const QString aAssetType) = 0;
|
|
|
|
|
virtual QString AssetEnumToStr(const AssetType aAssetType);
|
|
|
|
|
virtual QIcon AssetTypeToIcon(const AssetType aAssetType);
|
2025-04-04 20:40:45 -04:00
|
|
|
|
|
|
|
|
virtual QByteArray GetBinaryData() = 0;
|
|
|
|
|
virtual bool SaveZoneFile(const QString aZoneFilePath);
|
|
|
|
|
|
2025-02-19 19:17:31 -05:00
|
|
|
QString GetStem();
|
2025-02-08 19:58:54 -05:00
|
|
|
quint32 GetSize();
|
|
|
|
|
quint32 GetTagCount();
|
|
|
|
|
QStringList GetTags();
|
|
|
|
|
quint32 GetRecordCount();
|
|
|
|
|
QStringList GetRecords();
|
|
|
|
|
AssetMap GetAssetMap();
|
|
|
|
|
|
2025-02-19 19:17:31 -05:00
|
|
|
void SetStem(const QString aStem);
|
|
|
|
|
void SetSize(quint32 aSize);
|
|
|
|
|
void SetTagCount(quint32 aTagCount);
|
|
|
|
|
void SetTags(const QStringList aTags);
|
|
|
|
|
void SetRecordCount(quint32 aRecordCount);
|
|
|
|
|
void SetRecords(const QStringList aRecords);
|
|
|
|
|
void SetAssetMap(const AssetMap aAssetMap);
|
|
|
|
|
|
2025-02-08 19:58:54 -05:00
|
|
|
private slots:
|
2025-05-03 09:57:47 -04:00
|
|
|
virtual void pParseZoneHeader(QDataStream *aZoneFileStream) = 0;
|
2025-02-19 19:17:31 -05:00
|
|
|
virtual quint32 pParseZoneSize(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseZoneUnknownsA(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual quint32 pParseZoneTagCount(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual quint32 pParseZoneRecordCount(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseZoneUnknownsB(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseZoneUnknownsC(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual QStringList pParseZoneTags(QDataStream *aZoneFileStream, quint32 tagCount) = 0;
|
|
|
|
|
virtual QStringList pParseZoneIndex(QDataStream *aZoneFileStream, quint32 recordCount) = 0;
|
|
|
|
|
virtual AssetMap pParseAssets(QDataStream *aZoneFileStream, QStringList assetOrder) = 0;
|
|
|
|
|
virtual LocalString pParseAsset_LocalString(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual RawFile pParseAsset_RawFile(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_PhysPreset(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual Model pParseAsset_Model(QDataStream *aZoneFileStream) = 0;
|
2025-03-01 20:38:52 -05:00
|
|
|
virtual Material pParseAsset_Material(QDataStream *aZoneFileStream) = 0;
|
2025-02-19 19:17:31 -05:00
|
|
|
virtual Shader pParseAsset_Shader(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual TechSet pParseAsset_TechSet(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual Image pParseAsset_Image(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual SoundAsset pParseAsset_Sound(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_ColMapMP(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_GameMapSP(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_GameMapMP(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_LightDef(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_UIMap(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_SNDDriverGlobals(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_AIType(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_FX(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual Animation pParseAsset_Animation(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual MenuFile pParseAsset_MenuFile(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_Weapon(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual void pParseAsset_D3DBSP(QDataStream *aZoneFileStream) = 0;
|
|
|
|
|
virtual StringTable pParseAsset_StringTable(QDataStream *aZoneFileStream) = 0;
|
2025-02-08 19:58:54 -05:00
|
|
|
|
|
|
|
|
private:
|
2025-02-19 19:17:31 -05:00
|
|
|
QString mStem;
|
|
|
|
|
quint32 mSize;
|
|
|
|
|
quint32 mTagCount;
|
|
|
|
|
QStringList mTags;
|
|
|
|
|
quint32 mRecordCount;
|
|
|
|
|
QStringList mRecords;
|
|
|
|
|
AssetMap mAssetMap;
|
|
|
|
|
QString mPlatform;
|
|
|
|
|
QString mGame;
|
2025-02-08 19:58:54 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // ZONEFILE_H
|