aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Brown2002-10-18 04:33:46 +0000
committerJames Brown2002-10-18 04:33:46 +0000
commitc84d12e8d230cecb6268367d2b1604da8288da83 (patch)
treeb034ca1f39948d744f83bb7de8234297dc19f7bc
parent12f491211db8ef9a703e0adc0185ee7616dbe5d9 (diff)
downloadscummvm-rg350-c84d12e8d230cecb6268367d2b1604da8288da83.tar.gz
scummvm-rg350-c84d12e8d230cecb6268367d2b1604da8288da83.tar.bz2
scummvm-rg350-c84d12e8d230cecb6268367d2b1604da8288da83.zip
Close in on the o6_wait:actDrawn problem
svn-id: r5181
-rw-r--r--scumm/script_v2.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index 773e994f6b..91dcfa75b1 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -2377,16 +2377,19 @@ void Scumm::o6_wait()
return;
break;
case 226:{ /* wait until actor drawn */
- Actor *a = derefActorSafe(pop(), "o6_wait:226");
+ int actnum = pop();
+ Actor *a = derefActorSafe(actnum, "o6_wait:226");
int offs = (int16)fetchScriptWord();
- return; // FIXME
- // This wait command doesn't return at the
+ // FIXME: This wait command doesn't return at the
// correct times, which causes several script freezes
// in The Dig. Eg, planetarium lightbridge,
// and taking the rod in the museum AFTER looking at
- // all the displays. Why? Is our code too optimised
- // vs. the original?
+ // all the displays. This is testing actor 3 (Ego),
+ // so I'm guessing it's something to do with the way
+ // ego doesn't always stop his mouth moving.
+ if (actnum == 3)
+ return;
if (a && a->isInCurrentRoom() && a->needRedraw) {
_scriptPointer += offs;