mo
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 <jan@laupetin.net >
2026-06-01 22:52:49 +02:00
Michael Oliver
97591f59f4
refactor(zcg): use wordsize instead of architecture
2026-04-30 13:50:11 +01:00
Jan Laupetin
0c4a2771ef
chore: add unit tests for iw3 techsets
2026-03-20 23:51:19 +01:00
Jan Laupetin
7bb9cfcbfa
chore: add unit tests for iw4 techsets
2026-03-20 23:03:02 +01:00
Jan Laupetin
3b0416fa99
chore: add unit tests for iw5 techsets
2026-03-20 22:20:20 +01:00
Jan Laupetin
8d0e3f054c
chore: add unit tests for t5 techsets
2026-03-20 20:58:14 +01:00
Jan Laupetin
6e19b94b9b
chore: use templated loaders for shaders in IW4,T6
2026-03-14 09:09:57 +01:00
Jan Laupetin
5272b9060d
chore: use templating for t6 techset compilation
2026-03-14 09:09:56 +01:00
Jan Laupetin
90d7f92ddd
chore: replace all usages of removed ClassUtils macros
2026-03-06 00:13:04 +01:00
Jan Laupetin
1611c222cc
chore: add logic for computing precompiled index on material pass
2026-03-04 22:00:30 +00:00
Jan Laupetin
7ab9adc17c
chore: handle flag 80 on t6 techniques
2026-03-02 22:09:01 +00:00
Jan Laupetin
400c6ca78a
fix: use buffer binding point instead of index
2026-03-02 22:09:00 +00:00
Jan Laupetin
b2f51b2ae1
fix: technique loading tech flags
2026-03-02 22:09:00 +00:00
Jan Laupetin
c0a7114b24
chore: add tests for techset and technique compilation
2026-03-02 22:08:59 +00:00
Jan Laupetin
bf9beb1458
chore: make sure TechsetCompilerT6 sets proper worldVertFormat
2026-03-02 22:08:55 +00:00
Jan Laupetin
f7e0cb3c45
chore: call common djb2 implementations in game hashing funcs
2026-02-23 08:15:05 +01:00
Jan Laupetin
9502ebfc26
chore: add tests for game hashing funcs
2026-02-22 23:36:26 +00:00
Jan Laupetin
aa47ffa629
refactor: introduce subasset loading
2026-02-05 18:17:15 +01:00
Jan Laupetin
47dcab33e9
chore: add systemtest to test rebuilding of vanilla zones
2026-01-17 00:45:22 +00:00
Jan Laupetin
77af856a87
chore: remove ifdefs for disabling certain system tests
...
* Previously reading written zones was disabled
* Reenable it to test for success in writing correct zones
2026-01-17 00:45:14 +00:00
Jan Laupetin
b6598c5af3
chore: move string table tests
2026-01-05 09:50:22 +00:00
Jan Laupetin
c4a5856bfa
chore: add tests for templated image loader
2026-01-05 09:50:21 +00:00
Jan Laupetin
6c7dd30c78
fix(parser): macros only parse parameters if define specified them
2026-01-03 08:51:37 +01:00
Jan Laupetin
2442d7160c
chore: add system test to make sure reusing global assets is safe
2025-12-25 14:58:19 +01:00
Jan Laupetin
bc3a4a76a8
chore: move extend and dereference description into test source file
2025-12-24 10:05:02 +01:00
Jan Laupetin
42e8fd4056
chore: adjust naming of simple system tests
2025-12-23 21:20:01 +01:00
Jan Laupetin
e33ff303e6
chore: add ExtendAndDereference system test
2025-12-23 21:12:24 +01:00
Jan Laupetin
a29180433b
fix: only try to load system test zones on x86
2025-12-23 16:47:42 +01:00
Jan Laupetin
0fe942b80d
chore: add simple system tests for remaining games
2025-12-23 16:26:40 +01:00
Jan Laupetin
e675b001f7
fix: system tests on windows
2025-12-23 15:40:52 +01:00
Jan Laupetin
5f04decacc
chore: add simple iw3 system test
2025-12-23 15:40:52 +01:00
Jan Laupetin
fd9c57e15a
chore: add SystemTests project
2025-12-23 15:40:52 +01:00
Jan Laupetin
94cc12f4af
fix: add platform to test code
2025-10-27 21:01:04 +01:00
Jan Laupetin
6a84d1ea68
chore: generalize IAssetDumper interface
2025-10-15 20:06:01 +01:00
Jan Laupetin
c6e9cbedda
feat: report on unlinking progress
2025-10-14 23:20:56 +01:00
Jan Laupetin
734173066b
refactor: only refer to game id in zone
2025-08-31 18:00:27 +01:00
Jan Laupetin
fdef6797aa
fix: messed up kvp compiler reference
2025-08-06 00:31:52 +01:00
Jan Laupetin
46fb919a52
refactor: do not nest asset namespaces in game namespaces
...
* Duplicated namespace names are kind of annoying
2025-08-06 00:50:35 +02:00
Jan Laupetin
33c09dfe61
refactor: streamline obj compiling asset loading
2025-08-05 18:51:56 +02:00
Jan Laupetin
95a6a028ab
refactor: streamline IW3 asset loading
2025-08-05 01:22:39 +02:00
Jan Laupetin
6806337f46
refactor: streamline IW4 asset loading
2025-08-05 01:14:20 +02:00
Jan Laupetin
81a67151b5
refactor: streamline IW5 asset loading
2025-08-05 01:14:19 +02:00
Jan Laupetin
b5c9567389
refactor: streamline T5 asset loading
2025-08-05 01:14:19 +02:00
Jan Laupetin
a5024d40b0
refactor: streamline T6 asset loading
2025-08-05 01:14:19 +02:00
Jan Laupetin
0dfa57446c
refactor: streamline material dumping
2025-07-29 23:37:41 +01:00
Jan Laupetin
dbec702075
refactor: use IAssetDumper interface on implementations directly
2025-07-27 23:13:26 +01:00
Jan Laupetin
bca5fd3f1a
chore: add tests for font icon json writing and loading
2025-07-23 22:52:26 +01:00
Jan Laupetin
75c7949d3f
chore: remove unused t6 material property probeMipBits
2025-07-08 19:12:26 +02:00
Jan Laupetin
790729f5e0
chore: remove unused t5 material property maxStreamedMips
2025-07-08 19:08:46 +02:00
Jan Laupetin
90cc7dacbb
chore: use http schema url
2025-07-07 22:49:57 +02:00