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.cpp13
-rw-r--r--engines/illusions/bbdou/scriptopcodes_bbdou.h2
2 files changed, 13 insertions, 2 deletions
diff --git a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
index 93b6f8f192..1c3a8ea283 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
@@ -76,8 +76,8 @@ void ScriptOpcodes_BBDOU::initOpcodes() {
OPCODE(19, opLeaveMenuPause);
OPCODE(20, opEnterScene);
OPCODE(21, opLeaveScene);
- // TODO OPCODE(22, opEnterPause);
- // TODO OPCODE(23, opLeavePause);
+ OPCODE(22, opEnterPause);
+ OPCODE(23, opLeavePause);
OPCODE(24, opUnloadActiveScenes);
OPCODE(25, opChangeScene);
OPCODE(26, opStartModalScene);
@@ -284,6 +284,15 @@ void ScriptOpcodes_BBDOU::opLeaveScene(ScriptThread *scriptThread, OpCall &opCal
_vm->exitScene(opCall._callerThreadId);
}
+void ScriptOpcodes_BBDOU::opEnterPause(ScriptThread *scriptThread, OpCall &opCall) {
+ _vm->enterPause(opCall._callerThreadId);
+ _vm->_talkItems->pauseBySceneId(_vm->getCurrentScene());
+}
+
+void ScriptOpcodes_BBDOU::opLeavePause(ScriptThread *scriptThread, OpCall &opCall) {
+ _vm->leavePause(opCall._callerThreadId);
+}
+
void ScriptOpcodes_BBDOU::opUnloadActiveScenes(ScriptThread *scriptThread, OpCall &opCall) {
ARG_SKIP(2);
ARG_UINT32(sceneId);
diff --git a/engines/illusions/bbdou/scriptopcodes_bbdou.h b/engines/illusions/bbdou/scriptopcodes_bbdou.h
index 7a73ebd576..a51b685faa 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.h
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.h
@@ -57,6 +57,8 @@ protected:
void opLeaveMenuPause(ScriptThread *scriptThread, OpCall &opCall);
void opEnterScene(ScriptThread *scriptThread, OpCall &opCall);
void opLeaveScene(ScriptThread *scriptThread, OpCall &opCall);
+ void opEnterPause(ScriptThread *scriptThread, OpCall &opCall);
+ void opLeavePause(ScriptThread *scriptThread, OpCall &opCall);
void opUnloadActiveScenes(ScriptThread *scriptThread, OpCall &opCall);
void opChangeScene(ScriptThread *scriptThread, OpCall &opCall);
void opStartModalScene(ScriptThread *scriptThread, OpCall &opCall);