Skip to content

Conversation

@Malkierian
Copy link
Contributor

@Malkierian Malkierian commented Jun 4, 2025

This accomplishes multiple things:

  • Removes previous version loaders for the randomizer section, converts all existing ones loaded in the future to "section version 1".
  • Checks SoH version registered in randomizer save files and spoiler logs, locking them to currently running SoH version.
    • For saves, it renames them to .bak files with timestamps
    • For spoiler logs, if a log already in the SpoilerLog CVar suddenly becomes unusable, the log file is removed from that cvar. If a dropped spoiler is unusable, the processing is immediately halted and use disallowed.
  • Saves with randomizer data with a specific data set, or before sohStats inclusion and thus do not have SoH version saved, are assumed to be vanilla saves from Rachael, where randomizer data was always saved even if it wasn't a rando file, and have the rando sections removed.
  • Tweaks the path sanitizer function to prevent adding extra escape slashes when not necessary.

In all cases, the user is notified via SohModals of the occurrence and reason.

This targets Blair because it's fixing several instances of possible crashing.

Build Artifacts

Malkierian and others added 3 commits June 2, 2025 15:29
Add spoiler drop fail sound (sys_error).
Improve path sanitizer operation.
Add check for a spoiler having a version and it equaling running version. Deletes spoiler CVar if spoiler becomes unusuable while running, and prevents loading dropped spoilers that don't match.
@SuperBro64
Copy link

SuperBro64 commented Jun 4, 2025

Checks SoH version registered in randomizer save files and spoiler logs, locking them to currently running SoH version.

Does this mean that a randomizer save created in one version of SoH cannot be used in another version? And if so, does that include between separate dev commits (after the future point when this is pushed from Blair to dev), or only between full numbered versions of SoH?

@serprex
Copy link
Contributor

serprex commented Jun 4, 2025

Checks SoH version registered in randomizer save files and spoiler logs, locking them to currently running SoH version.

Does this mean that a randomizer save created in one version of SoH cannot be used in another version? And if so, does that include between separate dev commits (after the future point when this is pushed from Blair to dev), or only between full numbered versions of SoH?

yes (this was never really supported anyways, & not really in demand either)

only between numbered versions of SoH

Remove duplicate Sanitize from Context and make it use SohUtils.
Fix typo.
@Malkierian Malkierian merged commit 69792e9 into HarbourMasters:develop-blair Jun 11, 2025
6 checks passed
@Malkierian Malkierian deleted the save-rando-versioning branch June 11, 2025 21:39
krazyjakee pushed a commit to krazyjakee/OOT that referenced this pull request Sep 6, 2025
* Add version control for Rachael saves and old rando saves.

* Change spoiler drop success sound to puzzle success chime.
Add spoiler drop fail sound (sys_error).
Improve path sanitizer operation.
Add check for a spoiler having a version and it equaling running version. Deletes spoiler CVar if spoiler becomes unusuable while running, and prevents loading dropped spoilers that don't match.

* clang

* Remove backslash escaping from Sanitize.
Remove duplicate Sanitize from Context and make it use SohUtils.
Fix typo.
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.

3 participants