diff options
author | Filippos Karapetis | 2010-08-05 11:19:32 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-08-05 11:19:32 +0000 |
commit | 33f2bc65a66ee20ad51f4a614820d5a1f19dff29 (patch) | |
tree | f7a65201484ad93908dbfc11a5499434033258cf /engines | |
parent | c71f1f1612eb87e04f8fd55b7982d99594f93c43 (diff) | |
download | scummvm-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.cpp | 11 |
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"); |