aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2006-10-04 20:22:47 +0000
committerMax Horn2006-10-04 20:22:47 +0000
commit98f62b9e65ad771cfa1993ac5da492650281f55f (patch)
tree30865bfa3eb116552f3f0e6adacd2b2e037d4fc9
parentf7eee205bb6133fb5a65d95c12caa31e1a26d272 (diff)
downloadscummvm-rg350-98f62b9e65ad771cfa1993ac5da492650281f55f.tar.gz
scummvm-rg350-98f62b9e65ad771cfa1993ac5da492650281f55f.tar.bz2
scummvm-rg350-98f62b9e65ad771cfa1993ac5da492650281f55f.zip
WORKAROUND bug #859513 (ZAK: "Oxygene-bug" on Mars)
svn-id: r24116
-rw-r--r--engines/scumm/script_v5.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index fdc73edac3..b9389f226c 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -587,6 +587,18 @@ void ScummEngine_v5::o5_animateActor() {
return;
}
+ // WORKAROUND bug #859513: While on mars, going outside without your helmet
+ // (or missing some other part of your "space suite" will cause your
+ // character to complain ("I can't breathe."). Unfortunately, this is
+ // coupled with an animate command, making it very difficult to return to
+ // safety (from where you came). The following hack works around this by
+ // ignoring that particular turn command.
+ if (_game.id == GID_ZAK && _currentRoom == 182 && anim == 246 &&
+ ((_game.version < 3 && vm.slot[_currentScript].number == 82)
+ || (_game.version == 3 && vm.slot[_currentScript].number == 131))) {
+ return;
+ }
+
Actor *a = derefActor(act, "o5_animateActor");
a->animateActor(anim);
}