From 2770353142c4205f14604499adc5ae4303ad83b6 Mon Sep 17 00:00:00 2001 From: Misa Date: Fri, 17 Dec 2021 23:01:47 -0800 Subject: [PATCH] Don't go back to main menu when deleting main game save data Going back to the main menu allowed for glitchiness to occur if you deleted your save data while in in-game options. This meant you could then load back in to the game, and then quit to the menu, then open the options and then jump back in-game, exploring the state of the game after hardreset() had been called on it. Which is: pretty glitchy. For example, this meant having your room coordinates be 0,0 (which is different from 100,100, which is the actual 0,0, thanks for the 100-indexing Terry), which caused some of the room transitions to be disabled because room transitions were disabled if the game.door_up/down/left/right variables were -2 or less, and they were computed based on room coordinates, which meant some of them went negative if you were 0,0 and not 100,100. At least this was the case until I removed those variables for, at best, doing nothing, and at worst, being actively harmful. Anyways, so deleting your save data now just takes you back to the previous menu, much like deleting custom level data does. I don't know why deleting save data put you back on the main menu in the first place. It's not like the options menu needed to be reloaded or anything. I checked and this was the behavior in 2.0 as well, so it was probably added for a dumb reason. I considered prohibiting data deletion if you were ingame_titlemode, but as of the moment it seems to be okay (if albeit weird, e.g. returning to menu while in Secret Lab doesn't place your cursor on the "play" button), and I can always add such a prohibition later if it was really causing problems. Can't think of anything bad off of the top of my head, though. Btw thanks to Elomavi for discovering that you could do this glitch. --- desktop_version/src/Input.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 3a003dfe..5690d3cc 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1473,8 +1473,6 @@ static void menuactionpress(void) case 0: //back music.playef(11); - game.returnmenu(); - map.nexttowercolour(); break; default: //yep @@ -1485,10 +1483,10 @@ static void menuactionpress(void) game.deletesettings(); game.flashlight = 5; game.screenshake = 15; - game.createmenu(Menu::mainmenu); - map.nexttowercolour(); break; } + game.returnmenu(); + map.nexttowercolour(); break; case Menu::clearcustomdatamenu: switch (game.currentmenuoption)