Commit Graph

86 Commits

Author SHA1 Message Date
Jan
f70932684c fix: fix single pointer leaf structs that have non-matching cross platform structure 2025-06-24 17:08:45 +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
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
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
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
f6d7831e6e chore: implement base skeleton for architecture independent zone loading 2025-06-14 00:39:55 +01:00
Jan
eb16dfcd00 refactor: merge ZoneInputStream interface with only implementation 2025-05-02 22:08:07 +01:00
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
0103e4631f refactor: remove GetAssetName method from ZoneMark template 2025-04-28 17:18:09 +02:00
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
1fe1b30831 chore: use Asset definition instead of enum entry for zcg 2025-04-28 12:53:02 +01:00
d938f91541 fix: crash on trying to generate for specific asset 2025-04-28 11:55:47 +01:00
2eefad105e chore: small code adjustments for generation code in zcg 2025-04-28 11:55:46 +01:00
4e9599aabf chore: detect structs that differ on different architectures
* and exclude them from assetstructtests
2025-04-27 21:04:41 +02:00
Jan
10cbd47bdc chore: use std::format for zcg templates 2025-04-24 21:37:43 +01:00
Jan
9f8a933277 chore: update ZoneCodeGenerator code style 2025-04-20 09:45:37 +02:00
Jan
cc67f6e730 refactor: use OutputPathFilesystem for writing fastfiles 2025-01-14 22:03:44 +01:00
Jan
ffac925410 fix: reallocate assets before adding to zone pool when loading from
fastfile
2025-01-01 18:14:42 +01:00
Jan
89074c8601 fix: not reallocating IW5 clipMap pInfo from temp block 2024-03-30 20:10:20 +01:00
Jan
fc18f81302 fix: consider asset references when looking for assets of zone 2024-03-30 17:44:55 +01:00
Jan
132cccb971 refactor: use new line character instead of std::endl 2024-03-24 20:24:22 +01:00
Jan
d3d7f1b6e5 fix: not properly handling array of indirect asset ref pointers 2024-02-07 01:27:54 +01:00
Jan
fef815e708 feat: recognize indirect asset refs when marking assets 2024-02-07 00:53:52 +01:00
Jan
91cbfa2bbb chore: use marker template in loader for scriptstrings and dependencies 2024-01-22 22:40:03 +01:00
Jan
685a99577b chore: remove scriptstring and dependency registration from ZoneLoad template 2024-01-22 22:39:18 +01:00
Jan
9d7c0d3452 feat: add asset marking 2024-01-22 21:47:46 +01:00
6b4f5d94a8 Reformat code with clang format 2023-11-19 21:07:21 +00:00
Jan
6c164eee61 Update catch2 version 2023-06-18 13:40:30 +02:00
Jan
61a42afe28 Mark scriptstrings as used even when referencing them via zone pointer 2022-12-03 12:44:33 +01:00
Jan
4d674fac83 Fix zonewriting not applying updated values for embedded scriptstrings 2021-08-26 21:01:12 +02:00
Jan
ae9633b696 Change ZoneCode zone writing template so it marks elements as following before writing them to ensure being able to write recursive structs 2021-06-24 16:59:43 +02:00
Jan
a8c62de081 Add written variable for zone writing code to be able to differ between written data and original data 2021-05-08 16:41:42 +02:00
Jan
156d7aa5cd Make zone write add insert pointer even if reusable member does not have struct type 2021-04-28 15:31:12 +02:00