From 5dd4e36b72dd810ba8a549236e62ac9f7ab0d7b2 Mon Sep 17 00:00:00 2001 From: toaster Date: Mon, 3 Apr 2023 21:32:13 +0100 Subject: [PATCH] S_StopMusicCredit: Make killing a music credit a request, not a guarantee Fixes some menu events causing Stereo-caused music credits to disappear --- src/d_main.c | 2 +- src/f_finale.c | 2 +- src/k_menufunc.c | 4 ++-- src/s_sound.c | 10 +++++++++- src/s_sound.h | 1 + 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/d_main.c b/src/d_main.c index 03df9b60d..eaa58b055 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -1047,7 +1047,7 @@ void D_ClearState(void) if (rendermode != render_none) V_SetPaletteLump("PLAYPAL"); - cursongcredit.def = NULL; + S_StopMusicCredit(); S_StopSounds(); if (gamedata && gamedata->deferredsave) diff --git a/src/f_finale.c b/src/f_finale.c index 160ddc27b..1d18eb9d2 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -310,7 +310,7 @@ void F_StartCustomCutscene(INT32 cutscenenum, boolean precutscene, boolean reset void F_StartIntro(void) { - cursongcredit.def = NULL; + S_StopMusicCredit(); if (gamestate) { diff --git a/src/k_menufunc.c b/src/k_menufunc.c index fc16f606d..47da75d2e 100644 --- a/src/k_menufunc.c +++ b/src/k_menufunc.c @@ -376,7 +376,7 @@ void M_PlayMenuJam(void) if (challengesmenu.pending) { S_StopMusic(); - cursongcredit.def = NULL; + S_StopMusicCredit(); loserclubpermitted = true; return; @@ -390,7 +390,7 @@ void M_PlayMenuJam(void) if (refMenu->music[0] == '.' && refMenu->music[1] == '\0') { S_StopMusic(); - cursongcredit.def = NULL; + S_StopMusicCredit(); return; } else if (!loserclub) diff --git a/src/s_sound.c b/src/s_sound.c index 789a1b83b..79f8cf04d 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -1665,7 +1665,7 @@ void S_SoundTestStop(void) soundtest.autosequence = false; S_StopMusic(); - cursongcredit.def = NULL; + S_StopMusicCredit(); soundtest.currenttime = 0; soundtest.sequencemaxtime = 0; @@ -2147,6 +2147,14 @@ void S_ShowMusicCredit(void) cursongcredit.trans = NUMTRANSMAPS; } +void S_StopMusicCredit(void) +{ + if (S_PlaysimMusicDisabled()) + return; + + cursongcredit.def = NULL; +} + /// ------------------------ /// Music Status /// ------------------------ diff --git a/src/s_sound.h b/src/s_sound.h index 16c59a52d..5c0c73a02 100644 --- a/src/s_sound.h +++ b/src/s_sound.h @@ -247,6 +247,7 @@ void S_LoadMusicDefs(UINT16 wadnum); void S_InitMusicDefs(void); musicdef_t *S_FindMusicDef(const char *name, UINT8 *i); void S_ShowMusicCredit(void); +void S_StopMusicCredit(void); // // Music Seeking