aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorRichieSams2013-09-06 22:46:25 -0500
committerRichieSams2013-09-06 22:50:42 -0500
commit2840ce750eee4409dc4926d57dbe686640cac625 (patch)
treee08afb897975808aa6697f36e7cc3d9be5cb1272 /engines
parentb6366a2697f9d604fbb19ed38f1a1e51cf0d2b7f (diff)
downloadscummvm-rg350-2840ce750eee4409dc4926d57dbe686640cac625.tar.gz
scummvm-rg350-2840ce750eee4409dc4926d57dbe686640cac625.tar.bz2
scummvm-rg350-2840ce750eee4409dc4926d57dbe686640cac625.zip
ZVISION: Save the Puzzle key, since ChangeLocation could be called
Which wipes all the puzzles
Diffstat (limited to 'engines')
-rw-r--r--engines/zvision/script_manager.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/engines/zvision/script_manager.cpp b/engines/zvision/script_manager.cpp
index 84d39ffe06..860697c61e 100644
--- a/engines/zvision/script_manager.cpp
+++ b/engines/zvision/script_manager.cpp
@@ -174,6 +174,8 @@ void ScriptManager::checkPuzzleCriteria() {
if (puzzle->criteriaList.empty() || criteriaMet) {
debug("Puzzle %u criteria passed. Executing its ResultActions", puzzle->key);
+ uint32 key = puzzle->key;
+
bool shouldContinue = true;
for (Common::List<ResultAction *>::iterator resultIter = puzzle->resultActions.begin(); resultIter != puzzle->resultActions.end(); resultIter++) {
shouldContinue = shouldContinue && (*resultIter)->execute(_engine);
@@ -183,7 +185,7 @@ void ScriptManager::checkPuzzleCriteria() {
}
// Set the puzzle as completed
- setStateValue(puzzle->key, 1);
+ setStateValue(key, 1);
if (!shouldContinue) {
break;