diff options
author | Filippos Karapetis | 2015-12-27 23:07:41 +0200 |
---|---|---|
committer | Filippos Karapetis | 2015-12-27 23:07:41 +0200 |
commit | 4548cbddb5b0490effe402242e08001859c7266c (patch) | |
tree | 6e4eb3fbdd583ebb906b2dc2fcb1b861d146fca9 /engines | |
parent | bb34bc94eca65b3e5119dc278a250d5bc4744ad0 (diff) | |
download | scummvm-rg350-4548cbddb5b0490effe402242e08001859c7266c.tar.gz scummvm-rg350-4548cbddb5b0490effe402242e08001859c7266c.tar.bz2 scummvm-rg350-4548cbddb5b0490effe402242e08001859c7266c.zip |
LAB: Add support for loading games from the launcher
Diffstat (limited to 'engines')
-rw-r--r-- | engines/lab/detection.cpp | 14 | ||||
-rw-r--r-- | engines/lab/engine.cpp | 28 | ||||
-rw-r--r-- | engines/lab/savegame.cpp | 3 |
3 files changed, 31 insertions, 14 deletions
diff --git a/engines/lab/detection.cpp b/engines/lab/detection.cpp index 805594bf6a..5850dc69ae 100644 --- a/engines/lab/detection.cpp +++ b/engines/lab/detection.cpp @@ -145,13 +145,13 @@ public: bool LabMetaEngine::hasFeature(MetaEngineFeature f) const { return - (f == kSupportsListSaves) || - //(f == kSupportsLoadingDuringStartup) || - (f == kSupportsDeleteSave) || - (f == kSavesSupportMetaInfo) || - (f == kSavesSupportThumbnail) || - (f == kSavesSupportCreationDate) || - (f == kSavesSupportPlayTime); + (f == kSupportsListSaves) || + (f == kSupportsLoadingDuringStartup) || + (f == kSupportsDeleteSave) || + (f == kSavesSupportMetaInfo) || + (f == kSavesSupportThumbnail) || + (f == kSavesSupportCreationDate) || + (f == kSavesSupportPlayTime); } bool Lab::LabEngine::hasFeature(EngineFeature f) const { diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp index 8f39ff52d4..20f38ef884 100644 --- a/engines/lab/engine.cpp +++ b/engines/lab/engine.cpp @@ -28,8 +28,9 @@ * */ -#include "lab/lab.h" +#include "common/config-manager.h" +#include "lab/lab.h" #include "lab/anim.h" #include "lab/dispman.h" #include "lab/eventman.h" @@ -404,6 +405,18 @@ void LabEngine::mainGameLoop() { perFlipButton(actionMode); + // Load saved slot from the launcher, if requested + if (ConfMan.hasKey("save_slot")) { + loadGame(ConfMan.getInt("save_slot")); + + // Since the intro hasn't been shown, init the background music here + if (getPlatform() != Common::kPlatformAmiga) + _music->changeMusic("Music:BackGrou", false, false); + else + _music->changeMusic("Music:BackGround", false, false); + _music->checkRoomMusic(); + } + // Set up initial picture. while (1) { _event->processInput(); @@ -1020,11 +1033,14 @@ void LabEngine::go() { else _msgFont = _resource->getFont("F:Map.fon"); - _event->mouseHide(); - Intro *intro = new Intro(this); - intro->play(); - delete intro; - _event->mouseShow(); + // If the user has requested to load a game from the launcher, skip the intro + if (!ConfMan.hasKey("save_slot")) { + _event->mouseHide(); + Intro *intro = new Intro(this); + intro->play(); + delete intro; + _event->mouseShow(); + } mainGameLoop(); diff --git a/engines/lab/savegame.cpp b/engines/lab/savegame.cpp index 8d8b42f3fc..d815929c39 100644 --- a/engines/lab/savegame.cpp +++ b/engines/lab/savegame.cpp @@ -114,7 +114,8 @@ bool readSaveGameHeader(Common::InSaveFile *in, SaveGameHeader &header) { header._descr.setSaveTime(hour, minutes); header._descr.setPlayTime(playTime * 1000); - g_engine->setTotalPlayTime(playTime * 1000); + if (g_engine) + g_engine->setTotalPlayTime(playTime * 1000); return true; } |