aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/xeen/locations.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/engines/xeen/locations.cpp b/engines/xeen/locations.cpp
index dedd9bc964..2ca34685ea 100644
--- a/engines/xeen/locations.cpp
+++ b/engines/xeen/locations.cpp
@@ -1570,7 +1570,7 @@ int GolemCutscene::show() {
WAIT(1);
}
- if (_ccNum)
+ if (!_ccNum)
sound.playSound("ogre.voc");
for (int idx = -200; idx < 0; idx += 16) {
@@ -1599,12 +1599,18 @@ int GolemCutscene::show() {
windows[0].update();
while (sound.isSoundPlaying()) {
+ _subtitles.show();
WAIT(1);
}
sound.setMusicPercent(38);
- _subtitles.setLine(_keyFound ? 8 : 7);
- sound.playVoice(_keyFound ? "golem15.voc" : "golem13.voc");
+ if (_ccNum) {
+ _subtitles.setLine(_keyFound ? 5 : 4);
+ sound.playVoice("what2.voc");
+ } else {
+ _subtitles.setLine(_keyFound ? 8 : 7);
+ sound.playVoice(_keyFound ? "golem15.voc" : "golem13.voc");
+ }
do {
events.updateGameCounter();
@@ -1614,7 +1620,7 @@ int GolemCutscene::show() {
if (_ccNum) {
int frame = g_vm->getRandomNumber(6);
sprites2[0].draw(0, frame, Common::Point(0, 0));
- sprites2[1].draw(1, frame, Common::Point(160, 0));
+ sprites2[1].draw(0, frame, Common::Point(160, 0));
} else {
sprites2[0].draw(0, 0, Common::Point(0, 0));
sprites2[0].draw(0, 1, Common::Point(160, 0));
@@ -1622,6 +1628,7 @@ int GolemCutscene::show() {
g_vm->getRandomNumber(9) - 3));
}
+ _subtitles.show();
WAIT(1);
} while (sound.isSoundPlaying());
@@ -1634,16 +1641,17 @@ int GolemCutscene::show() {
windows[0].update();
events.updateGameCounter();
- events.wait(_ccNum ? 10 : 1);
+ if (_subtitles.wait(_ccNum ? 10 : 1))
+ goto exit;
- if (!_ccNum) {
+ if (_ccNum) {
+ sound.playVoice(_keyFound ? "go2.voc" : "key2.voc");
+ } else {
sound.playVoice("ogre.voc");
while (sound.isSoundPlaying())
events.pollEventsAndWait();
sound.playVoice(_keyFound ? "golem16.voc" : "golem14.voc");
- } else {
- sound.playVoice(_keyFound ? "go2.voc" : "key2.voc");
}
do {
@@ -1654,7 +1662,7 @@ int GolemCutscene::show() {
if (_ccNum) {
int frame = g_vm->getRandomNumber(6);
sprites2[0].draw(0, frame, Common::Point(0, 0));
- sprites2[1].draw(1, frame, Common::Point(160, 0));
+ sprites2[1].draw(0, frame, Common::Point(160, 0));
} else {
sprites2[0].draw(0, 0, Common::Point(0, 0));
sprites2[0].draw(0, 1, Common::Point(160, 0));
@@ -1663,8 +1671,9 @@ int GolemCutscene::show() {
}
windows[0].update();
+ _subtitles.show();
WAIT(1);
- } while (sound.isSoundPlaying());
+ } while (_subtitles.lineActive());
sprites1.draw(0, 0, Common::Point(0, 0));
sprites1.draw(0, 1, Common::Point(160, 0));
@@ -1672,11 +1681,7 @@ int GolemCutscene::show() {
sprites2[_ccNum].draw(0, 1 - _ccNum, Common::Point(160, 0));
if (!_ccNum)
sprites2[0].draw(0, 2);
-
windows[0].update();
- while (_subtitles.lineActive()) {
- WAIT(1);
- }
sound.setMusicPercent(75);