Patch 650135 (method 3): FOA parrot hang

svn-id: r6185
This commit is contained in:
James Brown 2002-12-27 00:23:45 +00:00
parent c9aff94855
commit 1dab4170a9
2 changed files with 13 additions and 10 deletions

View File

@ -2348,10 +2348,12 @@ void Scumm_v5::o5_wait()
_opcode = fetchScriptByte();
switch (_opcode & 0x1F) {
case 1: /* wait for actor */
if (derefActorSafe(getVarOrDirectByte(0x80), "o5_wait")->moving)
break;
return;
case 1: { /* wait for actor */
Actor *a = derefActorSafe(getVarOrDirectByte(0x80), "o5_wait");
if (a && a->isInCurrentRoom() && a->moving)
break;
return;
}
case 2: /* wait for message */
if (_vars[VAR_HAVE_MSG])
break;

View File

@ -2072,13 +2072,14 @@ void Scumm_v6::o6_wait()
{
switch (fetchScriptByte()) {
case 168:{
int offs = fetchScriptWordSigned();
if (derefActorSafe(pop(), "o6_wait")->moving) {
_scriptPointer += offs;
o6_breakHere();
}
return;
Actor *a = derefActorSafe(pop(), "o6_wait");
int offs = (int16)fetchScriptWord();
if (a && a->isInCurrentRoom() && a->moving) {
_scriptPointer += offs;
o6_breakHere();
}
return;
}
case 169:
// HACK: For Conroy Bumpus' song in Sam & Max.
// During the song three calls to o6_wait() appear,