aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions
diff options
context:
space:
mode:
authorjohndoe1232015-12-15 16:41:55 +0100
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit2f80bd0e2b4ab747792d5cdd3c548ba1963a6e00 (patch)
treef30a05644570f132512cc8d42bd0ea3759ff3dfc /engines/illusions
parent6b80f5b85349fc2bd645da52c4e68a337894f38a (diff)
downloadscummvm-rg350-2f80bd0e2b4ab747792d5cdd3c548ba1963a6e00.tar.gz
scummvm-rg350-2f80bd0e2b4ab747792d5cdd3c548ba1963a6e00.tar.bz2
scummvm-rg350-2f80bd0e2b4ab747792d5cdd3c548ba1963a6e00.zip
ILLUSIONS: BBDOU: Implement opcodes 18, 19
Diffstat (limited to 'engines/illusions')
-rw-r--r--engines/illusions/bbdou/illusions_bbdou.cpp10
-rw-r--r--engines/illusions/bbdou/illusions_bbdou.h3
-rw-r--r--engines/illusions/bbdou/scriptopcodes_bbdou.cpp12
-rw-r--r--engines/illusions/bbdou/scriptopcodes_bbdou.h2
4 files changed, 25 insertions, 2 deletions
diff --git a/engines/illusions/bbdou/illusions_bbdou.cpp b/engines/illusions/bbdou/illusions_bbdou.cpp
index 8466780ab0..bacd53ed62 100644
--- a/engines/illusions/bbdou/illusions_bbdou.cpp
+++ b/engines/illusions/bbdou/illusions_bbdou.cpp
@@ -567,6 +567,16 @@ void IllusionsEngine_BBDOU::dumpActiveScenes(uint32 sceneId, uint32 threadId) {
_camera->clearCameraModeStack();
}
+void IllusionsEngine_BBDOU::enterMenuPause() {
+ // TODO suspendAudio();
+ _screenText->clearText();
+}
+
+void IllusionsEngine_BBDOU::leaveMenuPause() {
+ _screenText->removeText();
+ // TODO unsuspendAudio();
+}
+
void IllusionsEngine_BBDOU::setSceneIdThreadId(uint32 theSceneId, uint32 theThreadId) {
_theSceneId = theSceneId;
_theThreadId = theThreadId;
diff --git a/engines/illusions/bbdou/illusions_bbdou.h b/engines/illusions/bbdou/illusions_bbdou.h
index 65d9e2630d..00ce617596 100644
--- a/engines/illusions/bbdou/illusions_bbdou.h
+++ b/engines/illusions/bbdou/illusions_bbdou.h
@@ -129,6 +129,9 @@ public:
void leavePause(uint32 threadId);
void dumpActiveScenes(uint32 sceneId, uint32 threadId);
+ void enterMenuPause();
+ void leaveMenuPause();
+
void setSceneIdThreadId(uint32 theSceneId, uint32 theThreadId);
bool findTriggerCause(uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &codeOffs);
void reset();
diff --git a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
index e023fb3eee..93b6f8f192 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.cpp
@@ -72,8 +72,8 @@ void ScriptOpcodes_BBDOU::initOpcodes() {
OPCODE(15, opEndTalkThreads);
OPCODE(16, opLoadResource);
OPCODE(17, opUnloadResource);
- // TODO OPCODE(18, opPauseText);
- // TODO OPCODE(19, opResumeText);
+ OPCODE(18, opEnterMenuPause);
+ OPCODE(19, opLeaveMenuPause);
OPCODE(20, opEnterScene);
OPCODE(21, opLeaveScene);
// TODO OPCODE(22, opEnterPause);
@@ -259,6 +259,14 @@ void ScriptOpcodes_BBDOU::opUnloadResource(ScriptThread *scriptThread, OpCall &o
_vm->_resSys->unloadResourceById(resourceId);
}
+void ScriptOpcodes_BBDOU::opEnterMenuPause(ScriptThread *scriptThread, OpCall &opCall) {
+ _vm->enterMenuPause();
+}
+
+void ScriptOpcodes_BBDOU::opLeaveMenuPause(ScriptThread *scriptThread, OpCall &opCall) {
+ _vm->leaveMenuPause();
+}
+
void ScriptOpcodes_BBDOU::opEnterScene(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 20b6aff72e..7a73ebd576 100644
--- a/engines/illusions/bbdou/scriptopcodes_bbdou.h
+++ b/engines/illusions/bbdou/scriptopcodes_bbdou.h
@@ -53,6 +53,8 @@ protected:
void opEndTalkThreads(ScriptThread *scriptThread, OpCall &opCall);
void opLoadResource(ScriptThread *scriptThread, OpCall &opCall);
void opUnloadResource(ScriptThread *scriptThread, OpCall &opCall);
+ void opEnterMenuPause(ScriptThread *scriptThread, OpCall &opCall);
+ void opLeaveMenuPause(ScriptThread *scriptThread, OpCall &opCall);
void opEnterScene(ScriptThread *scriptThread, OpCall &opCall);
void opLeaveScene(ScriptThread *scriptThread, OpCall &opCall);
void opUnloadActiveScenes(ScriptThread *scriptThread, OpCall &opCall);