diff --git a/src/k_menu.h b/src/k_menu.h index 3fff5ac26..f1e5847d6 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -769,6 +769,7 @@ void M_StartControlPanel(void); void M_ValidateRestoreMenu(void); menu_t *M_SpecificMenuRestore(menu_t *torestore); void M_ClearMenus(boolean callexitmenufunc); +void M_ClearMenusNoTitle(boolean callexitmenufunc); void M_SelectableClearMenus(INT32 choice); void M_SetupNextMenu(menu_t *menudef, boolean nofade); void M_GoBack(INT32 choice); diff --git a/src/k_menufunc.c b/src/k_menufunc.c index 38a27bf2d..dad4391ac 100644 --- a/src/k_menufunc.c +++ b/src/k_menufunc.c @@ -912,10 +912,6 @@ void M_ClearMenus(boolean callexitmenufunc) if (currentMenu->quitroutine && callexitmenufunc && !currentMenu->quitroutine()) return; // we can't quit this menu (also used to set parameter from the menu) -#ifndef DC // Save the config file. I'm sick of crashing the game later and losing all my changes! - COM_BufAddText(va("saveconfig \"%s\" -silent\n", configfile)); -#endif //Alam: But not on the Dreamcast's VMUs - currentMenu->lastOn = itemOn; if (gamestate == GS_MENU) // Back to title screen @@ -934,6 +930,24 @@ void M_ClearMenus(boolean callexitmenufunc) menuactive = false; } +void M_ClearMenusNoTitle(boolean callexitmenufunc) +{ + if (!menuactive) + return; + + CON_ClearHUD(); + + if (currentMenu->quitroutine && callexitmenufunc && !currentMenu->quitroutine()) + return; // we can't quit this menu (also used to set parameter from the menu) + + currentMenu->lastOn = itemOn; + + M_AbortVirtualKeyboard(); + menumessage.active = false; + + menuactive = false; +} + void M_SelectableClearMenus(INT32 choice) { (void)choice; diff --git a/src/menus/class-egg-tv/EggTV.cpp b/src/menus/class-egg-tv/EggTV.cpp index 1fc51337f..1540a8dab 100644 --- a/src/menus/class-egg-tv/EggTV.cpp +++ b/src/menus/class-egg-tv/EggTV.cpp @@ -438,7 +438,7 @@ void EggTV::watch() const { restoreMenu = currentMenu; - M_ClearMenus(false); + M_ClearMenusNoTitle(false); demo.loadfiles = true; demo.ignorefiles = false; diff --git a/src/menus/play-local-race-time-attack.c b/src/menus/play-local-race-time-attack.c index 4c6569217..c581b2c4b 100644 --- a/src/menus/play-local-race-time-attack.c +++ b/src/menus/play-local-race-time-attack.c @@ -440,7 +440,7 @@ void M_HandleStaffReplay(INT32 choice) staffbrief_t *staffbrief; restoreMenu = &PLAY_TAReplayDef; - M_ClearMenus(true); + M_ClearMenusNoTitle(true); demo.loadfiles = false; demo.ignorefiles = true; // Just assume that record attack replays have the files needed @@ -507,7 +507,7 @@ void M_ReplayTimeAttack(INT32 choice) restoreMenu = &PLAY_TAReplayDef; - M_ClearMenus(true); + M_ClearMenusNoTitle(true); demo.loadfiles = false; demo.ignorefiles = true; // Just assume that record attack replays have the files needed @@ -692,7 +692,7 @@ void M_StartTimeAttack(INT32 choice) false ); - M_ClearMenus(true); + M_ClearMenusNoTitle(true); G_UpdateTimeStickerMedals(levellist.choosemap, true); }