From cb8ffaf3a91780518bf3fcfe1f35d60b01f19a45 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Tue, 20 Jan 2009 17:30:23 +0000 Subject: Implemented loading from the command line and the GMM for tinsel (kSupportsLoadingDuringStartup) svn-id: r35958 --- engines/tinsel/detection.cpp | 3 --- engines/tinsel/tinsel.cpp | 17 ++++++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'engines') diff --git a/engines/tinsel/detection.cpp b/engines/tinsel/detection.cpp index a9a72b1a14..2aadd9bed0 100644 --- a/engines/tinsel/detection.cpp +++ b/engines/tinsel/detection.cpp @@ -463,10 +463,7 @@ public: bool TinselMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || - // TODO: See tinsel.cpp ll 994-1005 -#if 0 (f == kSupportsLoadingDuringStartup) || -#endif (f == kSupportsDeleteSave); } diff --git a/engines/tinsel/tinsel.cpp b/engines/tinsel/tinsel.cpp index 1ddf635c3f..9481ea4859 100644 --- a/engines/tinsel/tinsel.cpp +++ b/engines/tinsel/tinsel.cpp @@ -509,8 +509,17 @@ void SetNewScene(SCNHANDLE scene, int entrance, int transition) { if (!bCuttingScene && TinselV2) WrapScene(); + // If we're loading from the GMM, load the scene as a delayed one + if (loadingFromGMM) { + DelayedScene.scene = scene; + DelayedScene.entry = entrance; + DelayedScene.trans = transition; + loadingFromGMM = false; + return; + } + // If CD change will be required, stick in the scene change scene - if (CdNumber(scene) != GetCurrentCD() || loadingFromGMM) { + if (CdNumber(scene) != GetCurrentCD()) { // This scene gets delayed DelayedScene.scene = scene; DelayedScene.entry = entrance; @@ -520,7 +529,6 @@ void SetNewScene(SCNHANDLE scene, int entrance, int transition) { NextScene.entry = CdNumber(scene) - '0'; NextScene.trans = TRANS_FADE; - loadingFromGMM = false; return; } @@ -998,16 +1006,11 @@ Common::Error TinselEngine::go() { // // TODO: We might want to think about taking care of possible errors // when loading the save state. - // - // TODO: This works fine when loading saves, which require a CD change - // in DW2. It will also work for DW1. For every other save it'll fail though. -#if 0 if (ConfMan.hasKey("save_slot")) { loadGameState(ConfMan.getInt("save_slot")); loadingFromGMM = true; } -#endif // Foreground loop -- cgit v1.2.3