diff --git a/source/games/duke/src/2d_d.cpp b/source/games/duke/src/2d_d.cpp index f67e5e286..8061e3080 100644 --- a/source/games/duke/src/2d_d.cpp +++ b/source/games/duke/src/2d_d.cpp @@ -651,11 +651,12 @@ public: DDukeMultiplayerBonusScreen(int pws) : DScreenJob(fadein|fadeout) { playerswhenstarted = pws; - S_PlayBonusMusic(); } int Frame(uint64_t clock, bool skiprequest) { + if (clock == 0) S_PlayBonusMusic(); + char tempbuf[32]; int totalclock = int(clock * 120 / 1'000'000'000); twod->ClearScreen(); @@ -759,7 +760,6 @@ public: int vol = volfromlevelnum(currentLevel->levelNumber); gfx_offset = BONUSSCREEN + ((vol == 1) ? 5 : 0); lastmapname = currentLevel->DisplayName(); - S_PlayBonusMusic(); } void FormatTime(int time, char* tempbuf) @@ -860,6 +860,7 @@ public: int Frame(uint64_t clock, bool skiprequest) { + if (clock == 0) S_PlayBonusMusic(); twod->ClearScreen(); int totalclock = int(clock * 120 / 1'000'000'000); DrawTexture(twod, tileGetTexture(gfx_offset, true), 0, 0, DTA_FullscreenEx, 3, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); diff --git a/source/games/duke/src/2d_r.cpp b/source/games/duke/src/2d_r.cpp index 5e5415e3a..27fe74269 100644 --- a/source/games/duke/src/2d_r.cpp +++ b/source/games/duke/src/2d_r.cpp @@ -258,11 +258,11 @@ public: DRRMultiplayerBonusScreen(int pws) : DScreenJob(fadein | fadeout) { playerswhenstarted = pws; - S_PlayBonusMusic(); } int Frame(uint64_t clock, bool skiprequest) { + if (clock == 0) S_PlayBonusMusic(); char tempbuf[32]; twod->ClearScreen(); DrawTexture(twod, tileGetTexture(MENUSCREEN), 0, 0, DTA_FullscreenEx, 3, DTA_Color, 0xff808080, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); @@ -362,7 +362,6 @@ class DRRLevelSummaryScreen : public DScreenJob public: DRRLevelSummaryScreen(bool dofadeout = true) : DScreenJob(dofadeout? (fadein | fadeout) : fadein) { - S_PlayBonusMusic(); if (currentLevel->flags & MI_USERMAP) gfx_offset = RRTILE403; else if (!isRRRA()) @@ -468,6 +467,7 @@ public: int Frame(uint64_t clock, bool skiprequest) { + if (clock == 0) S_PlayBonusMusic(); twod->ClearScreen(); int totalclock = int(clock * 120 / 1'000'000'000); DrawTexture(twod, tileGetTexture(gfx_offset, true), 0, 0, DTA_FullscreenEx, 3, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE);