aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2015-01-23 03:02:24 +0200
committerFilippos Karapetis2015-01-23 03:02:24 +0200
commit1bd83a96f00c4d25cf4060ba8faffda81865ad7d (patch)
tree5257bef935241ba8788b38052fb134b99fc57614
parentf7e0d1e958f3b6a4bfff9ba2c9ade03375e8f9d9 (diff)
downloadscummvm-rg350-1bd83a96f00c4d25cf4060ba8faffda81865ad7d.tar.gz
scummvm-rg350-1bd83a96f00c4d25cf4060ba8faffda81865ad7d.tar.bz2
scummvm-rg350-1bd83a96f00c4d25cf4060ba8faffda81865ad7d.zip
ZVISION: Fix script bug #6780 (invalid hotspot at base of tower in ZGI)
-rw-r--r--engines/zvision/scripting/scr_file_handling.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/zvision/scripting/scr_file_handling.cpp b/engines/zvision/scripting/scr_file_handling.cpp
index 8f0f80e39e..b9cafa77ed 100644
--- a/engines/zvision/scripting/scr_file_handling.cpp
+++ b/engines/zvision/scripting/scr_file_handling.cpp
@@ -358,6 +358,16 @@ Control *ScriptManager::parseControl(Common::String &line, Common::SeekableReadS
Common::String controlType(controlTypeBuffer);
if (controlType.equalsIgnoreCase("push_toggle")) {
+ // WORKAROUND for a script bug in ZGI: There is an invalid hotspot
+ // at scene em1h (bottom of tower), which points to a missing
+ // script em1n. This is a hotspot at the right of the screen.
+ // In the original, this hotspot doesn't lead anywhere anyway,
+ // so instead of moving to a missing scene, we just remove the
+ // hotspot altogether. The alternative would be to just process
+ // and ignore invalid scenes, but I don't think it's worth the
+ // effort. Fixes bug #6780.
+ if (_engine->getGameId() == GID_GRANDINQUISITOR && key == 5653)
+ return NULL;
return new PushToggleControl(_engine, key, stream);
} else if (controlType.equalsIgnoreCase("flat")) {
Control::parseFlatControl(_engine);