Commit Graph
18 Commits
Author SHA1 Message Date
0c22dddd0e feat: IW3 xanim dumping/loading in CoD4 Mod Tools raw binary format (#768)
* 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]>
2026-06-01 22:52:49 +02:00
Michael Oliver 9ecc3d06e8 fix(unlinker): respect minimal zone definition output 2026-05-15 11:48:33 +01:00
Michael OliverandJan Laupetin 618592e411 fix: only omit default armature if it can be omitted for all lods 2026-05-03 13:09:02 +02:00
Michael OliverandJan Laupetin 98d8ea9005 fix: xmodel glTF dumps dropping COLOR_0 vertex attributes 2026-05-01 21:48:28 +02:00
Michael Oliver d71bebaa3d fix: remove deprecated '>type,type' zone definition 2026-05-01 15:50:26 +01:00
Michael Oliver 97591f59f4 refactor(zcg): use wordsize instead of architecture 2026-04-30 13:50:11 +01:00
Michael Oliver 3aa28a0ded fix: IW3 ensure XModel::surfs is set in loader 2026-04-27 18:24:02 +01:00
Michael Oliver a3e6529925 feat: add asset source description to loading logs 2026-04-27 10:07:11 +01:00
Michael Oliver 00ffc7717b feat: dump iw4 alpha 482 xbox fastfile data 2025-12-23 09:57:13 +00:00
Michael Oliver 5a0b255d92 tidy 2025-12-21 21:35:20 +00:00
Michael Oliver 47bb1493ed add a step to skip xasset stream files 2025-12-21 20:59:38 +00:00
Michael Oliver e1e4846386 update comment 2025-12-17 13:48:46 +00:00
Michael Oliver 541e16391e formatting 2025-12-17 13:48:17 +00:00
Michael Oliver ea161c658f convert rsa key to hexadecimal 2025-12-17 13:47:35 +00:00
Michael Oliver b19d7bfc75 cleanup 2025-12-17 13:42:01 +00:00
Michael Oliver 38953d1daa feat: dump iw4 xbox fastfile data 2025-12-17 13:35:58 +00:00
Michael Oliver 67372025b4 feat: dump iw3 xbox signed fastfile data 2025-12-15 22:27:40 +00:00
Michael Oliver cc7a68de56 feat: dump iw3 xbox unsigned fastfile data 2025-12-14 01:27:24 +00:00