aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2018-04-25 20:27:12 -0400
committerPaul Gilbert2018-04-25 20:27:12 -0400
commit72d9c94289e21ca177b6c27bb4fb6df916b58ee6 (patch)
tree5cc9ca79a8b9793c65e795eb098b452b1bd891df
parent169a60419950b90eabc6ccce7fd4f7fe23607eb3 (diff)
downloadscummvm-rg350-72d9c94289e21ca177b6c27bb4fb6df916b58ee6.tar.gz
scummvm-rg350-72d9c94289e21ca177b6c27bb4fb6df916b58ee6.tar.bz2
scummvm-rg350-72d9c94289e21ca177b6c27bb4fb6df916b58ee6.zip
XEEN: Fixes for Dark Side ending
-rw-r--r--engines/xeen/scripts.cpp3
-rw-r--r--engines/xeen/worldofxeen/darkside_cutscenes.cpp8
-rw-r--r--engines/xeen/worldofxeen/worldofxeen_resources.cpp13
3 files changed, 15 insertions, 9 deletions
diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp
index 22f65fdc24..b40ba3059f 100644
--- a/engines/xeen/scripts.cpp
+++ b/engines/xeen/scripts.cpp
@@ -238,6 +238,9 @@ int Scripts::checkEvents() {
_vm->_mode = oldMode;
windows.closeAll();
+ if (g_vm->shouldExit())
+ return g_vm->_gameMode;
+
if (_scriptExecuted)
intf.clearEvents();
if (_scriptExecuted || intf._objNumber == -1 || _dirFlag) {
diff --git a/engines/xeen/worldofxeen/darkside_cutscenes.cpp b/engines/xeen/worldofxeen/darkside_cutscenes.cpp
index b30bb71324..d7f821fe6b 100644
--- a/engines/xeen/worldofxeen/darkside_cutscenes.cpp
+++ b/engines/xeen/worldofxeen/darkside_cutscenes.cpp
@@ -1285,7 +1285,7 @@ bool DarkSideCutscenes::showDarkSideEnding3() {
screen.horizMerge(0);
sc16.draw(0, 0, Common::Point(7, 29));
_subtitles.show();
- sound.playSound("fail1.voc");
+ sound.playVoice("fail1.voc", 2);
for (int idx = 0; idx < 5; ++idx) {
screen.horizMerge(0);
@@ -1689,21 +1689,25 @@ void DarkSideCutscenes::showDarkSideScore(uint endingScore) {
sound.stopAllAudio();
- if (g_vm->shouldExit()) {
+ if (!g_vm->shouldExit()) {
sound.playSong("outday3.m");
Common::String str = Common::String::format(Res.DARKSIDE_ENDING1, endingScore);
showPharaohEndText(str.c_str(), Res.DARKSIDE_ENDING2);
+ g_vm->_mode = MODE_INTERACTIVE;
if (!g_vm->shouldExit())
saves.saveGame();
}
}
bool DarkSideCutscenes::showPharaohEndText(const char *msg1, const char *msg2, const char *msg3) {
+ Windows &windows = *g_vm->_windows;
_ball.load("ball.int");
_claw.load("claw.int");
_dragon1.load("dragon1.int");
+
+ windows[39].setBounds(Common::Rect(12, 8, 162, 198));
bool result = showPharaohEndTextInner(msg1, msg2, msg3);
_ball.clear();
diff --git a/engines/xeen/worldofxeen/worldofxeen_resources.cpp b/engines/xeen/worldofxeen/worldofxeen_resources.cpp
index 5bd6247d08..f0d35c9090 100644
--- a/engines/xeen/worldofxeen/worldofxeen_resources.cpp
+++ b/engines/xeen/worldofxeen/worldofxeen_resources.cpp
@@ -25,9 +25,10 @@
namespace Xeen {
namespace WorldOfXeen {
-const char *const WorldOfXeenResources::CLOUDS_INTRO1 = "\xC" "00\xB" "082\x9" "040\x3"
- "cKing Burlock\xB" "190\x9" "040Peasants\xB" "082\x9" "247"
- "Lord Xeen\xB" "190\x9" "258Xeen's Pet\xB" "179\x9" "150Crodo";
+// FIXME: These should really go into into the xeen.ccs datafile
+const char *const WorldOfXeenResources::CLOUDS_INTRO1 = "\f00\v082\t040\x3"
+ "cKing Burlock\v190\t040Peasants\v082\t247"
+ "Lord Xeen\v190\t258Xeen's Pet\v179\t150Crodo";
const char *const WorldOfXeenResources::DARKSIDE_ENDING1 = "\n\x3" "cCongratulations\n"
"\n"
@@ -53,10 +54,8 @@ const char *const WorldOfXeenResources::DARKSIDE_ENDING2 = "\n"
"Load your game afterwards and come visit me in the "
"Great Pyramid for further instructions";
-const char *const WorldOfXeenResources::PHAROAH_ENDING_TEXT1 = "\xC" "d\xB"
- "001\x9" "001%s\x3" "c\x9" "000\xB" "180Press a Key!\x3" "l";
-const char *const WorldOfXeenResources::PHAROAH_ENDING_TEXT2 = "\xC" "04\xB"
- "000\x9" "000%s\x3" "c\x9" "000\xB" "180Press a Key!\x3" "l\xC" "d";
+const char *const WorldOfXeenResources::PHAROAH_ENDING_TEXT1 = "\fd\v001\t001%s\x3" "c\t000\v180Press a Key!\x3" "l";
+const char *const WorldOfXeenResources::PHAROAH_ENDING_TEXT2 = "\f04\v000\t000%s\x3" "c\t000\v180Press a Key!\x3" "l\fd";
} // End of namespace WorldOfXeen
} // End of namespace Xeen