Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UNTESTED] Fix integer overflow when reading late object properties in big files. Better V11 CustomItemDatas redirection support. #6

Merged
merged 3 commits into from
Sep 11, 2023

Conversation

alex4401
Copy link

@alex4401 alex4401 commented Sep 9, 2023

This should address a bad integer offset (or rather a property table over-read within wrong context) mentioned under #5.

Largely untested, nowadays I don't play ARK and don't have any save file collection nor the time needed to wait for these files to load and import into ASB.

  • The first commit fixes an overflow that occurs when calculating the absolute property table offset of later objects in big save files.
  • The second two commits attempt to solve CustomItemDatas (later "CID" for short) reading.
    • I've drawn a few far-fetched conclusions on WC's implementation that seem very likely to me - therefore I've redone how we handle CID after Implemented basic support for V11 file format. #5 to ensure we don't reinterpret raw array contents outside of the property table read.
    • Ian reported seeing variable sizes of the "redirectors" - turns out the relocated data isn't sufficient to reconstruct an FCustomItemData struct we've seen in V9 as class and object references are missing. It appears those references are still written to the primary archive (the array). This should be now handled.

@alex4401 alex4401 marked this pull request as ready for review September 10, 2023 15:11
@cadon cadon merged commit eb86100 into cadon:master Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants