[Scummvm-cvs-logs] scummvm master -> 2ac551aa28dd0c7b339516a53135d6195ec0666f
dreammaster
dreammaster at scummvm.org
Fri Oct 14 11:57:48 CEST 2011
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
2ac551aa28 TSAGE: Bugfix for Ringworld demo having save/restore buttons enabled in GMM
Commit: 2ac551aa28dd0c7b339516a53135d6195ec0666f
https://github.com/scummvm/scummvm/commit/2ac551aa28dd0c7b339516a53135d6195ec0666f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-14T02:49:06-07:00
Commit Message:
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.
Changed paths:
engines/tsage/blue_force/blueforce_logic.cpp
engines/tsage/blue_force/blueforce_logic.h
engines/tsage/ringworld/ringworld_demo.cpp
engines/tsage/ringworld/ringworld_demo.h
engines/tsage/ringworld/ringworld_logic.cpp
engines/tsage/ringworld/ringworld_logic.h
engines/tsage/scenes.h
engines/tsage/tsage.cpp
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 156062d..d413c2e 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -240,6 +240,20 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
}
}
+/**
+ * Returns true if it is currently okay to restore a game
+ */
+bool BlueForceGame::canLoadGameStateCurrently() {
+ return true;
+}
+
+/**
+ * Returns true if it is currently okay to save the game
+ */
+bool BlueForceGame::canSaveGameStateCurrently() {
+ return true;
+}
+
void BlueForceGame::rightClick() {
RightClickDialog *dlg = new RightClickDialog();
dlg->execute();
diff --git a/engines/tsage/blue_force/blueforce_logic.h b/engines/tsage/blue_force/blueforce_logic.h
index 8764d0b..2ebfc19 100644
--- a/engines/tsage/blue_force/blueforce_logic.h
+++ b/engines/tsage/blue_force/blueforce_logic.h
@@ -43,6 +43,8 @@ public:
virtual Scene *createScene(int sceneNumber);
virtual void rightClick();
virtual void processEvent(Event &event);
+ virtual bool canSaveGameStateCurrently();
+ virtual bool canLoadGameStateCurrently();
};
#define OBJ_ARRAY_SIZE 10
diff --git a/engines/tsage/ringworld/ringworld_demo.cpp b/engines/tsage/ringworld/ringworld_demo.cpp
index adf4aae..fedb19c 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 30527b0..7c0ac39 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 e3b5370..5254fe6 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 6adc8c4..6f6a66c 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 {
diff --git a/engines/tsage/scenes.h b/engines/tsage/scenes.h
index da813f0..202648a 100644
--- a/engines/tsage/scenes.h
+++ b/engines/tsage/scenes.h
@@ -133,6 +133,8 @@ public:
virtual Scene *createScene(int sceneNumber) = 0;
virtual void processEvent(Event &event) {}
virtual void rightClick() {}
+ virtual bool canSaveGameStateCurrently() = 0;
+ virtual bool canLoadGameStateCurrently() = 0;
};
} // End of namespace TsAGE
diff --git a/engines/tsage/tsage.cpp b/engines/tsage/tsage.cpp
index 90fdecc..5b0e0b6 100644
--- a/engines/tsage/tsage.cpp
+++ b/engines/tsage/tsage.cpp
@@ -119,14 +119,14 @@ Common::Error TSageEngine::run() {
* Returns true if it is currently okay to restore a game
*/
bool TSageEngine::canLoadGameStateCurrently() {
- return (g_globals->getFlag(50) == 0);
+ return (g_globals != NULL) && (g_globals->_game != NULL) && g_globals->_game->canLoadGameStateCurrently();
}
/**
* Returns true if it is currently okay to save the game
*/
bool TSageEngine::canSaveGameStateCurrently() {
- return (g_globals->getFlag(50) == 0);
+ return (g_globals != NULL) && (g_globals->_game != NULL) && g_globals->_game->canSaveGameStateCurrently();
}
/**
More information about the Scummvm-git-logs
mailing list