diff options
author | Paul Gilbert | 2018-03-11 23:12:22 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-03-11 23:12:22 -0400 |
commit | c699bef50bb3320d5b97947bca262d33805b74c3 (patch) | |
tree | d215452a4419edcadf4c5b005c024a4f9e60a0c9 /engines | |
parent | 4a5c1af79f863992452344f7d02e58ef359c4ddd (diff) | |
download | scummvm-rg350-c699bef50bb3320d5b97947bca262d33805b74c3.tar.gz scummvm-rg350-c699bef50bb3320d5b97947bca262d33805b74c3.tar.bz2 scummvm-rg350-c699bef50bb3320d5b97947bca262d33805b74c3.zip |
XEEN: Subtitles for remaining game cutscenes
Diffstat (limited to 'engines')
-rw-r--r-- | engines/xeen/locations.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/engines/xeen/locations.cpp b/engines/xeen/locations.cpp index ff54329227..9a2060b78d 100644 --- a/engines/xeen/locations.cpp +++ b/engines/xeen/locations.cpp @@ -1597,7 +1597,9 @@ int GolemCutscene::show() { while (sound.isSoundPlaying()) { WAIT(1); } + sound.setMusicPercent(38); + _subtitles.setLine(_mazeFlag ? 8 : 7); sound.playSound(_mazeFlag ? "golem15.voc" : "golem13.voc"); do { @@ -1616,9 +1618,8 @@ int GolemCutscene::show() { g_vm->getRandomNumber(9) - 3)); } - _subtitles.show(); WAIT(1); - } while (_subtitles.lineActive()); + } while (sound.isSoundPlaying()); sprites1.draw(0, 0, Common::Point(0, 0)); sprites1.draw(0, 1, Common::Point(160, 0)); @@ -1669,7 +1670,7 @@ int GolemCutscene::show() { sprites2[0].draw(0, 2); windows[0].update(); - while (sound.isSoundPlaying()) { + while (_subtitles.lineActive()) { WAIT(1); } @@ -1875,6 +1876,7 @@ int DwarfCutscene::show() { screen.blitFrom(savedBg); sprites2.draw(0, 0); windows[0].update(); + _subtitles.setLine(_isDarkCc ? 0 : 4); for (int idx = 0; idx < (_isDarkCc ? 2 : 3); ++idx) { switch (idx) { @@ -1889,8 +1891,9 @@ int DwarfCutscene::show() { _subtitles.show(); events.timeMark5(); - while (!g_vm->shouldExit() && events.timeElapsed5() < 7) - events.pollEventsAndWait(); + while (!g_vm->shouldExit() && events.timeElapsed5() < 7) { + WAIT(1); + } sound.playSound(_mazeFlag ? "ok2.voc" : "back2.voc"); } else { @@ -1915,8 +1918,7 @@ int DwarfCutscene::show() { } } while (_subtitles.lineActive()); - while (!g_vm->shouldExit() && events.timeElapsed() < 3) - events.pollEventsAndWait(); + WAIT(3); } exit: @@ -2070,6 +2072,7 @@ int SphinxCutscene::show() { for (int idx = 0; idx < (_mazeFlag ? 3 : 2); ++idx) { switch (idx) { case 0: + _subtitles.setLine(_mazeFlag ? 9 : 10); sound.playSound(_mazeFlag ? "sphinx10.voc" : "sphinx13.voc"); break; case 1: @@ -2081,22 +2084,24 @@ int SphinxCutscene::show() { } do { - events.updateGameCounter(); sprites1.draw(0, 0, Common::Point(0, 0)); sprites1.draw(0, 1, Common::Point(160, 0)); sprites1.draw(0, g_vm->getRandomNumber(2, 10)); WAIT(1); - } while (_subtitles.lineActive()); + } while (sound.isSoundPlaying()); sprites1.draw(0, 0, Common::Point(0, 0)); sprites1.draw(0, 1, Common::Point(160, 0)); } + while (_subtitles.lineActive()) { + WAIT(1); + } + sound.setMusicPercent(75); if (!_mazeFlag) { for (int idx = 0; idx < 8; ++idx) { - events.updateGameCounter(); screen.blitFrom(bgSurface); sprites1.draw(0, 0, Common::Point(SPHINX_X1[idx], SPHINX_Y1[idx]), 0, idx); sprites1.draw(0, 1, Common::Point(SPHINX_X2[idx], SPHINX_Y1[idx]), 0, idx); |