mirror of
https://github.com/open-goal/jak-project
synced 2026-07-11 23:30:16 -04:00
697337166d
We already skip the "first autosave warning" prompt in speedrunner mode, this just moves the check up a bit earlier, where it feels more appropriate imo. This also prevents a potential softlock from occurring in speedrunner mode only, if you manage to bring up the progress menu while the first autosave occurs/finishes (e.g. by pause buffering 7th scout fly, or one of the citadel sage cells). In that scenario, the `auto-save` process gets stuck in `done` state in this loop because `progress-allowed?` is false due to the pending powercell cutscene, and so we keep resetting `state-time`: https://github.com/open-goal/jak-project/blob/d8710bb2f645528e598e2bd799708d9d945f76c6/goal_src/jak1/engine/game/game-save.gc#L1172-L1174 (in normal circumstances, this prevents the autosave prompt from popping up during and shortly after the cell cutscene) The problem is that the `progress` code has a sort of mirrored check, where it will only `enter!` the next state if there is no `auto-save` process: https://github.com/open-goal/jak-project/blob/d8710bb2f645528e598e2bd799708d9d945f76c6/goal_src/jak1/pc/progress-pc.gc#L3600-L3609 Here's an example of the locked progress screen, I run some code in the REPL to show the game is still running, and then use a breakpoint and continue to artificially get past the `time-elapsed?` check in the `auto-save` code https://youtu.be/4eZlQbRq6l8