From 2d5d5343b1a7deb0e35098980a282677b6fe1719 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 31 Jan 2023 14:00:21 +0000 Subject: [PATCH] M_EndModeAttackRun bugfixes - Correctly restore menu state after failed record attack run - Making things easier for future work - use demo.title as signifier to go back to title screen --- src/g_demo.c | 2 -- src/menus/transient/pause-replay.c | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index d7c433222..286a4e965 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -4009,8 +4009,6 @@ void G_StopDemo(void) Z_Free(demobuf.buffer); demobuf.buffer = NULL; demo.playback = false; - if (demo.title) - modeattacking = ATTACKING_NONE; demo.title = false; demo.timing = false; singletics = false; diff --git a/src/menus/transient/pause-replay.c b/src/menus/transient/pause-replay.c index 6f1c5caf3..380700daf 100644 --- a/src/menus/transient/pause-replay.c +++ b/src/menus/transient/pause-replay.c @@ -49,14 +49,23 @@ menu_t PAUSE_PlaybackMenuDef = { void M_EndModeAttackRun(void) { + boolean dotitle = demo.title; + G_CheckDemoStatus(); // Cancel recording - if (gamestate == GS_LEVEL || gamestate == GS_INTERMISSION) - Command_ExitGame_f(); + Command_ExitGame_f(); // Clear a bunch of state - modeattacking = ATTACKING_NONE; + modeattacking = ATTACKING_NONE; // Kept until now because of Command_ExitGame_f - M_StartControlPanel(); + if (dotitle) + { + D_StartTitle(); + } + else + { + D_ClearState(); + M_StartControlPanel(); + } } // Replay Playback Menu