diff options
author | Paul Gilbert | 2011-10-14 20:49:06 +1100 |
---|---|---|
committer | Paul Gilbert | 2011-10-14 20:49:06 +1100 |
commit | 2ac551aa28dd0c7b339516a53135d6195ec0666f (patch) | |
tree | e3790ceade166f7d0d0a96fd1a73fbf598fef509 /engines/tsage/ringworld | |
parent | 6811a3daffc2743d2d733050be9306dcbf419214 (diff) | |
download | scummvm-rg350-2ac551aa28dd0c7b339516a53135d6195ec0666f.tar.gz scummvm-rg350-2ac551aa28dd0c7b339516a53135d6195ec0666f.tar.bz2 scummvm-rg350-2ac551aa28dd0c7b339516a53135d6195ec0666f.zip |
TSAGE: Bugfix for Ringworld demo having save/restore buttons enabled in GMM
This splits checking if save and load are enabled to the individual game classes.
Diffstat (limited to 'engines/tsage/ringworld')
-rw-r--r-- | engines/tsage/ringworld/ringworld_demo.cpp | 8 | ||||
-rw-r--r-- | engines/tsage/ringworld/ringworld_demo.h | 2 | ||||
-rw-r--r-- | engines/tsage/ringworld/ringworld_logic.cpp | 14 | ||||
-rw-r--r-- | engines/tsage/ringworld/ringworld_logic.h | 2 |
4 files changed, 26 insertions, 0 deletions
diff --git a/engines/tsage/ringworld/ringworld_demo.cpp b/engines/tsage/ringworld/ringworld_demo.cpp index adf4aae9dd..fedb19c804 100644 --- a/engines/tsage/ringworld/ringworld_demo.cpp +++ b/engines/tsage/ringworld/ringworld_demo.cpp @@ -41,6 +41,14 @@ Scene *RingworldDemoGame::createScene(int sceneNumber) { return new RingworldDemoScene(); } +bool RingworldDemoGame::canLoadGameStateCurrently() { + return false; +} + +bool RingworldDemoGame::canSaveGameStateCurrently() { + return false; +} + void RingworldDemoGame::quitGame() { if (MessageDialog::show(DEMO_EXIT_MSG, EXIT_BTN_STRING, DEMO_BTN_STRING) == 0) g_vm->quitGame(); diff --git a/engines/tsage/ringworld/ringworld_demo.h b/engines/tsage/ringworld/ringworld_demo.h index 30527b0aea..7c0ac39285 100644 --- a/engines/tsage/ringworld/ringworld_demo.h +++ b/engines/tsage/ringworld/ringworld_demo.h @@ -44,6 +44,8 @@ public: virtual Scene *createScene(int sceneNumber); virtual void quitGame(); virtual void processEvent(Event &event); + virtual bool canSaveGameStateCurrently(); + virtual bool canLoadGameStateCurrently(); }; class RingworldDemoScene: public Scene { diff --git a/engines/tsage/ringworld/ringworld_logic.cpp b/engines/tsage/ringworld/ringworld_logic.cpp index e3b5370ae2..5254fe66d7 100644 --- a/engines/tsage/ringworld/ringworld_logic.cpp +++ b/engines/tsage/ringworld/ringworld_logic.cpp @@ -192,6 +192,20 @@ Scene *RingworldGame::createScene(int sceneNumber) { } } +/** + * Returns true if it is currently okay to restore a game + */ +bool RingworldGame::canLoadGameStateCurrently() { + return !g_globals->getFlag(50); +} + +/** + * Returns true if it is currently okay to save the game + */ +bool RingworldGame::canSaveGameStateCurrently() { + return !g_globals->getFlag(50); +} + /*--------------------------------------------------------------------------*/ DisplayHotspot::DisplayHotspot(int regionId, ...) { diff --git a/engines/tsage/ringworld/ringworld_logic.h b/engines/tsage/ringworld/ringworld_logic.h index 6adc8c41da..6f6a66cc26 100644 --- a/engines/tsage/ringworld/ringworld_logic.h +++ b/engines/tsage/ringworld/ringworld_logic.h @@ -155,6 +155,8 @@ public: virtual Scene *createScene(int sceneNumber); virtual void processEvent(Event &event); virtual void rightClick(); + virtual bool canSaveGameStateCurrently(); + virtual bool canLoadGameStateCurrently(); }; class NamedHotspot : public SceneHotspot { |