[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