aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/blue_force/blueforce_logic.cpp6
-rw-r--r--engines/tsage/ringworld/ringworld_logic.cpp7
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.cpp6
3 files changed, 13 insertions, 6 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 22299c1bf1..9888f4dd91 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -255,14 +255,16 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
* Returns true if it is currently okay to restore a game
*/
bool BlueForceGame::canLoadGameStateCurrently() {
- return true;
+ // Don't allow a game to be loaded if a dialog is active
+ return g_globals->_gfxManagers.size() == 1;
}
/**
* Returns true if it is currently okay to save the game
*/
bool BlueForceGame::canSaveGameStateCurrently() {
- return true;
+ // Don't allow a game to be saved if a dialog is active
+ return g_globals->_gfxManagers.size() == 1;
}
void BlueForceGame::rightClick() {
diff --git a/engines/tsage/ringworld/ringworld_logic.cpp b/engines/tsage/ringworld/ringworld_logic.cpp
index ad67b66f69..c87b95e0b8 100644
--- a/engines/tsage/ringworld/ringworld_logic.cpp
+++ b/engines/tsage/ringworld/ringworld_logic.cpp
@@ -196,14 +196,17 @@ Scene *RingworldGame::createScene(int sceneNumber) {
* Returns true if it is currently okay to restore a game
*/
bool RingworldGame::canLoadGameStateCurrently() {
- return !g_globals->getFlag(50);
+ // Don't allow a game to be loaded if a dialog is active
+ return !g_globals->getFlag(50) && (g_globals->_gfxManagers.size() == 1);
+
}
/**
* Returns true if it is currently okay to save the game
*/
bool RingworldGame::canSaveGameStateCurrently() {
- return !g_globals->getFlag(50);
+ // Don't allow a game to be saved if a dialog is active
+ return !g_globals->getFlag(50) && (g_globals->_gfxManagers.size() == 1);
}
/*--------------------------------------------------------------------------*/
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 3854a37384..ccedb3a18a 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -203,14 +203,16 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
* Returns true if it is currently okay to restore a game
*/
bool Ringworld2Game::canLoadGameStateCurrently() {
- return true;
+ // Don't allow a game to be loaded if a dialog is active
+ return g_globals->_gfxManagers.size() == 1;
}
/**
* Returns true if it is currently okay to save the game
*/
bool Ringworld2Game::canSaveGameStateCurrently() {
- return true;
+ // Don't allow a game to be saved if a dialog is active
+ return g_globals->_gfxManagers.size() == 1;
}
/*--------------------------------------------------------------------------*/