diff options
author | Filippos Karapetis | 2015-02-17 01:49:59 +0200 |
---|---|---|
committer | Filippos Karapetis | 2015-02-17 01:49:59 +0200 |
commit | b45e706012d7131035867fdd1e6f7109db1ae635 (patch) | |
tree | 2b0a1f111b089829400f289ab7759a40c1306186 /engines/zvision/scripting/scr_file_handling.cpp | |
parent | f04ef8b7282477cda5121b6c8a6e838eb35a1760 (diff) | |
download | scummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.tar.gz scummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.tar.bz2 scummvm-rg350-b45e706012d7131035867fdd1e6f7109db1ae635.zip |
ZVISION: Fix script bug #6803 (tuning fork box state)
Diffstat (limited to 'engines/zvision/scripting/scr_file_handling.cpp')
-rw-r--r-- | engines/zvision/scripting/scr_file_handling.cpp | 9 |
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)); } |