aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v1.cpp
diff options
context:
space:
mode:
authorJames Brown2002-11-03 07:09:05 +0000
committerJames Brown2002-11-03 07:09:05 +0000
commitb99afecb414421c25cd10bcbbd20eaef74c61b28 (patch)
treeb407031b487dec48441299486a5aa5b8ebff4d54 /scumm/script_v1.cpp
parentbb8172f7c9ce8e1007a30d5fd36fec76d4bc6886 (diff)
downloadscummvm-rg350-b99afecb414421c25cd10bcbbd20eaef74c61b28.tar.gz
scummvm-rg350-b99afecb414421c25cd10bcbbd20eaef74c61b28.tar.bz2
scummvm-rg350-b99afecb414421c25cd10bcbbd20eaef74c61b28.zip
Fix "I can't reach that" in Indy3
svn-id: r5387
Diffstat (limited to 'scumm/script_v1.cpp')
-rw-r--r--scumm/script_v1.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/scumm/script_v1.cpp b/scumm/script_v1.cpp
index 30f50c147c..5170c9b276 100644
--- a/scumm/script_v1.cpp
+++ b/scumm/script_v1.cpp
@@ -1250,10 +1250,17 @@ void Scumm::o5_getActorRoom()
void Scumm::o5_getActorScale()
{
+ // INDY3 uses this opcode as a wait_for_actor();
if (_gameId == GID_INDY3_256) {
- getVarOrDirectByte(0x80); /*FIXME: missing stuff here */
- return;
+ byte *oldaddr = _scriptPointer - 1;
+
+ if (derefActorSafe(getVarOrDirectByte(0x80), "o5_wait")->moving) {
+ _scriptPointer = oldaddr;
+ o5_breakHere();
+ }
+ return;
}
+
getResultPos();
setResult(derefActorSafe(getVarOrDirectByte(0x80), "o5_getActorScale")->scalex);
}