aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2015-02-17 01:49:59 +0200
committerFilippos Karapetis2015-02-17 01:49:59 +0200
commitb45e706012d7131035867fdd1e6f7109db1ae635 (patch)
tree2b0a1f111b089829400f289ab7759a40c1306186
parentf04ef8b7282477cda5121b6c8a6e838eb35a1760 (diff)
downloadscummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.tar.gz
scummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.tar.bz2
scummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.zip
ZVISION: Fix script bug #6803 (tuning fork box state)
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index a9f3a55021..edc1b8622c 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -86,6 +86,15 @@ void ScriptManager::parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stre
parseCriteria(stream, puzzle->criteriaList, puzzle->key);
} else if (line.matchString("results {", true)) {
parseResults(stream, puzzle->resultActions);
+
+ // WORKAROUND for a script bug in Zork Nemesis, room ve5e (tuning
+ // fork box closeup). If the player leaves the screen while the
+ // box is open, puzzle 19398 shows the animation where the box
+ // closes, but the box state (state variable 19397) is not updated.
+ // We insert the missing assignment for the box state here.
+ // Fixes bug #6803.
+ if (_engine->getGameId() == GID_NEMESIS && puzzle->key == 19398)
+ puzzle->resultActions.push_back(new ActionAssign(_engine, 11, "19397, 0"));
} else if (line.matchString("flags {", true)) {
setStateFlag(puzzle->key, parseFlags(stream));
}