diff options
author | Paul Gilbert | 2011-10-18 19:47:45 +1100 |
---|---|---|
committer | Paul Gilbert | 2011-10-18 19:47:45 +1100 |
commit | ca7bc7184652be9673045f5d810ec4bd310c120c (patch) | |
tree | 30fb308b5cf0e12d614ed7f5870c5bd96bc3b684 /engines/tinsel | |
parent | 3b71a3a7fbfc5a1c7d039610b4fc73476651c24e (diff) | |
download | scummvm-rg350-ca7bc7184652be9673045f5d810ec4bd310c120c.tar.gz scummvm-rg350-ca7bc7184652be9673045f5d810ec4bd310c120c.tar.bz2 scummvm-rg350-ca7bc7184652be9673045f5d810ec4bd310c120c.zip |
TINSEL: Bugfix for restoring DW1 savegames with a saved scene
This happens, for example, when restoring a savegame of the dragon summoning book close-up. After restoring, you couldn't leave the close up.
Diffstat (limited to 'engines/tinsel')
-rw-r--r-- | engines/tinsel/saveload.cpp | 7 | ||||
-rw-r--r-- | engines/tinsel/savescn.cpp | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp index 4ac172be43..a0801d8247 100644 --- a/engines/tinsel/saveload.cpp +++ b/engines/tinsel/saveload.cpp @@ -84,6 +84,8 @@ extern void syncPolyInfo(Common::Serializer &s); extern int sceneCtr; +extern bool ASceneIsSaved; + //----------------- LOCAL DEFINES -------------------- struct SaveGameHeader { @@ -438,6 +440,11 @@ static void DoSync(Common::Serializer &s) { SAVED_DATA *sdPtr = SaveSceneSsData; for (int i = 0; i < *SaveSceneSsCount; ++i, ++sdPtr) syncSavedData(s, *sdPtr); + + // Flag that there is a saved scene to return to. Note that in this context 'saved scene' + // is a stored scene to return to from another scene, such as from the Summoning Book close-up + // in Discworld 1 to whatever scene Rincewind was in prior to that + ASceneIsSaved = true; } if (!TinselV2) diff --git a/engines/tinsel/savescn.cpp b/engines/tinsel/savescn.cpp index 89d68a611e..73d587165e 100644 --- a/engines/tinsel/savescn.cpp +++ b/engines/tinsel/savescn.cpp @@ -83,7 +83,7 @@ extern SRSTATE SRstate; // FIXME: Avoid non-const global vars -static bool ASceneIsSaved = false; +bool ASceneIsSaved = false; static int savedSceneCount = 0; |