aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/engine')
-rw-r--r--engines/kyra/engine/chargen.cpp1
-rw-r--r--engines/kyra/engine/eob.h8
-rw-r--r--engines/kyra/engine/eobcommon.cpp12
-rw-r--r--engines/kyra/engine/scene_eob.cpp2
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();
}