diff options
Diffstat (limited to 'engines/xeen/worldofxeen/worldofxeen.cpp')
-rw-r--r-- | engines/xeen/worldofxeen/worldofxeen.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/engines/xeen/worldofxeen/worldofxeen.cpp b/engines/xeen/worldofxeen/worldofxeen.cpp index 4ea33eb6e2..f0fb5b9ba2 100644 --- a/engines/xeen/worldofxeen/worldofxeen.cpp +++ b/engines/xeen/worldofxeen/worldofxeen.cpp @@ -25,6 +25,7 @@ #include "xeen/worldofxeen/clouds_cutscenes.h" #include "xeen/worldofxeen/worldofxeen_menu.h" #include "xeen/sound.h" +#include "common/config-manager.h" namespace Xeen { namespace WorldOfXeen { @@ -176,12 +177,22 @@ void WorldOfXeenEngine::showCutscene(const Common::String &name, int status, uin } void WorldOfXeenEngine::showStartup() { - if (getGameID() == GType_Clouds) { - if (showCloudsTitle()) + bool seenIntro = ConfMan.hasKey("seen_intro") && ConfMan.getBool("seen_intro"); + + // Show the title animation + bool completedTitle = (getGameID() == GType_Clouds) ? + showCloudsTitle() : showDarkSideTitle(); + _sound->stopAllAudio(); + + // Unless user aborted the title, go + if (completedTitle && !seenIntro) { + if (getGameID() == GType_Clouds) showCloudsIntro(); - } else { - if (showDarkSideTitle()) + else showDarkSideIntro(); + + ConfMan.setBool("seen_intro", true); + ConfMan.flushToDisk(); } _gameMode = GMODE_MENU; |