Commit Graph
33 Commits
Author SHA1 Message Date
moandGitHub 786ccc14d3 fix: prevent IWD paths from matching nested filenames (#908)
Fixes https://github.com/Laupetin/OpenAssetTools/issues/887
2026-07-18 11:44:55 +02:00
33352e5391 feat: log detected game when loading zones (#904)
* feat: log detected game when loading zones

* chore: make zone loaded log a one-liner

* chore: also log game when loading zone in Linker

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-07-18 09:24:49 +02:00
moandGitHub 872b650c9a chore(ci): add compiler caching via sccache (#903) 2026-07-17 23:38:33 +02:00
a2fe2e88ab fix: IW3 ensure loadForRenderer is set for shaders (#907)
* fix: IW3 restore renderer loading for disk shaders

* fix: IW3 ensure `loadForRenderer` is set for shaders

* fix: use modtools linker logic for iw3 loadForRenderer shader values

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-07-17 21:55:49 +02:00
moandGitHub 0c1efa1667 fix: assign ownerdraw item type when parsing menus (#911)
Set `m_type` to `ITEM_TYPE_OWNERDRAW` when parsing an `ownerdraw` property. Otherwise, it retains the default `ITEM_TYPE_TEXT`.

This restores controls such as the Source button in the IW4x server browser.
2026-07-17 18:26:50 +02:00
moandGitHub 0123595305 refactor: use standard library endian utilities (#883) 2026-07-12 00:06:44 +02:00
3fb8b2bb17 feat: font loading and dumping (#866)
* 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]>
2026-07-03 19:26:12 +02:00
fb4b00398c feat: T4 weapon loading and dumping (#869)
* feat: T4 weapon loading and dumping

* chore: adjust naming of weapon enum values

* chore: fix typo in type names

* chore: rename t4 weapon loader files

* feat: dump and load gdt weapons for t4

* chore: weapon loaders to use similar logic

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-07-02 07:10:24 +02:00
ee63355fd2 feat: IW3 weapon loading and dumping (#867)
* feat: IW3 weapon loading and dumping

* chore: adjust weapon strings for iw3

* chore: use original capitalization for aifuseTime

* chore: remove unused alternative iw3 csp fields

* chore: add missing checks and style the code similar to t5

* chore: small code smells in t5 weapon loader

* feat: add iw3 gdt loader

* chore: adjust weapon loader file names to t5 style

* feat: add gdt dumper for iw3 weapons

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-06-30 22:25:06 +02:00
moandGitHub c9595794a3 feat: T4 RawFile and MapEnts loading (#870) 2026-06-29 19:27:16 +02:00
62ee9dab40 feat: T4 LoadedSound dumper (#855)
* feat: T4 LoadedSound dumper

* chore: make t4 loaded sound dumper not parse wav

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-06-29 18:59:28 +02:00
228e40d17f feat: T4 MapEnts dumper (#865)
* feat: T4 MapEnts dumper

* chore: use common map_ents logic for filename

---------

Co-authored-by: Jan Laupetin <[email protected]>
2026-06-29 08:28:45 +02:00
moandGitHub b5d50120ad feat: T4 xanim binary dumping and loading (#854) 2026-06-27 14:16:50 +02:00
moandGitHub 8c61fa3b62 feat: T4 XModel dumper (#852) 2026-06-25 15:03:07 +02:00
44d6710991 feat: initial T4 support (#807)
* 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]>
2026-06-07 14:06:33 +02:00
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