* feat: QOS (007: Quantum of Solace) support
* feat: add qos localize loader
* feat: add qos stringtable loader
* chore: comment about official zones
* fix: add qos gfximage runtime fields
* chore: remove useless dev time comments
* fix: remove all `static_asserts`s from asset headers causing build fail on x64
* chore: change union ordering of qos `entryInternalData`
* chore: move qos asset type enum to qos.h
* fix: qos and t4 xsurface index buffer
* chore: implement qos MaterialInfo struct
* chore: adjust some gfxworld struct members
* chore: implement qos PhysPreset and PhysConstraints
* chore: fix and adjust slight inconsistencies with qos zone code
* chore: reorder qos ZoneCode.lua entries in order of asset type enum
* chore: remove asset types that are not actual asset types in zones
* chore: check common asset arrays with static_assert
* chore: rename qos assets
* chore: reorder qos in templates to be in alphabetical order
* chore: use function for CopyMipLevel in Dx9TextureLoader
* chore: use templates for qos MapEntsDumper
* chore: add missing braces in XModelToCommonConverter
* chore: add generic way to peek at zone data
* Qos does not use a classic ZoneHeader so code needs to be more generic
* fix: do not use raw_byte and raw_uint typedefs for qos
* fix: not being able to write clipmapmp
* chore: additional research on qos vertex property and stuff
---------
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: templated vehicle loading and dumping for IW4 and IW5
* chore: restructure vehicle tests into separate files
---------
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]>
* feat: IW3 dump xanim to cod4 mod tools compatible binary
* chore: add XAnimPartType enum to game headers
* chore: use XAnimPartType in XAnimDumperIW3
* chore: extract xanim filename into XAnimCommon
* chore: prefer emplace_back over push_back
* chore: small code style improvements
* chore: use proper unsigned types for XAnimParts structs
* chore: use better understandable calculations for bitfields
* chore: use game names for parts
* chore: rename method to WriteNoteTracks
* chore: adds comments and improve clearity of what the game does
* chore: extract stream writing methods into StreamUtils
* chore: use vec3 for XAnimPartTransFrames mins and size
* chore: properly differ between XQuat and XQuat2 structs
* chore: use constants for xanim flags
* chore: use optional for delta track quats and trans
* chore: split delta track writing methods into quat and trans
* chore: add assertion for bDelta
* chore: simplify quat frame encoding indexing
* chore: simplify float to int bit casting
* chore: do not throw exception on failing to reconstruct bone tracks
* feat: add xanim loader for iw3
* fix: make sure to sort quats and trans like the game
* chore: prevent empty dumped files on bad xanim data
* chore: ensure no exception on zero frames in xanim notifies
* test: add system test for iw3 xanims
---------
Co-authored-by: Jan Laupetin <[email protected]>