2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-06-03 07:12:33 +00:00
Commit Graph

81 Commits

Author SHA1 Message Date
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
Jan Laupetin 5cf0ce37c1 feat: calculate model collision tree with leafs 2026-05-24 11:13:55 +02:00
Jan Laupetin b7a22973e6 chore: make sure xmodel flags are unsigned 2026-05-03 13:09:03 +02:00
Jan Laupetin 72f285178b feat: add techset dumping for iw5 2026-03-18 23:04:35 +01:00
Jan Laupetin edcc6774c7 fix: not reusing cbrushedge_t type in iw3,iw4 clipMap 2026-03-14 16:01:30 +01:00
Jan Laupetin 161ab45306 chore: handle iw4 technique flags 2026-03-14 09:09:57 +01:00
Jan Laupetin bf9beb1458 chore: make sure TechsetCompilerT6 sets proper worldVertFormat 2026-03-02 22:08:55 +00:00
Jan Laupetin aa47ffa629 refactor: introduce subasset loading 2026-02-05 18:17:15 +01:00
Jan Laupetin 00546740e4 fix: filling union members that are not supposed to be written
* This causes some pointers to be partially overwritten when filling in the wrong order as well
2026-01-17 00:45:21 +00:00
Jan Laupetin 4cdccba016 feat: add embedded image loader for every supported game 2026-01-05 09:50:21 +00:00
Jan Laupetin 4b5cea3180 fix: iw3/iw4 xmodels having invalid collLod 2025-07-10 17:57:48 +01:00
Jan 3daa8b0412 refactor: use templated xmodel loading and dumping code for iw4 2025-07-09 23:23:16 +01:00
Jan b05a473e6a fix: iw4 materials not writing correct stateBitsEntry 2025-06-28 14:51:04 +01:00
Jan 2073265a86 feat: add templated iw4 material loading 2025-06-26 22:40:30 +01:00
Jan Laupetin 2230efbd27 chore: make xquat and xquat2 structs to improve handling from zcg 2025-06-19 20:45:19 +01:00
Jan 03ccede91c refactor: implement base x64 fastfile loading for iw4 2025-06-19 18:59:20 +01:00
Jan Laupetin 4ccd0a55cf chore: adjust game structs to have custom alignment when they are
platform independent
2025-04-27 21:05:22 +02:00
Jan Laupetin a6107e24a2 chore: disable type alignment on x64 for x86 games 2025-04-26 19:48:03 +02:00
Jan 5cc52c42cd refactor: image and obj data loading 2024-09-26 07:22:35 +02:00
Jan 1f5050befa feat: first draft of loading gltf models for t6 2024-09-05 21:19:39 +02:00
Jan 3201cefd5b chore: rename accuracy table properties in weapon structs 2024-05-20 10:41:57 +02:00
Jan dc090c1371 chore: update count properties of leaderboard enums 2024-05-19 11:52:29 +02:00
Jan 3dad9d60da chore: fix typo in structs 2024-04-07 10:54:04 +02:00
Jan df7b25b854 feat: dump t6 materials as json 2024-02-18 10:16:43 +01:00
Clang Format 6b4f5d94a8 Reformat code with clang format 2023-11-19 21:07:21 +00:00
Jan 399d8e834d Make IW4 menu rect def align be unsigned like IW5 2023-08-23 20:51:11 +02:00
Jan 2dd8660824 Add supplemental data for iw4 statemap layout 2022-08-20 14:37:05 +02:00
Jan c010355d4a Dump material tile and filter properties 2022-08-06 18:47:28 +02:00
Jan 347c1b3d68 Fix material loading sortkeys and cameraRegion 2022-08-06 15:40:00 +02:00
Jan 5771044c08 Material dumping and loading stuff 2022-08-06 10:52:52 +02:00
Jan 92d808b7a4 Use constants for material sort key names 2022-07-23 13:05:37 +02:00
Jan ea79e60856 Load material sortkeys v1 2022-07-23 12:22:59 +02:00
Jan 82349d3432 Material loading base 2022-07-15 11:21:54 +02:00
Jan 638b659a48 Example material stencil values and blendfunc 2022-05-08 12:44:34 +02:00
Jan cc2f0ca487 Write Statebits data to gdt materials 2022-05-02 21:11:51 +02:00
Jan b94c5b381d Extract more info from techset name 2022-05-02 18:45:49 +02:00
Jan 01d9a4d912 Improve recognition of material types 2022-04-29 23:55:10 +02:00
Jan 2823a46b92 Add improvements from iw3 material dumping to iw4 2022-04-21 19:58:49 +02:00
Jan ebb13e18da Write additional details in iw4 material json 2022-04-18 18:23:30 +02:00
Jan ce22a2fea6 Add more details about material semantic and samplerState 2022-04-18 15:26:24 +02:00
Jan 2114b761b0 Dump iw4 materials as json for data investigation purposes 2022-04-18 14:46:13 +02:00
Jan 6ff86ae5e7 Set technique flags based on used constants, samplers and technique names 2022-04-16 22:51:38 +02:00
Jan 4abb846ccd fix iw4 enum not having a name 2022-04-16 15:44:57 +02:00
Jan cb45bdaadc Progress on reversing technique flags 2022-04-16 15:41:45 +02:00
Jan 9990338130 Handle custom samplers 2022-04-15 16:34:44 +02:00
Jan 65c9267b06 Correctly identify update frequencies for shader arguments 2022-04-15 16:01:39 +02:00
Jan 7d2ca46cb1 Dump known material argument hashes 2022-04-09 19:07:24 +02:00
Jan eb5312899f Parse techset files for IW4 2022-03-26 18:47:43 +01:00
Jan ef936eba57 Dump IW4 techset code constant argument mappings 2022-03-24 23:04:35 +01:00
Jan 5f44d95770 TODO IW4 Shader arg dumping 2022-03-23 18:22:23 +01:00