diff options
Diffstat (limited to 'engines/kyra/engine')
-rw-r--r-- | engines/kyra/engine/chargen.cpp | 1 | ||||
-rw-r--r-- | engines/kyra/engine/eob.h | 8 | ||||
-rw-r--r-- | engines/kyra/engine/eobcommon.cpp | 12 | ||||
-rw-r--r-- | engines/kyra/engine/scene_eob.cpp | 2 |
4 files changed, 17 insertions, 6 deletions
diff --git a/engines/kyra/engine/chargen.cpp b/engines/kyra/engine/chargen.cpp index 7a4c9672c6..ef61bb987c 100644 --- a/engines/kyra/engine/chargen.cpp +++ b/engines/kyra/engine/chargen.cpp @@ -212,6 +212,7 @@ bool CharacterGenerator::start(EoBCharacter *characters, uint8 ***faceShapes) { // Unlike the original we allow returning to the main menu if no character has been created yet or all characters have been deleted if (!_characters[0].name[0] && !_characters[1].name[0] && !_characters[2].name[0] && !_characters[3].name[0]) { _vm->snd_stopSound(); + *faceShapes = _faceShapes; return false; } } diff --git a/engines/kyra/engine/eob.h b/engines/kyra/engine/eob.h index efb6c47b30..09e769bb72 100644 --- a/engines/kyra/engine/eob.h +++ b/engines/kyra/engine/eob.h @@ -53,7 +53,13 @@ private: void startupLoad(); // Intro/Outro - void seq_playIntro(); + enum IntroPart { + kOnlyCredits = 0, + kOnlyIntro, + kCreditsAndIntro, + }; + + void seq_playIntro(int part); void seq_playFinale(); void seq_xdeath(); diff --git a/engines/kyra/engine/eobcommon.cpp b/engines/kyra/engine/eobcommon.cpp index 3389d4fed0..826502d405 100644 --- a/engines/kyra/engine/eobcommon.cpp +++ b/engines/kyra/engine/eobcommon.cpp @@ -413,7 +413,8 @@ Common::Error EoBCoreEngine::init() { } else if (_flags.platform == Common::kPlatformFMTowns) { _sound = new SoundTowns_Darkmoon(this, _mixer); } else if (_flags.platform == Common::kPlatformPC98) { - + if (_flags.gameID == GI_EOB1) + _sound = new SoundPC98_EoB(this, _mixer); } else if (_flags.platform == Common::kPlatformAmiga) { _sound = new SoundAmiga_EoB(this, _mixer); } @@ -421,6 +422,9 @@ Common::Error EoBCoreEngine::init() { assert(_sound); _sound->init(); + // This if for EOB1 / PC98 only + _sound->loadSfxFile("EFECT.OBJ"); + // Setup volume settings (and read in all ConfigManager settings) syncSoundSettings(); @@ -566,9 +570,9 @@ Common::Error EoBCoreEngine::go() { // Import original save game files (especially the "Quick Start Party") if (ConfMan.getBool("importOrigSaves")) { - importOriginalSaveFile(-1); - ConfMan.setBool("importOrigSaves", false); - ConfMan.flushToDisk(); + //importOriginalSaveFile(-1); + //ConfMan.setBool("importOrigSaves", false); + //ConfMan.flushToDisk(); } loadItemDefs(); diff --git a/engines/kyra/engine/scene_eob.cpp b/engines/kyra/engine/scene_eob.cpp index 110bf0d12c..6d51c0c725 100644 --- a/engines/kyra/engine/scene_eob.cpp +++ b/engines/kyra/engine/scene_eob.cpp @@ -706,7 +706,7 @@ int EoBCoreEngine::calcNewBlockPositionAndTestPassability(uint16 curBlock, uint1 void EoBCoreEngine::notifyBlockNotPassable() { _txt->printMessage(_warningStrings[0]); - snd_playSoundEffect(29); + snd_playSoundEffect(29); //PC98 : 45 removeInputTop(); } |