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
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
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
03ccede91c
refactor: implement base x64 fastfile loading for iw4
2025-06-19 18:59:20 +01:00
Jan Laupetin
f6d7831e6e
chore: implement base skeleton for architecture independent zone loading
2025-06-14 00:39:55 +01:00
Jan Laupetin
35cb6636a1
fix: linux build
2025-05-02 23:26:12 +02:00
Jan
eb16dfcd00
refactor: merge ZoneInputStream interface with only implementation
2025-05-02 22:08:07 +01:00
Jan
365b627523
refactor: fix remaining x64 compilation issues
2025-04-27 19:30:36 +02:00
Jan
3b00c1d45b
refactor: fix x64 compilation for ZoneLoading
2025-04-26 19:48:03 +02:00
Clang Format
6b4f5d94a8
Reformat code with clang format
2023-11-19 21:07:21 +00:00
Jan
73eb76c991
Only overflow block when align goes over block boundary instead of only hit it because load can be 0
2021-04-15 17:08:51 +02:00
Jan
88c48e8107
Add dynamic allocation alignment to be able to load T6 MemoryBlock asset which isnt used at all so why am i doing this again
2021-03-05 09:23:37 +01:00
Jan
1a45cf2107
Fix more gcc compilation issues
2021-03-03 09:12:27 -08:00
Jan
8778421ebb
Quick code style fix
2020-09-09 16:11:21 +02:00
Jan
80bc10752a
ZoneLoading: Fix not respecting the block type when trying to load data
2019-12-24 01:59:40 +01:00
Jan
21f395ab7d
ZoneLoading: When using the temp block multiple times after another when for example loading nested assets, remember the last position of the temp block and return to there when popping it
2019-12-23 17:55:42 +01:00
Jan
db08cf5ebc
ZoneLoading: Fix InsertPointer not increasing the buffer position by the size of the pointer
2019-12-23 17:02:22 +01:00
Jan
236108e5fb
ZoneCodeGenerator: Add ability to split loading of a structure due to a dynamic member
2019-12-22 23:33:00 +01:00
Jan
cd93106c19
ZoneCodeGenerator: Fix fastfile offsets being wrong by 1 due to not respecting that all offsets are moved by 1
2019-11-15 14:52:53 +01:00
Jan
51862d8596
ZoneCodeGenerator: Fix throwing overflow exceptions too early due to wrong limit testing
2019-11-15 14:52:10 +01:00
Jan
765b0d9e32
ZoneCodeGenerator: Fix XAssetList of T6 being loaded into block memory and therefore causing overflows
2019-11-15 14:50:23 +01:00
Jan
b7ab2a1aa6
ZoneCodeGenerator: Change ContentLoader to use vars for fastfile pointer transfer and change ZoneInputStream API to be able to specify load location to better reflect the way the games do it.
2019-11-14 14:48:40 +01:00
Jan
9d1b7325a2
Code Quality: Use enum class instead of enum to make sure enum members can only be accessed when scoped to the enum
2019-10-02 12:48:58 +02:00
Jan
42af6df5d8
Rename ZoneLoader and ZoneWriter components to ZoneLoading and ZoneWriting to make a difference between the executive class and the component class
2019-09-24 22:35:11 +02:00