Implemented loading from the command line and the GMM for tinsel (kSupportsLoadingDuringStartup)

svn-id: r35958
This commit is contained in:
Filippos Karapetis 2009-01-20 17:30:23 +00:00
parent f67bb6c8f1
commit cb8ffaf3a9
2 changed files with 10 additions and 10 deletions

View File

@ -463,10 +463,7 @@ public:
bool TinselMetaEngine::hasFeature(MetaEngineFeature f) const { bool TinselMetaEngine::hasFeature(MetaEngineFeature f) const {
return return
(f == kSupportsListSaves) || (f == kSupportsListSaves) ||
// TODO: See tinsel.cpp ll 994-1005
#if 0
(f == kSupportsLoadingDuringStartup) || (f == kSupportsLoadingDuringStartup) ||
#endif
(f == kSupportsDeleteSave); (f == kSupportsDeleteSave);
} }

View File

@ -509,8 +509,17 @@ void SetNewScene(SCNHANDLE scene, int entrance, int transition) {
if (!bCuttingScene && TinselV2) if (!bCuttingScene && TinselV2)
WrapScene(); 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 CD change will be required, stick in the scene change scene
if (CdNumber(scene) != GetCurrentCD() || loadingFromGMM) { if (CdNumber(scene) != GetCurrentCD()) {
// This scene gets delayed // This scene gets delayed
DelayedScene.scene = scene; DelayedScene.scene = scene;
DelayedScene.entry = entrance; DelayedScene.entry = entrance;
@ -520,7 +529,6 @@ void SetNewScene(SCNHANDLE scene, int entrance, int transition) {
NextScene.entry = CdNumber(scene) - '0'; NextScene.entry = CdNumber(scene) - '0';
NextScene.trans = TRANS_FADE; NextScene.trans = TRANS_FADE;
loadingFromGMM = false;
return; return;
} }
@ -998,16 +1006,11 @@ Common::Error TinselEngine::go() {
// //
// TODO: We might want to think about taking care of possible errors // TODO: We might want to think about taking care of possible errors
// when loading the save state. // 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")) { if (ConfMan.hasKey("save_slot")) {
loadGameState(ConfMan.getInt("save_slot")); loadGameState(ConfMan.getInt("save_slot"));
loadingFromGMM = true; loadingFromGMM = true;
} }
#endif
// Foreground loop // Foreground loop