Jan Laupetin
d240655160
feat: load non-rigid xmodels from gltf
2025-07-19 12:02:08 +02:00
Jan Laupetin
4b5cea3180
fix: iw3/iw4 xmodels having invalid collLod
2025-07-10 17:57:48 +01:00
Jan Laupetin
08bcd02b24
feat: link schema in xmodel jsons
2025-07-10 17:57:25 +01:00
Jan
311d5935b3
feat: use templated xmodel loading and dumping code for iw3
2025-07-10 16:59:23 +01:00
Jan
3daa8b0412
refactor: use templated xmodel loading and dumping code for iw4
2025-07-09 23:23:16 +01:00
Jan
a9c693d04d
refactor: template remaining xmodel files for iw5,t5,t6
2025-07-09 21:57:22 +01:00
Jan
f07202d449
fix: show asset that failed when not being able to parse jsons
2025-07-09 16:53:53 +01:00
Jan Laupetin
2082805557
fix: make t5 isMatureContent property bool
2025-07-08 23:07:28 +02: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
Jan Laupetin
30c6735ff5
chore: use std array for json constants
2025-07-07 18:13:47 +02:00
Jan Laupetin
c53b17a3db
feat: add json schema url to dumped materials
2025-07-06 16:52:37 +02:00
Jan Laupetin
238ac293ab
chore: add tests for t5 material dumping and loading
2025-07-06 15:56:12 +02:00
Jan
9c2bbc414c
chore: add layeredSurfaceTypes to t5 materials
2025-07-05 13:27:49 +02:00
Jan
31d7ac26fe
chore: remove hashIndex from t6 json material as it is always 0
2025-07-05 13:27:49 +02:00
Jan
babfe7c884
feat: dump and load T5 materials
2025-07-05 13:27:49 +02:00
Jan
65c8cd6198
feat: add json material loading/writing for iw3
2025-07-05 13:27:49 +02:00
Jan
40427cf34f
fix: using wrong enum for mipmaps in iw4,iw5 material tests
2025-07-05 13:27:49 +02:00
Jan
f8286fd358
fix: iw4 material constant zone state using iw5 game
2025-07-05 13:27:44 +02:00
Jan
9827218f4a
chore: add tests for material dumpers
2025-06-29 12:41:54 +01:00
Jan
b3aa6b3dc3
chore: add game suffix to material dumping code
2025-06-29 08:48:10 +01:00
Jan
116f008f90
chore: add tests for material loading for iw4,iw5,t6
2025-06-28 23:24:12 +01:00
Jan
559fa561a9
fix: not writing gamma for iw4,iw5 materials
2025-06-28 19:16:38 +01:00
Jan
28a82818de
refactor: move iw4 techset and vertexdecl compiling to ObjCompiling
2025-06-28 19:16:13 +01:00
Jan
f23b47ca13
chore: move material compilation behind compiler flag
2025-06-28 16:10:03 +01:00
Jan
b05a473e6a
fix: iw4 materials not writing correct stateBitsEntry
2025-06-28 14:51:04 +01:00
Jan
2176480a37
chore: update formatting due to updated clang-format version
2025-06-28 11:56:09 +01:00
Jan
8542675d02
chore: make all .sh scripts use lf eol
2025-06-28 11:56:09 +01:00
Jan
12896a89f5
chore: update clang-format version
2025-06-28 11:56:08 +01:00
Jan
9d710caceb
fix: compilation errors
2025-06-28 11:56:08 +01:00
Jan
2073265a86
feat: add templated iw4 material loading
2025-06-26 22:40:30 +01:00
Jan
f897a41188
refactor: extract experimental iw4 material dumping into separate dumper
2025-06-25 22:09:01 +01:00
Jan
223dfcd4f8
refactor: move material asset dumpers to material folder
2025-06-25 21:35:35 +01:00
Jan
110ae473e8
chore: remove old iw4 json code
2025-06-25 19:47:23 +01:00
Jan
6c114fe58a
refactor: extract material name into common source file
2025-06-25 19:34:09 +01:00
Jan
dceca0ec9a
refactor: use templating for JsonMaterialLoader
2025-06-25 19:16:53 +01:00
Jan
79b0706fc1
refactor: use templating for JsonMaterials
2025-06-25 18:30:07 +01:00
Jan
0736b8043b
refactor: use templates for JsonMaterialDumper of IW5 and T6
2025-06-24 22:26:39 +01:00
Jan
2876c9cb48
chore: remove unused generic xmodel file
2025-06-24 20:06:20 +01:00
Jan
308816a38e
chore: write game into dumped jsons to prevent mixup of incompatible formats
2025-06-24 19:50:24 +01:00
Jan
79b4313384
refactor: update T6 loading code for x64 support
2025-06-24 17:08:45 +01:00
Jan
a9a8597323
refactor: update IW3 loading code for x64 support
2025-06-24 17:08:45 +01:00
Jan
37e5e940b0
refactor: update IW5 loading code for x64 support
2025-06-24 17:08:45 +01:00
Jan
f70932684c
fix: fix single pointer leaf structs that have non-matching cross platform structure
2025-06-24 17:08:45 +01:00
Jan
1736f38d78
refactor: update T5 loading code for x64 support
2025-06-23 18:29:04 +01:00
Jan
dd9b0915d9
fix: wrong XQuat structs for iw3,t5
2025-06-22 21:38:11 +01:00
Jan
377ef5ca5c
fix: not passing correct zone ptr to content loader
2025-06-22 21:21:07 +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
80558af9a1
fix: accessing freed memory when writing gltf inverseBindMatrix
2025-06-19 18:59:27 +01:00
Jan
818a8d7459
fix: Loading String arrays for x86
2025-06-19 18:59:27 +01:00
Jan
d612d8f1a6
fix: WavWriter outputting invalid files when compiled as x64
2025-06-19 18:59:27 +01:00
Jan
d30e2e6532
chore: fix annoying IW4 cross-type pointer reusage with dirty hack
...
The game reuses pointer across different types as long as bytes and size matches
This leads to non-pointer and pointer types being reused
To fix this loading code now handles block memory offsets by nulling
and block offsets to non-block data with pointing to raw block data
The behaviour only seems to realistically happen on nulled memory
2025-06-19 18:59:26 +01:00
Jan
667d76e50e
wip: change redirect pointer to lookup
2025-06-19 18:59:26 +01:00
Jan
788bf1cc5d
chore: make allocating redirect entry work with ptr directly
2025-06-19 18:59:25 +01:00
Jan
3c16da006c
chore: make sure that pointer resolving via lookup always resolves something
2025-06-19 18:59:25 +01:00
Jan
bd9a680bb0
fix: pointer lookup for assets that should be reusable
2025-06-19 18:59:24 +01:00
Jan
930867f07f
fix: properly load matching structure dynamic array inside non-matching structure embed
2025-06-19 18:59:24 +01:00
Jan
884ad57bf4
fix: dynamic fill loading missing conditions on unions
2025-06-19 18:59:24 +01:00
Jan
fe1bbce7aa
fix: do not resolve pointers like alias for x64
2025-06-19 18:59:23 +01:00
Jan
43be997a22
fix: doing wrong alignment on dynamic filling
2025-06-19 18:59:23 +01:00
Jan
ee027502ca
fix: Make LoadPtrArray reusable methods for x64
2025-06-19 18:59:23 +01:00
Jan
333cbed5f9
fix: fill structs in runtime block that are not matching structure
2025-06-19 18:59:22 +01:00
Jan
4ec5b52b0b
fix: filling x64 structs with dynamic array size
2025-06-19 18:59:22 +01:00
Jan
e035e5deb7
fix: try fixing alias resolving via redirection for x64 for real
2025-06-19 18:59:22 +01:00
Jan
e120d01697
fix: dynamic array reallocation for x64
2025-06-19 18:59:21 +01:00
Jan
967a378b4e
chore: temporarly adjust pointer insertion
2025-06-19 18:59:21 +01:00
Jan
f517130ef0
fix: not properly inserting pointer in x64 zone loading
2025-06-19 18:59:21 +01:00
Jan
6c8ec53821
fix: make x64 modified loading code compatible with x86 again
2025-06-19 18:59:20 +01:00
Jan
03ccede91c
refactor: implement base x64 fastfile loading for iw4
2025-06-19 18:59:20 +01:00
Jan
78d8fba6f8
refactor: make ZoneInputStream a reference in zone loading
2025-06-14 00:39:58 +01:00
Jan Laupetin
f6d7831e6e
chore: implement base skeleton for architecture independent zone loading
2025-06-14 00:39:55 +01:00
Jan Laupetin
49867a3474
fix: accidentally dumping iwi cubemaps as 2D
2025-05-30 19:41:25 +02:00
Jan
2a4c0dcb43
fix: dumping xmodels with multiple surfaces and no bones
2025-05-11 20:55:52 +01:00
Jan Laupetin
35cb6636a1
fix: linux build
2025-05-02 23:26:12 +02:00
Jan
b92e85dc14
refactor: hide implementation of loading steps inside file
2025-05-02 22:08:08 +01:00
Jan
955df98279
refactor: hide implementation details of zone loading processors
2025-05-02 22:08:07 +01:00
Jan
eb16dfcd00
refactor: merge ZoneInputStream interface with only implementation
2025-05-02 22:08:07 +01:00
Jan
4ce82ad63c
refactor: update ZoneLoading classes codestyle
2025-05-02 22:08:07 +01:00
Jan Laupetin
446c38d8ee
refactor: reorder members of zcg generated classes
2025-05-02 22:08:06 +01:00
Jan
ed029bc24d
refactor: adjust template const modifiers
2025-05-02 22:08:06 +01:00
Jan
8b85cadb77
refactor: make memory from zone a reference instead of ptr
2025-05-02 22:08:06 +01:00
Jan
9e940a6f53
refactor: use zone reference in AssetLoader
2025-05-02 22:08:06 +01:00
Jan
50612d117e
refactor: update zcg generate file headers
2025-04-30 17:01:52 +01:00
Jan Laupetin
1b579b1bc3
refactor: remove usages of name sequence in game commands
2025-04-28 17:30:30 +02:00
Jan Laupetin
68ee502c72
refactor: remove name sequence from zcg commands
2025-04-28 17:23:39 +02:00
Jan Laupetin
0103e4631f
refactor: remove GetAssetName method from ZoneMark template
2025-04-28 17:18:09 +02:00
Jan Laupetin
7f59d35e87
refactor: replace GetAssetName method in ZoneLoad template
2025-04-28 17:09:40 +02:00
Jan
547da3fdf9
refactor: remove GetName method of ZoneWrite zcg template
2025-04-28 12:53:14 +01:00
Jan Laupetin
1fe1b30831
chore: use Asset definition instead of enum entry for zcg
2025-04-28 12:53:02 +01:00
Jan
3adbe5a275
refactor: fix additional zcg x64 warnings
2025-04-28 12:07:41 +01:00
Jan Laupetin
d938f91541
fix: crash on trying to generate for specific asset
2025-04-28 11:55:47 +01:00
Jan Laupetin
2eefad105e
chore: small code adjustments for generation code in zcg
2025-04-28 11:55:46 +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
4e9599aabf
chore: detect structs that differ on different architectures
...
* and exclude them from assetstructtests
2025-04-27 21:04:41 +02:00
Jan Laupetin
088d14f894
chore: add x64 build to ci
2025-04-27 19:30:39 +02:00
Jan
365b627523
refactor: fix remaining x64 compilation issues
2025-04-27 19:30:36 +02:00
Jan Laupetin
a6107e24a2
chore: disable type alignment on x64 for x86 games
2025-04-26 19:48:03 +02:00
Jan
3b00c1d45b
refactor: fix x64 compilation for ZoneLoading
2025-04-26 19:48:03 +02:00
Jan
de43e33dcd
refactor: fix x64 compilation for ObjWriting
2025-04-26 19:48:03 +02:00