diff options
Diffstat (limited to 'engines/pegasus/pegasus.cpp')
-rw-r--r-- | engines/pegasus/pegasus.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp index 3d1c4d539c..a696edaedc 100644 --- a/engines/pegasus/pegasus.cpp +++ b/engines/pegasus/pegasus.cpp @@ -143,10 +143,6 @@ Common::Error PegasusEngine::run() { _biochips.setWeightLimit(8); _biochips.setOwnerID(kPlayerID); - // Start up the first notification - _shellNotification.notifyMe(this, kJMPShellNotificationFlags, kJMPShellNotificationFlags); - _shellNotification.setNotificationFlags(kGameStartingFlag, kGameStartingFlag); - _returnHotspot.setArea(Common::Rect(kNavAreaLeft, kNavAreaTop, 512 + kNavAreaLeft, 256 + kNavAreaTop)); _returnHotspot.setHotspotFlags(kInfoReturnSpotFlag); g_allHotspots.push_back(&_returnHotspot); @@ -154,6 +150,19 @@ Common::Error PegasusEngine::run() { _screenDimmer.setBounds(Common::Rect(0, 0, 640, 480)); _screenDimmer.setDisplayOrder(kScreenDimmerOrder); + // Load from the launcher/cli if requested (and don't show the intro in those cases) + bool doIntro = true; + if (ConfMan.hasKey("save_slot")) { + uint32 gameToLoad = ConfMan.getInt("save_slot"); + doIntro = (loadGameState(gameToLoad).getCode() != Common::kNoError); + } + + if (doIntro) { + // Start up the first notification + _shellNotification.notifyMe(this, kJMPShellNotificationFlags, kJMPShellNotificationFlags); + _shellNotification.setNotificationFlags(kGameStartingFlag, kGameStartingFlag); + } + while (!shouldQuit()) { processShell(); _system->delayMillis(10); // Ease off the CPU |