* feat: add T4 menu dumping
* chore: align with latest changes
* feat: add T4 menu loading
Load T4 menulists and menu files through the shared menu parser.
Preserve T4-specific menu and listbox fields and cover loading, dumping, linking, and round-trip behaviour.
* chore: make flag fields unsigned
* chore: rename `expOperationEnum` -> `operationEnum`
* chore: use default enum numeration for T4 operationEnum
* chore: remove unused members of operationEnum
* chore: remove redundant op from operationEnum
* refactor: align T4 expression operand names with IW3
* chore: small adjustment to iw3,t4 types
---------
Co-authored-by: Jan Laupetin <[email protected]>
* feat: T4 add string table loader
* chore: rename stringtable loaders to match style between games
* fix: make sure all games correctly interpret failed stringtable loading
---------
Co-authored-by: Jan Laupetin <[email protected]>
* feat: add T4 PhysPreset support
* chore: slight adjustment to how the max friction constant is named
---------
Co-authored-by: Jan Laupetin <[email protected]>
* feat: font loading and dumping
* chore: make font properties unsigned if possible
* chore: use merge_patch to dump json font
* chore: font material is required
* chore: move static methods from font loader and dumper to anonymous namespace
* chore: make sure loaded fonts have their glyphs sorted
* chore: add macros for json NLOHMANN_TO_JSON_METHOD and NLOHMANN_FROM_JSON_METHOD
* feat: encode printable letters as string in json
Co-authored-by: hindercanrun <[email protected]>
* chore: omit redundant glyph count from jsons
---------
Co-authored-by: Jan Laupetin <[email protected]>
Co-authored-by: hindercanrun <[email protected]>
Co-authored-by: MrIkso <[email protected]>
* feat: initial T4 support
* chore: adjust t4 symbols a bit for accuracy
* chore: add PackIndex asset to T4
* chore: remove unused AssetXModelPieces
* chore: add default and global asset pools loader for T4
* chore: use separate defines for T4 in ImageDumper
* chore: remove unnecessary namespaces in gfximage_actions
* chore: small things
* chore: fix T4 PhysPreset type
* chore: use proper XQuat2 type for T4 xanims
* chore: fix errors on T4 types
* chore: use iw3 like struct for XModelStreamInfo
* docs: add basic docs for T4
* chore: add basic ObjCompiler setup for T4
* chore: adjust loaded sound definition
* chore: make sure t4 material has the correct alignment
* chore: make sure t4 uses similar names for assets as other games
* fix: asset references should not be reusable
* chore: add content writer for t4
* feat: add t4 localize loader
* chore: reorder game ids to be alphabetically ordered
---------
Co-authored-by: Jan Laupetin <[email protected]>