From d06a3553411c8fb1a638f573f6ceb07a940569b9 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Tue, 7 Dec 2010 18:15:07 +0000 Subject: MOHAWK: Further limit where Myst can be saved svn-id: r54812 --- engines/mohawk/myst.cpp | 20 ++++++++++++++++++++ engines/mohawk/myst.h | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index ed92f6081e..e9661f54df 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -1079,4 +1079,24 @@ Common::Error MohawkEngine_Myst::saveGameState(int slot, const char *desc) { return _saveLoad->saveGame(Common::String(desc)) ? Common::kNoError : Common::kUnknownError; } +bool MohawkEngine_Myst::canLoadGameStateCurrently() { + // No loading in the demo/makingof + return !(getFeatures() & GF_DEMO) && getGameType() != GType_MAKINGOF; +} + +bool MohawkEngine_Myst::canSaveGameStateCurrently() { + // There's a limited number of stacks the game can save in + switch (_curStack) { + case kChannelwoodStack: + case kDniStack: + case kMechanicalStack: + case kMystStack: + case kSeleniticStack: + case kStoneshipStack: + return true; + } + + return false; +} + } // End of namespace Mohawk diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h index 73be28d393..3601cc3f03 100644 --- a/engines/mohawk/myst.h +++ b/engines/mohawk/myst.h @@ -191,8 +191,8 @@ public: GUI::Debugger *getDebugger() { return _console; } - bool canLoadGameStateCurrently() { return !(getFeatures() & GF_DEMO); } - bool canSaveGameStateCurrently() { return !(getFeatures() & GF_DEMO); } + bool canLoadGameStateCurrently(); + bool canSaveGameStateCurrently(); Common::Error loadGameState(int slot); Common::Error saveGameState(int slot, const char *desc); bool hasFeature(EngineFeature f) const; -- cgit v1.2.3