aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/bbdou
diff options
context:
space:
mode:
Diffstat (limited to 'engines/illusions/bbdou')
-rw-r--r--engines/illusions/bbdou/scriptopcodes_bbdou.cpp11
-rw-r--r--engines/illusions/bbdou/scriptopcodes_bbdou.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
index 1c3a8ea283..eb37025631 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
@@ -106,7 +106,7 @@ void ScriptOpcodes_BBDOU::initOpcodes() {
OPCODE(51, opStartMoveActor);
// 52 unused
OPCODE(53, opSetActorToNamedPoint);
- // TODO OPCODE(54, opSetActorPosition);
+ OPCODE(54, opSetActorPosition);
// 55 unused
OPCODE(56, opStartTalkThread);
OPCODE(57, opAppearActor);
@@ -511,6 +511,15 @@ void ScriptOpcodes_BBDOU::opSetActorToNamedPoint(ScriptThread *scriptThread, OpC
control->setActorPosition(pos);
}
+void ScriptOpcodes_BBDOU::opSetActorPosition(ScriptThread *scriptThread, OpCall &opCall) {
+ ARG_UINT32(objectId);
+ ARG_INT16(x);
+ ARG_INT16(y);
+ Control *control = _vm->_dict->getObjectControl(objectId);
+ Common::Point pos(x, y);
+ control->setActorPosition(pos);
+}
+
void ScriptOpcodes_BBDOU::opStartTalkThread(ScriptThread *scriptThread, OpCall &opCall) {
ARG_INT16(duration);
ARG_UINT32(objectId);
diff --git a/engines/illusions/bbdou/scriptopcodes_bbdou.h b/engines/illusions/bbdou/scriptopcodes_bbdou.h
index a51b685faa..d8e0e39731 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.h
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.h
@@ -82,6 +82,7 @@ protected:
void opStartSequenceActor(ScriptThread *scriptThread, OpCall &opCall);
void opStartMoveActor(ScriptThread *scriptThread, OpCall &opCall);
void opSetActorToNamedPoint(ScriptThread *scriptThread, OpCall &opCall);
+ void opSetActorPosition(ScriptThread *scriptThread, OpCall &opCall);
void opStartTalkThread(ScriptThread *scriptThread, OpCall &opCall);
void opAppearActor(ScriptThread *scriptThread, OpCall &opCall);
void opDisappearActor(ScriptThread *scriptThread, OpCall &opCall);