From f0b1a37615f6d29d27780705633606182471bf7a Mon Sep 17 00:00:00 2001 From: sirlemonhead Date: Fri, 1 Nov 2019 22:05:32 +0000 Subject: [PATCH] Fix Cinema screens not showing correct cinemas on the correct levels --- source/exhumed/src/menu.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/source/exhumed/src/menu.cpp b/source/exhumed/src/menu.cpp index f90a3643e..efe6863ae 100644 --- a/source/exhumed/src/menu.cpp +++ b/source/exhumed/src/menu.cpp @@ -1952,6 +1952,12 @@ void DoCinemaText(short nVal) WaitVBL(); videoNextPage(); + // TEMP + int time = (int)totalclock + 4; + while ((int)totalclock < time) { + HandleAsync(); + } + if (!bContinue) { return; } @@ -2021,7 +2027,7 @@ void GoToTheCinema(int nVal) StopAllSounds(); NoClip(); - overwritesprite(0, 0, 764, 100, 2, kPalNormal); + overwritesprite(0, 0, kMovieTile, 100, 2, kPalNormal); videoNextPage(); // int386(16, (const union REGS *)&val, (union REGS *)&val) @@ -2099,7 +2105,7 @@ void GoToTheCinema(int nVal) } -short nBeforeScene[] = { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }; +short nBeforeScene[] = { 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }; void CheckBeforeScene(int nLevel) @@ -2110,12 +2116,14 @@ void CheckBeforeScene(int nLevel) return; } - if (nBeforeScene[nLevel]) + short nScene = nBeforeScene[nLevel]; + + if (nScene) { - if (!nCinemaSeen[nLevel]) + if (!nCinemaSeen[nScene]) { - GoToTheCinema(nLevel); - nCinemaSeen[nLevel] = 1; + GoToTheCinema(nScene); + nCinemaSeen[nScene] = 1; } } }