aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorGregory Montoir2005-09-02 10:49:21 +0000
committerGregory Montoir2005-09-02 10:49:21 +0000
commite2d0352069fc9f38aa8412332dc06e23245fc0e0 (patch)
treef72da15ecfb2b1698602e31c34de78b81f9ad78b /scumm
parent6f7f7391b2cb1b6c62baeb5d392d761265508bb8 (diff)
downloadscummvm-rg350-e2d0352069fc9f38aa8412332dc06e23245fc0e0.tar.gz
scummvm-rg350-e2d0352069fc9f38aa8412332dc06e23245fc0e0.tar.bz2
scummvm-rg350-e2d0352069fc9f38aa8412332dc06e23245fc0e0.zip
workaround bug #1223621
svn-id: r18731
Diffstat (limited to 'scumm')
-rw-r--r--scumm/debugger.cpp5
-rw-r--r--scumm/script_v6.cpp9
2 files changed, 12 insertions, 2 deletions
diff --git a/scumm/debugger.cpp b/scumm/debugger.cpp
index 524158d207..6db2c8f0a1 100644
--- a/scumm/debugger.cpp
+++ b/scumm/debugger.cpp
@@ -387,10 +387,11 @@ bool ScummDebugger::Cmd_Actor(int argc, const char **argv) {
value2 = atoi(argv[4]);
if (!strcmp(argv[2], "animvar")) {
-
a->setAnimVar(value, value2);
DebugPrintf("Actor[%d].animVar[%d] = %d\n", actnum, value, a->getAnimVar(value));
-
+ } else if (!strcmp(argv[2], "anim")) {
+ a->animateActor(value);
+ DebugPrintf("Actor[%d].animateActor(%d)\n", actnum, value);
} else if (!strcmp(argv[2], "ignoreboxes")) {
a->_ignoreBoxes = (value > 0);
DebugPrintf("Actor[%d].ignoreBoxes = %d\n", actnum, a->_ignoreBoxes);
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index 17fbbe4475..0ad4d32ded 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -1271,6 +1271,15 @@ void ScummEngine_v6::o6_animateActor() {
// (593 is the time machine in room 57), or if this is simply a script bug.
act = 6;
}
+ if (_gameId == GID_SAMNMAX && _roomResource == 35 &&
+ vm.slot[_currentScript].number == 202 && act == 4 && anim == 14) {
+ // WORKAROUND bug #1223621 (Animation glitch at World of Fish).
+ // Before starting animation 14 of the fisherman, make sure he isn't
+ // talking anymore. This appears to be a bug in the original game as well.
+ if (getTalkingActor() == 4) {
+ stopTalk();
+ }
+ }
Actor *a = derefActor(act, "o6_animateActor");
a->animateActor(anim);
}