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