mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 01:59:43 +01:00
Fix softlocks from mistimed trinket text skip
You can skip the "You have found a shiny trinket!" cutscene. The conditions are that this can only be done in the main game, in the main dimension (no Polar Dimension), the checkpoint that you last touched must not be in the same room as the trinket, and you have to have skipped the Comms Relay cutscene. To do the skip, you press R on the exact frame (or previous frame, if input delay is enabled) that Viridian touches the trinket. Then, the gamestate will be immediately set to 0 (because of the gotoroom) and the cutscene will be skipped. Speedrunners of the main game, well, run the main game already, the only trinket in the Polar Dimension is not one you want to do a death warp at, and they have a habit of automatically skipping over the Comms Relay cutscene because they press R at the beginning of the run when Viridian teleports to Welcome Aboard, to warp back to the Ship and so they can leave rescuing Violet for later. So someone reported softlocking themselves by doing the trinket text skip in 2.3. The softlock is because they're stuck in a state where completestop is true but can't advance to a state that turns it off. How does this happen? It's because they pressed R too late and interrupted the gamestate sequence. In 2.2 and previous, if you're in the gamestate sequence then you can't press R at all, but 2.3 removes this restriction (on account of aiming to prevent softlocks). So only on the very first frame can you death warp and interrupt the gamestate sequence before it happens at all. Anyways to fix this, just turn completestop off automatically if we're in gamestate 0 and there's no script running. This softlock was reported by Euni on the VVVVVV speedrunning Discord.
This commit is contained in:
parent
082a0c2205
commit
dd4100f752
1 changed files with 1 additions and 0 deletions
|
@ -739,6 +739,7 @@ void Game::updatestate(void)
|
||||||
if (!script.running)
|
if (!script.running)
|
||||||
{
|
{
|
||||||
hascontrol = true;
|
hascontrol = true;
|
||||||
|
completestop = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
|
Loading…
Reference in a new issue