#ifndef STRUCTS_H #define STRUCTS_H #include "enums.h" #include #include #include #include // Define Lump Structure struct Lump { QByteArray content; quint32 size = 0; bool isEmpty = true; }; // Lump Index Entry Structure struct LumpIndexEntry { quint32 type; quint32 length; }; struct LocalString { QString string; QString alias; }; struct RawFile { quint32 length; QString path; QString contents; }; struct TechSet { QString name; }; struct Animation { quint16 dataByteCount; quint16 dataShortCount; quint16 dataIntCount; quint16 randomDataByteCount; quint16 randomDataIntCount; quint16 numframes; bool isLooped; bool isDelta; quint8 noneRotatedBoneCount; quint8 twoDRotatedBoneCount; quint8 normalRotatedBoneCount; quint8 twoDStaticRotatedBoneCount; quint8 normalStaticRotatedBoneCount; quint8 normalTranslatedBoneCount; quint8 preciseTranslatedBoneCount; quint8 staticTranslatedBoneCount; quint8 noneTranslatedBoneCount; quint8 totalBoneCount; quint8 otherBoneCount1; quint8 otherBoneCount2; quint8 notifyCount; quint8 assetType; bool pad; unsigned int randomDataShortCount; unsigned int indexCount; float frameRate; float frequency; quint32 boneIDsPtr; quint32 dataBytePtr; quint32 dataShortPtr; quint32 dataIntPtr; quint32 randomDataShortPtr; quint32 randomDataBytePtr; quint32 randomDataIntPtr; quint32 longIndiciesPtr; quint32 notificationsPtr; quint32 deltaPartsPtr; QString name; }; struct StringTable { quint32 columnCount; quint32 rowCount; QString name; }; struct AssetMap { QVector localStrings; QVector rawFiles; //QVector phyPresets; //QVector models; //QVector rawFiles; //QVector shaders; QVector techSets; //QVector images; //QVector sounds; //QVector collMaps; //QVector lightDefs; //QVector uiMaps; //QVector driverGlobals; //QVector aiType; //QVector effects; QVector animations; QVector stringTables; //QVector menus; //QVector weapons; //QVector d3dbspDumps; //QVector spMaps; }; struct ZoneFile { quint32 size; quint32 tagCount; QStringList tags; quint32 recordCount; QStringList records; AssetMap assetMap; }; struct FastFile { FF_COMPANY company; FF_FILETYPE fileType; FF_SIGNAGE signage; QString magic; quint32 version; ZoneFile zoneFile; }; #endif // STRUCTS_H