diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mads/mads.cpp | 11 | ||||
-rw-r--r-- | engines/mads/mads.h | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/engines/mads/mads.cpp b/engines/mads/mads.cpp index c40d4bfa1b..6f57b1df60 100644 --- a/engines/mads/mads.cpp +++ b/engines/mads/mads.cpp @@ -26,6 +26,7 @@ #include "common/events.h" #include "engines/util.h" #include "mads/mads.h" +#include "mads/game.h" #include "mads/screen.h" #include "mads/msurface.h" #include "mads/resources.h" @@ -119,4 +120,14 @@ int MADSEngine::hypotenuse(int xv, int yv) { return (int)sqrt((double)(xv * xv + yv * yv)); } +bool MADSEngine::canLoadGameStateCurrently() { + return !_game->_winStatus && !_game->globals()[5] + && _dialogs->_pendingDialog == DIALOG_NONE; +} + +bool MADSEngine::canSaveGameStateCurrently() { + return !_game->_winStatus && !_game->globals()[5] + && _dialogs->_pendingDialog == DIALOG_NONE; +} + } // End of namespace MADS diff --git a/engines/mads/mads.h b/engines/mads/mads.h index 4ea0758f88..f13b3b9008 100644 --- a/engines/mads/mads.h +++ b/engines/mads/mads.h @@ -119,6 +119,16 @@ public: int getRandomNumber(int maxNumber); int getRandomNumber(int minNumber, int maxNumber); int hypotenuse(int xv, int yv); + + /** + * Returns true if it is currently okay to restore a game + */ + bool canLoadGameStateCurrently(); + + /** + * Returns true if it is currently okay to save the game + */ + bool canSaveGameStateCurrently(); }; } // End of namespace MADS |