diff options
-rw-r--r-- | scumm/intern.h | 1 | ||||
-rw-r--r-- | scumm/script_c64.cpp | 14 |
2 files changed, 13 insertions, 2 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index a7165852b0..965933110c 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -422,6 +422,7 @@ protected: void o_clearState08(); void o_stopCurrentScript(); void o_loadSound(); + void o_getActorMoving(); void o_animateActor(); void o_putActorAtObject(); void o_unknown13(); diff --git a/scumm/script_c64.cpp b/scumm/script_c64.cpp index 2ce6a89672..6c03abdd4f 100644 --- a/scumm/script_c64.cpp +++ b/scumm/script_c64.cpp @@ -143,7 +143,7 @@ void ScummEngine_c64::setupOpcodes() { /* 54 */ OPCODE(o5_setObjectName), OPCODE(o2_actorFromPos), - OPCODE(o5_getActorMoving), + OPCODE(o_getActorMoving), OPCODE(o_clearState08), /* 58 */ OPCODE(o_beginOverride), @@ -303,7 +303,7 @@ void ScummEngine_c64::setupOpcodes() { /* D4 */ OPCODE(o5_setObjectName), OPCODE(o2_actorFromPos), - OPCODE(o5_getActorMoving), + OPCODE(o_getActorMoving), OPCODE(o_setState08), /* D8 */ OPCODE(o_stopCurrentScript), @@ -533,6 +533,16 @@ void ScummEngine_c64::o_animateActor() { a->animateActor(anim); } +void ScummEngine_c64::o_getActorMoving() { + getResultPos(); + int act = getVarOrDirectByte(PARAM_1); + Actor *a = derefActor(act, "o_getActorMoving"); + if (a->_moving) + setResult(1); + else + setResult(2); +} + void ScummEngine_c64::o_putActorAtObject() { int obj, x, y; Actor *a; |