diff options
author | Travis Howell | 2006-02-27 23:25:07 +0000 |
---|---|---|
committer | Travis Howell | 2006-02-27 23:25:07 +0000 |
commit | 86c913a5f4770b839c9774648bc8fee305091e54 (patch) | |
tree | c8b5713dce1bbf08ef94f20ef2baee5a07cc00bf /engines/scumm | |
parent | f3106feaf524d065eb495b9bd423011171623fcb (diff) | |
download | scummvm-rg350-86c913a5f4770b839c9774648bc8fee305091e54.tar.gz scummvm-rg350-86c913a5f4770b839c9774648bc8fee305091e54.tar.bz2 scummvm-rg350-86c913a5f4770b839c9774648bc8fee305091e54.zip |
Update comment for SO_WAIT_FOR_TURN workaround in The Dig, this is due to script bugs. SO_WAIT_FOR_TURN is never used by FT r COMI either, so remove game check.
svn-id: r20962
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/script_v6.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp index 9aa73d3f01..56535d3210 100644 --- a/engines/scumm/script_v6.cpp +++ b/engines/scumm/script_v6.cpp @@ -2231,19 +2231,15 @@ void ScummEngine_v6::o6_wait() { break; return; case 232: // SO_WAIT_FOR_TURN - // FIXME: This opcode is really odd. It's used a lot in The Dig. - // But sometimes it receives the actor ID as params, and sometimes an - // angle. However in (almost?) all cases, just before calling it, _curActor - // is set, so we can use it. I tried to add code that detects if an angle - // is passed, and if so, wait till that angle is reached, but that leads to hangs. - // Disassembly doesn't show anything special for that opcode, though. + // WORKAROUND for bug #744441: An angle will often be received as the + // actor numnber due to script bugs in The Dig. In all cases where this + // occurs, _curActor is set just before it, so we can use it instead. // // For now, if the value passed in is divisible by 45, assume it is an - // angle, and use _curActor as the actor to wait for. See bug report #744441 + // angle, and use _curActor as the actor to wait for. offs = fetchScriptWordSigned(); actnum = pop(); - if (_game.id == GID_DIG && actnum % 45 == 0) { - warning("Working around invalid actor num %d", actnum); + if (actnum % 45 == 0) { actnum = _curActor; } a = derefActor(actnum, "o6_wait:232b"); |