- fixed starting of bonus screen music.

It must not be done in the constructor of the screen but when actually playing the first frame.
This commit is contained in:
Christoph Oelckers 2020-08-05 16:58:43 +02:00
parent 4fef66c78a
commit 4a0e155637
2 changed files with 5 additions and 4 deletions

View file

@ -651,11 +651,12 @@ public:
DDukeMultiplayerBonusScreen(int pws) : DScreenJob(fadein|fadeout) DDukeMultiplayerBonusScreen(int pws) : DScreenJob(fadein|fadeout)
{ {
playerswhenstarted = pws; playerswhenstarted = pws;
S_PlayBonusMusic();
} }
int Frame(uint64_t clock, bool skiprequest) int Frame(uint64_t clock, bool skiprequest)
{ {
if (clock == 0) S_PlayBonusMusic();
char tempbuf[32]; char tempbuf[32];
int totalclock = int(clock * 120 / 1'000'000'000); int totalclock = int(clock * 120 / 1'000'000'000);
twod->ClearScreen(); twod->ClearScreen();
@ -759,7 +760,6 @@ public:
int vol = volfromlevelnum(currentLevel->levelNumber); int vol = volfromlevelnum(currentLevel->levelNumber);
gfx_offset = BONUSSCREEN + ((vol == 1) ? 5 : 0); gfx_offset = BONUSSCREEN + ((vol == 1) ? 5 : 0);
lastmapname = currentLevel->DisplayName(); lastmapname = currentLevel->DisplayName();
S_PlayBonusMusic();
} }
void FormatTime(int time, char* tempbuf) void FormatTime(int time, char* tempbuf)
@ -860,6 +860,7 @@ public:
int Frame(uint64_t clock, bool skiprequest) int Frame(uint64_t clock, bool skiprequest)
{ {
if (clock == 0) S_PlayBonusMusic();
twod->ClearScreen(); twod->ClearScreen();
int totalclock = int(clock * 120 / 1'000'000'000); 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); DrawTexture(twod, tileGetTexture(gfx_offset, true), 0, 0, DTA_FullscreenEx, 3, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE);

View file

@ -258,11 +258,11 @@ public:
DRRMultiplayerBonusScreen(int pws) : DScreenJob(fadein | fadeout) DRRMultiplayerBonusScreen(int pws) : DScreenJob(fadein | fadeout)
{ {
playerswhenstarted = pws; playerswhenstarted = pws;
S_PlayBonusMusic();
} }
int Frame(uint64_t clock, bool skiprequest) int Frame(uint64_t clock, bool skiprequest)
{ {
if (clock == 0) S_PlayBonusMusic();
char tempbuf[32]; char tempbuf[32];
twod->ClearScreen(); twod->ClearScreen();
DrawTexture(twod, tileGetTexture(MENUSCREEN), 0, 0, DTA_FullscreenEx, 3, DTA_Color, 0xff808080, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE); 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: public:
DRRLevelSummaryScreen(bool dofadeout = true) : DScreenJob(dofadeout? (fadein | fadeout) : fadein) DRRLevelSummaryScreen(bool dofadeout = true) : DScreenJob(dofadeout? (fadein | fadeout) : fadein)
{ {
S_PlayBonusMusic();
if (currentLevel->flags & MI_USERMAP) if (currentLevel->flags & MI_USERMAP)
gfx_offset = RRTILE403; gfx_offset = RRTILE403;
else if (!isRRRA()) else if (!isRRRA())
@ -468,6 +467,7 @@ public:
int Frame(uint64_t clock, bool skiprequest) int Frame(uint64_t clock, bool skiprequest)
{ {
if (clock == 0) S_PlayBonusMusic();
twod->ClearScreen(); twod->ClearScreen();
int totalclock = int(clock * 120 / 1'000'000'000); 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); DrawTexture(twod, tileGetTexture(gfx_offset, true), 0, 0, DTA_FullscreenEx, 3, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE);