Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes #3644 which I believe is the same underlying issue as "NG+ glitch" To reproduce the issue in #3644 you can: - choose Hub 2 100% in the speedrun fast reset menu - hit the blue sage warp gate switch - go deep enough into any adjacent level (e.g. basin) where `village2` display is turned off - reset speedrun in the fast reset menu - tasks are reset but the switch will be pressed, giving the cutscene early You can also grab orbs/scout flies in `village2`, and they won't be reset properly because of this same bug. It happens because of the way entity perm status is managed across both `level` vs `game-info` objects. - when `village2` is deactivated (still loaded but display hidden), its entity perms are copied to `game-info`'s `perm-list` - this is how we persist `warp-gate-switch-7` being pressed if village2 is ever unloaded - during the speedrun reset `reset-actors` is called: - any active levels (loaded+displayed) have their entity perm statuses reset - because `village2` is not displayed yet, its entity perm statuses are not touched - `game-info` is re-initialized, clearing out its `perm-list` - continue is set to `firecanyon-end` - this unloads `rolling` or whatever to make room for `firecanyon` - `village2` is already loaded, and just gets displayed - at this point the game does copy entity perm status from `game-info` back to the `village2` level - but we reset the game, so it has no data about the warp-gate-switch, leaving it pressed!
- Loading branch information