From 24740b30bd9d6cfd5ce420951a53b87a156ffbbf Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 17 Dec 2011 13:13:44 +1100 Subject: TSAGE: Disallow saving and loading via the GMM when a dialog is active --- engines/tsage/blue_force/blueforce_logic.cpp | 6 ++++-- engines/tsage/ringworld/ringworld_logic.cpp | 7 +++++-- engines/tsage/ringworld2/ringworld2_logic.cpp | 6 ++++-- 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; } /*--------------------------------------------------------------------------*/ -- cgit v1.2.3