2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-06-26 19:08:07 +00:00
Commit Graph

246 Commits

Author SHA1 Message Date
Ash 040826b1f3 Add dumping support for PS3, Wii U and Xenon server fast files (#826)
Co-authored-by: hindercanrun <109132519+meowica@users.noreply.github.com>
2026-06-16 10:45:03 +02:00
mo 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 <jan@laupetin.net>
2026-06-07 14:06:33 +02:00
Jan ab7d8f5670 fix: various wrong alignment values (#823)
* fix: alignment mistakes on various games

* chore: reduce overhead of zcg definition with members fields

* fix: make sure Material alloc alignment is 4
2026-06-07 01:14:37 +00:00
Jan 036b27568c fix: t6 must use two separate structs for quat indices (#824)
Otherwise arraysize cannot be adjusted from appropriate parent struct
2026-06-07 00:37:16 +00:00
Jan 0d0f928267 feat: add binary xanim support for remaining games (#818)
* refactor: use generic loader for iw3 xanims

* refactor: use generic dumper for iw3 xanims

* chore: use templating on XAnimDumper

* chore: use templating on XAnimLoader

* feat: dump xanims for T5

* feat: load binary t5 xanims

* feat: load and dump t6 xanims

* feat: load and dump iw4,iw5 xanims

* chore: make sure iw3 and t5 notify about unsupported delta3D

* chore: also use CommonVec3U8 and CommonVec3U16 for non delta trans track
2026-06-06 14:47:51 +00:00
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 8a791816ed chore: set XSurface deformed property when applicable 2026-05-24 11:13:54 +02:00
Jan Laupetin 2d2ea30b45 fix: iw5 uses isFrictionInfinity as well 2026-05-03 16:00:30 +02:00
Jan Laupetin b7a22973e6 chore: make sure xmodel flags are unsigned 2026-05-03 13:09:03 +02:00
Jan Laupetin 08c128addd feat: accept aliases for asset type names 2026-05-02 18:08:12 +02:00
Jan Laupetin 0cbe0c2891 chore: adjust asset type names for light def 2026-05-02 16:01:11 +02:00
Paging Red 759a3ccf0e Merge pull request #753 from pagingred/iw5_physpreset_dumper
feat: phys presets dumping and loading for IW3, IW5, T5
2026-05-02 12:01:59 +02:00
Jan Laupetin 4d66911203 fix: incomplete iw3 part classification 2026-05-01 21:52:10 +02:00
Paging Red 010ac3ad3e Add IW3 PhysPreset dump logic (#744)
* Copied template from font.

* Create PhysPreset writer from Font dumper template.

* Completely refactor to match previous implementation.

* Remove files from previous implementation.

* Fix PhysPresetFields.

* Add missing fields and correct order.

* Add static infinity check as builtin does not work.

* Wasn't clang formatted.

* Remove unused 'perSurfaceSndAlias' field.

* Removed unsupported vals (tracer & vehicle) and un-needed vals (material).

* Make order match struct and mark 'tempDefaultToCylinder' as QBOOLEAN.

* Make order match struct and clamp vals for 'mass' and 'tempDefaultToCylinder'.

* Remove un-needed includes and add limits for float max.

* Remove clamping of mass.

* Use float max to determine if friction is infinite.

* Clang format.

* chore: formatting

* chore: do not use classes for obj constants

---------

Co-authored-by: njohnson <gitea.nicholasjohnson.info>
Co-authored-by: Jan Laupetin <jan@laupetin.net>
2026-04-23 23:27:34 +02:00
Jan Laupetin 72f285178b feat: add techset dumping for iw5 2026-03-18 23:04:35 +01:00
Jan Laupetin b93925c306 fix: inconsistencies on t5 technique compilation 2026-03-15 15:31:01 +01:00
Jan Laupetin 04870e8fbf chore: use templated code for t5 techset dumping 2026-03-14 23:23:10 +01:00
Jan Laupetin daa891a922 feat: add techset compiling for IW3 2026-03-14 20:54:59 +01:00
Jan Laupetin 5993c88897 feat: dump iw3 technique sets 2026-03-14 20:54:59 +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 dbe5cffb2f feat: use templated techset compiler for IW4 2026-03-14 09:09:56 +01:00
Jan Laupetin bb9dba4132 chore: add CommonCodeSourceInfos for IW4 2026-03-14 09:09:45 +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 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 9a527c16fa feat: add t6 vertexdecl sub asset creator 2026-03-02 22:08:57 +00:00
Jan Laupetin e66030a5df chore: improve game shader types 2026-03-02 22:08:56 +00:00
Jan Laupetin a6d63e9b31 fix: constraint on asset name arrays 2026-03-02 22:08:56 +00:00
Jan Laupetin e749514972 fix: compilation with CommonTechset 2026-03-02 22:08:55 +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 aa47ffa629 refactor: introduce subasset loading 2026-02-05 18:17:15 +01:00
Jan Laupetin e5784d09ed refactor: retrieve asset names from IGame 2026-02-05 17:36:55 +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 0a06a01e67 feat: dump t5 techsets and techniques 2026-01-13 20:24:00 +00:00
Jan Laupetin 4cdccba016 feat: add embedded image loader for every supported game 2026-01-05 09:50:21 +00:00
Jan Laupetin 7bf7bf93de chore: adjust asset name method based on asset to not require constructor 2025-12-23 15:40:51 +01:00
Jan Laupetin dadcdc84e0 feat: dump t6 shader args 2025-12-16 11:47:29 +00:00
Jan Laupetin 18ccbb9180 feat: dump techsets for t6 2025-12-16 11:47:25 +00:00
Michael Oliver 67372025b4 feat: dump iw3 xbox signed fastfile data 2025-12-15 22:27:40 +00:00
Jan Laupetin c9e6a1fc64 feat: show zone and asset statistics in modman 2025-10-27 21:01:04 +01:00
Jan Laupetin 3995596e6c chore: add modman bind for getting assets from a zone 2025-10-27 21:01:03 +01:00
Jan Laupetin 9fa41ca0d3 feat: show loading progress in modman 2025-10-14 17:59:34 +01:00
Jan Laupetin 5b3664ad8c chore: add possibility to provide loading progress callback when loading zones 2025-10-14 16:48:20 +01:00
Jan Laupetin 763d280805 chore: recognize when xenon fastfile use lzx compression 2025-09-01 00:05:36 +02:00
Jan Laupetin 802b0f244a chore: dump fastfile data when xenon t6 fastfile is detected 2025-09-01 00:05:33 +02:00
Jan Laupetin 734173066b refactor: only refer to game id in zone 2025-08-31 18:00:27 +01:00
Jan Laupetin 4cdf568f5b chore: set proper flags and data for animated models 2025-07-19 12:02:12 +02:00