aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2018-03-11 23:12:22 -0400
committerPaul Gilbert2018-03-11 23:12:22 -0400
commitc699bef50bb3320d5b97947bca262d33805b74c3 (patch)
treed215452a4419edcadf4c5b005c024a4f9e60a0c9 /engines
parent4a5c1af79f863992452344f7d02e58ef359c4ddd (diff)
downloadscummvm-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.cpp25
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);