aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2008-12-14 00:23:46 +0000
committerJohannes Schickel2008-12-14 00:23:46 +0000
commitc75c681175cca1879ad3470cd657b5e8030ed98a (patch)
treea66d13311ec44cfa2fab49d5824ffdaea701110a /engines/kyra
parentc0a8a13081c880a2bd0f5dc59a10b1874e2d5b4a (diff)
downloadscummvm-rg350-c75c681175cca1879ad3470cd657b5e8030ed98a.tar.gz
scummvm-rg350-c75c681175cca1879ad3470cd657b5e8030ed98a.tar.bz2
scummvm-rg350-c75c681175cca1879ad3470cd657b5e8030ed98a.zip
Added code to initialize MT-32 properly for Lands of Lore.
svn-id: r35347
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/sound_midi.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/engines/kyra/sound_midi.cpp b/engines/kyra/sound_midi.cpp
index a9b4acc687..b3eb06877d 100644
--- a/engines/kyra/sound_midi.cpp
+++ b/engines/kyra/sound_midi.cpp
@@ -503,13 +503,29 @@ bool SoundMidiPC::init() {
_output->setTimerCallback(this, SoundMidiPC::onTimer);
if (_nativeMT32) {
+ const char *midiFile = 0;
+ const char *pakFile = 0;
if (_vm->gameFlags().gameID == GI_KYRA1) {
- loadSoundFile("INTRO");
+ midiFile = "INTRO";
} else if (_vm->gameFlags().gameID == GI_KYRA2) {
- _vm->resource()->loadPakFile("AUDIO.PAK");
- loadSoundFile("HOF_SYX");
+ midiFile = "HOF_SYX";
+ pakFile = "AUDIO.PAK";
+ } else if (_vm->gameFlags().gameID == GI_LOL) {
+ midiFile = "LOREINTR";
+
+ if (_vm->gameFlags().isTalkie)
+ pakFile = "ENG/STARTUP.PAK";
+ else
+ pakFile = "STARTUP.PAK";
}
+ if (!midiFile)
+ return true;
+
+ if (pakFile)
+ _vm->resource()->loadPakFile(pakFile);
+
+ loadSoundFile(midiFile);
playTrack(0);
Common::Event event;
@@ -519,8 +535,8 @@ bool SoundMidiPC::init() {
_vm->_system->delayMillis(10);
}
- if (_vm->gameFlags().gameID == GI_KYRA2)
- _vm->resource()->unloadPakFile("AUDIO.PAK");
+ if (pakFile)
+ _vm->resource()->unloadPakFile(pakFile);
}
return true;