aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2010-08-05 11:19:32 +0000
committerFilippos Karapetis2010-08-05 11:19:32 +0000
commit33f2bc65a66ee20ad51f4a614820d5a1f19dff29 (patch)
treef7a65201484ad93908dbfc11a5499434033258cf /engines
parentc71f1f1612eb87e04f8fd55b7982d99594f93c43 (diff)
downloadscummvm-rg350-33f2bc65a66ee20ad51f4a614820d5a1f19dff29.tar.gz
scummvm-rg350-33f2bc65a66ee20ad51f4a614820d5a1f19dff29.tar.bz2
scummvm-rg350-33f2bc65a66ee20ad51f4a614820d5a1f19dff29.zip
SCI: Fixed bug #3039477 - "KQ5CD: No speech after restoring from ScummVM" and added a TODO for loading through the game launcher
svn-id: r51755
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/sci.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 7624aed569..d0c578bd45 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -27,6 +27,7 @@
#include "common/config-manager.h"
#include "common/debug-channels.h"
#include "common/EventRecorder.h"
+#include "common/file.h" // for Common::File::exists()
#include "engines/advancedDetector.h"
#include "engines/util.h"
@@ -256,6 +257,16 @@ Common::Error SciEngine::run() {
reg_t restoreArgv[2] = { NULL_REG, make_reg(0, saveSlot) }; // special call (argv[0] is NULL)
kRestoreGame(_gamestate, 2, restoreArgv);
+ // TODO: The best way to do the following would be to invoke Game::init
+ // here and stop when the room is about to be changed, otherwise some
+ // game initialization won't take place
+
+ // Set audio language for KQ5CD (bug #3039477)
+ if (g_sci->getGameId() == GID_KQ5 && Common::File::exists("AUDIO001.002")) {
+ reg_t doAudioArgv[2] = { make_reg(0, 9), make_reg(0, 1) };
+ kDoAudio(_gamestate, 2, doAudioArgv);
+ }
+
// Initialize the game menu, if there is one.
// This is not done when loading, so we must do it manually.
reg_t menuBarObj = _gamestate->_segMan->findObjectByName("MenuBar");