// GFF Field Type typedef unsigned char BYTE; //typedef ? CExoLocString; //typedef ? CExoString; typedef char CHAR; //typedef char CResRef[16]; typedef double DOUBLE; typedef unsigned long DWORD; typedef unsigned __int64 DWORD64; typedef float FLOAT; typedef int INT; typedef __int64 INT64; typedef short int SHORT; //typedef ? VOID; typedef short unsigned int WORD; //typedef ? Struct; //typedef ? List; //GFF Struct struct Label { CHAR Lable[16]; }; struct Field { DWORD Type; DWORD LabelIndex; DWORD DataOrDataOffset; }; struct Struct { DWORD Type; DWORD DataOrDataOffset; DWORD FieldCount; }; struct FieldData_DWORD64 { DWORD64 Data; }; struct FieldData_INT64 { INT64 Data; }; struct FieldData_DOUBLE { INT64 DOUBLE; }; struct FieldData_CExoString { DWORD Size; CHAR *String; }; struct FieldData_CExoLocString_CExoString { DWORD ID; DWORD Size; CHAR *String; }; struct FieldData_CResRef { CHAR Size; CHAR *String; }; struct FieldData_CExoLocString { DWORD Size; DWORD StringRef; DWORD StringCount; FieldData_CExoLocString_CExoString *SubString; }; struct FieldData_Void { DWORD Size; CHAR *Data; }; struct FieldData_List { DWORD Size; DWORD *index; }; struct GFF_File { CHAR FileType[4]; CHAR FileVersion[4]; DWORD StructOffset; DWORD StructCount; DWORD FieldOffset; DWORD FieldCount; DWORD LabelOffset; DWORD LabelCount; DWORD FieldDataOffset; DWORD FieldDataCount; DWORD FieldIndicesOffset; DWORD FieldIndicesCount; DWORD ListIndicesOffset; DWORD ListIndicesCount; Struct *Struct; Field *Field; Label *Label; };