diff options
-rw-r--r-- | engines/mohawk/myst.cpp | 20 | ||||
-rw-r--r-- | 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; |