130 lines
2.7 KiB
C
130 lines
2.7 KiB
C
#ifndef STRUCTS_H
|
|
#define STRUCTS_H
|
|
|
|
#include "enums.h"
|
|
|
|
#include <QByteArray>
|
|
#include <QString>
|
|
#include <QStringList>
|
|
#include <QMap>
|
|
|
|
// 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<LocalString> localStrings;
|
|
QVector<RawFile> rawFiles;
|
|
//QVector<PhysPreset> phyPresets;
|
|
//QVector<Model> models;
|
|
//QVector<Material> rawFiles;
|
|
//QVector<Shader> shaders;
|
|
QVector<TechSet> techSets;
|
|
//QVector<Image> images;
|
|
//QVector<Sound> sounds;
|
|
//QVector<CollisionMap> collMaps;
|
|
//QVector<LightDefinition> lightDefs;
|
|
//QVector<UiMap> uiMaps;
|
|
//QVector<DriverGlobal> driverGlobals;
|
|
//QVector<AiType> aiType;
|
|
//QVector<Effect> effects;
|
|
QVector<Animation> animations;
|
|
QVector<StringTable> stringTables;
|
|
//QVector<Menu> menus;
|
|
//QVector<Weapon> weapons;
|
|
//QVector<D3DBSP> d3dbspDumps;
|
|
//QVector<SingleplayerMap> 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
|