From 070cb84a415483a37cdaf0b9249eb98a9b496d47 Mon Sep 17 00:00:00 2001 From: Roman Fomin Date: Thu, 2 Sep 2021 15:11:22 +0700 Subject: [PATCH] next level key also skips the current demo (#268) * next level key also skips the current demo * reset demoskip variable --- Source/doomstat.h | 2 ++ Source/m_menu.c | 8 +++++++- Source/p_setup.c | 5 ++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Source/doomstat.h b/Source/doomstat.h index 809ec6bc..a4d86967 100644 --- a/Source/doomstat.h +++ b/Source/doomstat.h @@ -243,6 +243,8 @@ extern boolean timingdemo; extern boolean fastdemo; // [FG] fast-forward demo to the desired map extern int demowarp; +// fast-forward demo to the next map +extern boolean demoskip; extern gamestate_t gamestate; diff --git a/Source/m_menu.c b/Source/m_menu.c index cd94a041..5b060fa1 100644 --- a/Source/m_menu.c +++ b/Source/m_menu.c @@ -5004,7 +5004,13 @@ boolean M_Responder (event_t* ev) } if (ch != 0 && ch == key_menu_nextlevel) { - if (G_GotoNextLevel()) + if (demoplayback && singledemo && !demoskip) + { + demoskip = true; + I_EnableWarp(true); + return true; + } + else if (G_GotoNextLevel()) return true; } } diff --git a/Source/p_setup.c b/Source/p_setup.c index 0c692615..1d4f83b0 100644 --- a/Source/p_setup.c +++ b/Source/p_setup.c @@ -1413,6 +1413,8 @@ static boolean P_LoadReject(int lumpnum, int totallines) // [FG] current map lump number int maplumpnum = -1; +// fast-forward demo to the next map +boolean demoskip = false; void P_SetupLevel(int episode, int map, int playermask, skill_t skill) { @@ -1431,10 +1433,11 @@ void P_SetupLevel(int episode, int map, int playermask, skill_t skill) players[consoleplayer].viewz = 1; // [FG] fast-forward demo to the desired map - if (demowarp == map) + if (demowarp == map || demoskip) { I_EnableWarp(false); demowarp = -1; + demoskip = false; } // Make sure all sounds are stopped before Z_FreeTags.