1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-28 15:38:30 +02:00
VVVVVV/desktop_version/src
Misa 91b63e7f88 Fix dying during collection prompt persisting effects
In the main game, if you press R during the trinket collection prompt
after collecting a trinket, AND you have never entered Comms Relay, and
you respawn in a different room, the trinket collection gamestate will
be interrupted, but you will still be left with the advance text prompt,
cutscene bars, and muted music.

The previous workaround to fix the music would be to mute and then
unmute the game, but due to the new music changes, this workaround
(which in and of itself is a bug) no longer works. Instead, the music
would have to be restarted by going into another zone on the map.

Having an advance text prompt outside of a cutscene results in the
player being unable to flip, but they can still move around left and
right.

Speedrunners previously used the no-Comms-Relay interrupting behavior to
skip certain trinket collection prompts entirely with a frame-perfect R
press, so I can't patch that out. Having an advance text prompt outside
of a cutscene is (ab)used in custom levels to intentionally prevent the
player from flipping, and furthermore, it's also used in credits warp
runs of the main game to increment the gamestate; so I cannot patch that
out. The ability to press R everywhere even during cutscenes was added
for good reason - to make it less likely that a softlock can happen - so
I don't want to revert it.

But I still think this is worth fixing because previously, the
punishment for missing the frame-perfect window late was simply not
skipping the trinket prompt (since the R-press would be ignored), but
now the punishment is basically having to reset because of the advance
text prompt.

I would usually handle this in gamestate 0, but awful custom levels
might want to intentionally interrupt the gamestate to do, I don't know,
something. No level does that so far, but I'd like to do the least
invasive thing.

So what I've done is made it so the effects of interruption are undone
if you press R and the gamestate is interrupted. This is handled in
mapclass::resetplayer().
2021-09-10 11:49:46 -07:00
..
BinaryBlob.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
BinaryBlob.h Untabify every single file 2021-09-06 18:56:39 -07:00
BlockV.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
BlockV.h Remove unused x and y attributes of blockclass 2021-02-27 18:27:28 -05:00
Credits.h Move Misa to C++ credits 2021-08-31 23:22:22 -07:00
CustomLevels.cpp Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
CustomLevels.h Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
DeferCallbacks.c Add deferred callbacks to game loop 2021-03-21 02:55:42 -04:00
DeferCallbacks.h Add deferred callbacks to game loop 2021-03-21 02:55:42 -04:00
Editor.cpp Remove getBGR 2021-09-06 20:12:48 -07:00
Editor.h Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
Ent.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Ent.h Untabify every single file 2021-09-06 18:56:39 -07:00
Entity.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Entity.h Refactor colors in internal commands 2021-08-31 15:09:51 -07:00
Enums.h Untabify every single file 2021-09-06 18:56:39 -07:00
Exit.h Add VVV_exit() 2021-02-15 23:07:35 -05:00
FileSystemUtils.cpp Fix unused variable warning on non-Emscripten 2021-09-08 11:43:23 -07:00
FileSystemUtils.h Call FS.syncfs on Emscripten (#838) 2021-09-02 13:19:51 -04:00
Finalclass.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Finalclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Game.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Game.h Rename respawncolour to savecolour 2021-09-06 18:28:28 -07:00
GlitchrunnerMode.c Split glitchrunner mode into multiple versions 2021-08-05 13:35:21 -04:00
GlitchrunnerMode.h Split glitchrunner mode into multiple versions 2021-08-05 13:35:21 -04:00
GOGNetwork.c Untabify every single file 2021-09-06 18:56:39 -07:00
Graphics.cpp Remove getBGR 2021-09-06 20:12:48 -07:00
Graphics.h Remove getBGR 2021-09-06 20:12:48 -07:00
GraphicsResources.cpp Fix surface color masks 2021-09-06 20:12:48 -07:00
GraphicsResources.h Consistently use angle brackets for SDL.h includes 2020-07-19 21:37:40 -04:00
GraphicsUtil.cpp Use SDL_BlitScaled in ScaleSurface 2021-09-05 20:07:18 -07:00
GraphicsUtil.h Add ClearSurface() 2021-02-25 19:38:25 -05:00
Input.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Input.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
KeyPoll.cpp Handle lost focus on Emscripten 2021-09-07 09:43:48 -07:00
KeyPoll.h Untabify every single file 2021-09-06 18:56:39 -07:00
Labclass.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Labclass.h Remove unnecessary includes from header files 2020-07-19 21:37:40 -04:00
Logic.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Logic.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
main.cpp Split Func_input and Func_delta when unfocused 2021-09-07 09:43:48 -07:00
MakeAndPlay.h Use multiline comments in C files 2021-04-17 00:50:04 -04:00
Map.cpp Fix dying during collection prompt persisting effects 2021-09-10 11:49:46 -07:00
Map.h Allow custom levels to use 2 billion tile numbers once again 2021-08-22 21:30:53 -07:00
Maths.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Music.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Music.h Untabify every single file 2021-09-06 18:56:39 -07:00
Network.c Untabify every single file 2021-09-06 18:56:39 -07:00
Network.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Otherlevel.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Otherlevel.h Set Secret Lab/Super Gravitron hidden names 2021-08-22 20:33:03 -07:00
preloader.cpp Remove getBGR 2021-09-06 20:12:48 -07:00
preloader.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
Render.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Render.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
RenderFixed.cpp Use resumegamemode to track menu animation 2021-09-05 16:59:05 -07:00
RenderFixed.h Remove now-unneeded deltaframe fix when going to in-game settings 2021-03-21 02:55:42 -04:00
Screen.cpp Fix surface color masks 2021-09-06 20:12:48 -07:00
Screen.h Untabify every single file 2021-09-06 18:56:39 -07:00
ScreenSettings.h Untabify every single file 2021-09-06 18:56:39 -07:00
Script.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Script.h createentity command: Actually have p1/p2/p3/p4 defaults 2021-08-12 00:20:40 -04:00
Scripts.cpp Add message when player is kicked out of Super Gravitron 2021-09-03 12:08:31 -07:00
SoundSystem.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
SoundSystem.h Untabify every single file 2021-09-06 18:56:39 -07:00
Spacestation2.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Spacestation2.h Untabify every single file 2021-09-06 18:56:39 -07:00
SteamNetwork.c Untabify every single file 2021-09-06 18:56:39 -07:00
TerminalScripts.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Textbox.cpp Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
Textbox.h Use const std::string& where possible in function params 2021-09-06 15:43:59 -07:00
ThirdPartyDeps.c Use multiline comments in C files 2021-04-17 00:50:04 -04:00
Tower.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
Tower.h Explicitly declare void for all void parameter functions (#628) 2021-02-25 17:23:59 -05:00
TowerBG.h Untabify every single file 2021-09-06 18:56:39 -07:00
Unused.h Factor out UNUSED macro to header file 2021-05-25 15:23:34 -04:00
UtilityClass.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
UtilityClass.h Replace all print calls with vlog calls 2021-09-01 14:34:55 -07:00
Version.h Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Version.h.in Don't recompile all files when the commit hash is changed 2020-12-25 20:17:01 -05:00
Vlogging.c Add debug logs 2021-09-01 14:34:55 -07:00
Vlogging.h Add debug logs 2021-09-01 14:34:55 -07:00
WarpClass.cpp Untabify every single file 2021-09-06 18:56:39 -07:00
WarpClass.h Untabify every single file 2021-09-06 18:56:39 -07:00
XMLUtils.cpp Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
XMLUtils.h Move all settings to settings.vvv 2020-11-04 12:06:57 -05:00
Xoshiro.c Replace Gravitron RNG with seeded Xoshiro 2021-08-27 12:28:35 -07:00
Xoshiro.h Replace Gravitron RNG with seeded Xoshiro 2021-08-27 12:28:35 -07:00