diff -ur ScummVM-cvs20030121/scummvm/scumm/actor.h ScummVM-cvs20030121+hack/scummvm/scumm/actor.h
old
|
new
|
|
127 | 127 | |
128 | 128 | void setBox(int box); |
129 | 129 | int updateActorDirection(bool is_walking); |
130 | | void adjustActorPos(); |
131 | 130 | |
132 | 131 | public: |
| 132 | void adjustActorPos(); |
133 | 133 | AdjustBoxResult adjustXYToBeInBox(int dstX, int dstY, int pathfrom); |
134 | 134 | |
135 | 135 | void setDirection(int direction); |
diff -ur ScummVM-cvs20030121/scummvm/scumm/intern.h ScummVM-cvs20030121+hack/scummvm/scumm/intern.h
old
|
new
|
|
416 | 416 | void o8_blastText(); |
417 | 417 | |
418 | 418 | void o8_cursorCommand(); |
| 419 | void o8_createBoxMatrix(); |
419 | 420 | void o8_resourceRoutines(); |
420 | 421 | void o8_roomOps(); |
421 | 422 | void o8_actorOps(); |
diff -ur ScummVM-cvs20030121/scummvm/scumm/script_v8.cpp ScummVM-cvs20030121+hack/scummvm/scumm/script_v8.cpp
old
|
new
|
|
249 | 249 | OPCODE(o6_pickupObject), |
250 | 250 | OPCODE(o6_setBoxFlags), |
251 | 251 | /* A8 */ |
252 | | OPCODE(o6_createBoxMatrix), |
| 252 | OPCODE(o8_createBoxMatrix), |
253 | 253 | OPCODE(o6_invalid), |
254 | 254 | OPCODE(o8_resourceRoutines), |
255 | 255 | OPCODE(o8_roomOps), |
… |
… |
|
865 | 865 | _vars[VAR_USERPUT] = _userPut; |
866 | 866 | } |
867 | 867 | |
| 868 | void Scumm_v8::o8_createBoxMatrix() |
| 869 | { |
| 870 | Actor *a; |
| 871 | |
| 872 | createBoxMatrix(); |
| 873 | |
| 874 | // FIXME: Is this the right thing to do? In CMI, Guybrush gets trapped |
| 875 | // in an invisible walkbox when room-9-2000 changes the walkbox flags, |
| 876 | // and this is an attempt to set him right again. |
| 877 | warning("o8_createBoxMatrix: Adjusting ego actor position"); |
| 878 | a = derefActorSafe(_vars[VAR_EGO], "o8_createBoxMatrix"); |
| 879 | if (a) |
| 880 | a->adjustActorPos(); |
| 881 | } |
| 882 | |
868 | 883 | void Scumm_v8::o8_resourceRoutines() |
869 | 884 | { |
870 | 885 | // TODO |