aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/worldofxeen/worldofxeen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/worldofxeen/worldofxeen.cpp')
-rw-r--r--engines/xeen/worldofxeen/worldofxeen.cpp19
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;