aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h1
-rw-r--r--scumm/script_c64.cpp18
2 files changed, 15 insertions, 4 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 4f9bc35b1c..fc1c9baa00 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -408,6 +408,7 @@ protected:
void o_getDist();
void o_isNotEqual();
void o_loadSound();
+ void o_animateActor();
void o_putActorAtObject();
void o_unknown13();
void o_clearState08();
diff --git a/scumm/script_c64.cpp b/scumm/script_c64.cpp
index 63403c9d0d..72cdf12ffe 100644
--- a/scumm/script_c64.cpp
+++ b/scumm/script_c64.cpp
@@ -57,7 +57,7 @@ void ScummEngine_c64::setupOpcodes() {
OPCODE(o2_ifNotState08),
/* 10 */
OPCODE(o5_breakHere),
- OPCODE(o2_animateActor),
+ OPCODE(o_animateActor),
OPCODE(o2_panCameraTo),
OPCODE(o_unknown13),
/* 14 */
@@ -137,7 +137,7 @@ void ScummEngine_c64::setupOpcodes() {
OPCODE(o2_ifState08),
/* 50 */
OPCODE(o2_pickupObject),
- OPCODE(o2_animateActor),
+ OPCODE(o_animateActor),
OPCODE(o5_actorFollowCamera),
OPCODE(o_unknown53),
/* 54 */
@@ -217,7 +217,7 @@ void ScummEngine_c64::setupOpcodes() {
OPCODE(o2_ifNotState08),
/* 90 */
OPCODE(o_pickupObject),
- OPCODE(o2_animateActor),
+ OPCODE(o_animateActor),
OPCODE(o2_panCameraTo),
OPCODE(o_unknown93),
/* 94 */
@@ -297,7 +297,7 @@ void ScummEngine_c64::setupOpcodes() {
OPCODE(o2_ifState08),
/* D0 */
OPCODE(o2_pickupObject),
- OPCODE(o2_animateActor),
+ OPCODE(o_animateActor),
OPCODE(o5_actorFollowCamera),
OPCODE(o2_actorOps),
/* D4 */
@@ -643,6 +643,16 @@ void ScummEngine_c64::o_pickupObject() {
runInventoryScript(1);
}
+void ScummEngine_c64::o_animateActor() {
+ int act = getVarOrDirectByte(PARAM_1);
+ int anim = getVarOrDirectByte(PARAM_2);
+ int unk = fetchScriptByte();
+ debug(0,"o_animateActor: unk %d", unk);
+
+ Actor *a = derefActor(act, "o_animateActor");
+ a->animateActor(anim);
+}
+
void ScummEngine_c64::o_putActorAtObject() {
int obj, x, y;
Actor *a;