From 329337b36df6826fd2464a1e78fc0e0b8daa3f63 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 10 Mar 2026 21:39:27 -0400 Subject: [PATCH] Prevent music linedefexec specials from overriding intro music Ugly hack for now, should properly be fixed later. --- src/p_spec.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/p_spec.c b/src/p_spec.c index e5fe35e28..928084a8e 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -2971,19 +2971,26 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha mapmusposition = position; mapmusresume = 0; - S_ChangeMusicEx(mapmusname, mapmusflags, !(args[0] & TMM_NOLOOP), position, - !(args[0] & TMM_FADE) ? prefadems : 0, - !(args[0] & TMM_FADE) ? postfadems : 0); + // FIXME HACK: Don't play music before the countdown music stops. Please properly fix this later. + // Change timing of start music based on gametypes[gametype]->rules + tic_t startingtime = (gametypes[gametype]->rules & GTR_NOCOUNTDOWN) ? introtime : starttime; - if (!(args[0] & TMM_NOCREDIT)) - S_ShowMusicCredit(0, 5*TICRATE, 0); - - if ((args[0] & TMM_FADE) && fadetarget) + if (leveltime >= (startingtime + (TICRATE/2))) { - if (!postfadems) - S_SetInternalMusicVolume(fadetarget); - else - S_FadeMusicFromVolume(fadetarget, fadesource, postfadems); + S_ChangeMusicEx(mapmusname, mapmusflags, !(args[0] & TMM_NOLOOP), position, + !(args[0] & TMM_FADE) ? prefadems : 0, + !(args[0] & TMM_FADE) ? postfadems : 0); + + if (!(args[0] & TMM_NOCREDIT)) + S_ShowMusicCredit(0, 5*TICRATE, 0); + + if ((args[0] & TMM_FADE) && fadetarget) + { + if (!postfadems) + S_SetInternalMusicVolume(fadetarget); + else + S_FadeMusicFromVolume(fadetarget, fadesource, postfadems); + } } }