From 83796e9eed9efced47ef49756f8dba10d8769a10 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 11 Aug 2020 23:21:08 +0200 Subject: [PATCH] - changed map startup order to first play a cutscene before loading the level. Something with the timers is screwing up here if a cutscene gets played - Blood's timer code is even worse than Duke's. Fixes #151. --- source/blood/src/blood.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/source/blood/src/blood.cpp b/source/blood/src/blood.cpp index 1f68faba0..efd56ac50 100644 --- a/source/blood/src/blood.cpp +++ b/source/blood/src/blood.cpp @@ -373,9 +373,6 @@ void StartLevel(GAMEOPTIONS *gameOptions) { if (!(gGameOptions.uGameFlags&1)) levelSetupOptions(gGameOptions.nEpisode, gGameOptions.nLevel); - if (gEpisodeInfo[gGameOptions.nEpisode].cutALevel == gGameOptions.nLevel - && gEpisodeInfo[gGameOptions.nEpisode].cutsceneAName) - gGameOptions.uGameFlags |= 4; /////// gGameOptions.weaponsV10x = gWeaponsV10x; @@ -891,16 +888,17 @@ static void commonTicker(bool &playvideo) } if (gStartNewGame) { - StartLevel(&gGameOptions); - - auto completion = [](bool = false) - { - levelTryPlayMusicOrNothing(gGameOptions.nEpisode, gGameOptions.nLevel); + + auto completion = [](bool = false) + { + StartLevel(&gGameOptions); + levelTryPlayMusicOrNothing(gGameOptions.nEpisode, gGameOptions.nLevel); gNetFifoClock = gFrameClock = totalclock; gamestate = GS_LEVEL; - }; - - if ((gGameOptions.uGameFlags & 4)) + }; + + if (gEpisodeInfo[gGameOptions.nEpisode].cutALevel == gGameOptions.nLevel + && gEpisodeInfo[gGameOptions.nEpisode].cutsceneAName[0]) levelPlayIntroScene(gGameOptions.nEpisode, completion); else completion(false);