aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/pegasus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus/pegasus.cpp')
-rw-r--r--engines/pegasus/pegasus.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index 4402eb412f..4b1d7d73ae 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -193,6 +193,14 @@ Common::Error PegasusEngine::run() {
return Common::kNoError;
}
+bool PegasusEngine::canLoadGameStateCurrently() {
+ return _loadAllowed && !isDemo();
+}
+
+bool PegasusEngine::canSaveGameStateCurrently() {
+ return _saveAllowed && !isDemo() && g_neighborhood;
+}
+
bool PegasusEngine::detectOpeningClosingDirectory() {
// We need to detect what our Opening/Closing directory is listed as
// On the original disc, it was 'Opening/Closing' but only HFS(+) supports the slash
@@ -1442,6 +1450,7 @@ void PegasusEngine::performJump(NeighborhoodID neighborhoodID) {
// Sub chase is special
if (neighborhoodID == kNoradSubChaseID) {
throwAwayEverything();
+ _loadAllowed = false;
doSubChase();
if (shouldQuit())
@@ -1450,6 +1459,7 @@ void PegasusEngine::performJump(NeighborhoodID neighborhoodID) {
neighborhoodID = kNoradDeltaID;
GameState.setNextRoom(kNorad41);
GameState.setNextDirection(kEast);
+ _loadAllowed = true;
}
Neighborhood *neighborhood;