Ticket #8143: parrot-fix3.diff

File parrot-fix3.diff, 1.4 KB (added by eriktorbjorn, 18 years ago)

Patch implementing method 3 fix

  • scummvm/scumm/script_v1.cpp

    diff -ur ScummVM-cvs20021206/scummvm/scumm/script_v1.cpp ScummVM-cvs20021206+hack/scummvm/scumm/script_v1.cpp
    old new  
    23302330                _opcode = fetchScriptByte();
    23312331
    23322332        switch (_opcode & 0x1F) {
    2333         case 1:                                                                                 /* wait for actor */
    2334                 if (derefActorSafe(getVarOrDirectByte(0x80), "o5_wait")->moving)
    2335                         break;
    2336                 return;
     2333        case 1: {                                                                               /* wait for actor */
     2334                        Actor *a = derefActorSafe(getVarOrDirectByte(0x80), "o5_wait");
     2335                        if (a && a->isInCurrentRoom() && a->moving)
     2336                                break;
     2337                        return;
     2338                }
    23372339        case 2:                                                                                 /* wait for message */
    23382340                if (_vars[VAR_HAVE_MSG])
    23392341                        break;
  • scummvm/scumm/script_v2.cpp

    diff -ur ScummVM-cvs20021206/scummvm/scumm/script_v2.cpp ScummVM-cvs20021206+hack/scummvm/scumm/script_v2.cpp
    old new  
    20322032{
    20332033        switch (fetchScriptByte()) {
    20342034        case 168:{
     2035                        Actor *a = derefActorSafe(pop(), "o6_wait");
    20352036                        int offs = (int16)fetchScriptWord();
    2036                         if (derefActorSafe(pop(), "o6_wait")->moving) {
     2037                        if (a && a->isInCurrentRoom() && a->moving) {
    20372038                                _scriptPointer += offs;
    20382039                                o6_breakHere();
    20392040                        }