From 17cd1550a1ec14e0676490fa078d10a12c44b2b3 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Mon, 18 Mar 2024 18:38:41 -0700 Subject: [PATCH] Tally: Fix intermission music being played on rounds without intermissions --- src/k_tally.cpp | 4 +++- src/y_inter.cpp | 22 ++++++++++++++++------ src/y_inter.h | 1 + 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/k_tally.cpp b/src/k_tally.cpp index 3cade54c0..54ae743d4 100644 --- a/src/k_tally.cpp +++ b/src/k_tally.cpp @@ -1426,7 +1426,9 @@ void K_TickPlayerTally(player_t *player) while (player->tally.state != TALLY_ST_DONE && player->tally.state != TALLY_ST_GAMEOVER_DONE); player->tally.delay = std::min(player->tally.delay, TICRATE); - musiccountdown = 2; // gets decremented to 1 in G_Ticker to immediately trigger intermission music [blows raspberry] + + if (Y_ShouldDoIntermission()) + musiccountdown = 2; // gets decremented to 1 in G_Ticker to immediately trigger intermission music [blows raspberry] } else { diff --git a/src/y_inter.cpp b/src/y_inter.cpp index c6086dbf8..cfdf3c5ab 100644 --- a/src/y_inter.cpp +++ b/src/y_inter.cpp @@ -1937,12 +1937,7 @@ void Y_Ticker(void) } } -// -// Y_DetermineIntermissionType -// -// Determines the intermission type from the current gametype. -// -void Y_DetermineIntermissionType(void) +boolean Y_ShouldDoIntermission(void) { // no intermission for GP events if ((grandprixinfo.gp == true && grandprixinfo.eventmode != GPEVENT_NONE) @@ -1954,6 +1949,21 @@ void Y_DetermineIntermissionType(void) || (nextmapoverride == NEXTMAP_TUTORIALCHALLENGE+1 || tutorialchallenge != TUTORIALSKIP_NONE) // or title screen attract demos || (demo.playback && demo.attract == DEMO_ATTRACT_TITLE)) + { + return false; + } + return true; +} + +// +// Y_DetermineIntermissionType +// +// Determines the intermission type from the current gametype. +// +void Y_DetermineIntermissionType(void) +{ + // no intermission for GP events + if (!Y_ShouldDoIntermission()) { intertype = int_none; return; diff --git a/src/y_inter.h b/src/y_inter.h index 7e7530856..05f2dd864 100644 --- a/src/y_inter.h +++ b/src/y_inter.h @@ -59,6 +59,7 @@ void Y_DrawIntermissionButton(INT32 startslide, INT32 through); void Y_StartIntermission(void); void Y_EndIntermission(void); +boolean Y_ShouldDoIntermission(void); void Y_DetermineIntermissionType(void); void Y_PlayIntermissionMusic(void);