diff options
author | James Brown | 2002-11-03 07:09:05 +0000 |
---|---|---|
committer | James Brown | 2002-11-03 07:09:05 +0000 |
commit | b99afecb414421c25cd10bcbbd20eaef74c61b28 (patch) | |
tree | b407031b487dec48441299486a5aa5b8ebff4d54 /scumm/script_v1.cpp | |
parent | bb8172f7c9ce8e1007a30d5fd36fec76d4bc6886 (diff) | |
download | scummvm-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.cpp | 11 |
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); } |