aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/duckman
diff options
context:
space:
mode:
authorEric Fry2018-06-16 14:41:37 +1000
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit0303b83ead46346cd74a9649384d8a2dde0e145b (patch)
tree4bdcf38fb86a4f60036b5cbdf49216b1ae2a5769 /engines/illusions/duckman
parentced1ff2356391f24c70f9bb4c514733aeadfc38b (diff)
downloadscummvm-rg350-0303b83ead46346cd74a9649384d8a2dde0e145b.tar.gz
scummvm-rg350-0303b83ead46346cd74a9649384d8a2dde0e145b.tar.bz2
scummvm-rg350-0303b83ead46346cd74a9649384d8a2dde0e145b.zip
ILLUSIONS: Pause actors when entering menu
Diffstat (limited to 'engines/illusions/duckman')
-rw-r--r--engines/illusions/duckman/illusions_duckman.cpp4
-rw-r--r--engines/illusions/duckman/menusystem_duckman.cpp5
-rw-r--r--engines/illusions/duckman/scriptopcodes_duckman.cpp4
3 files changed, 10 insertions, 3 deletions
diff --git a/engines/illusions/duckman/illusions_duckman.cpp b/engines/illusions/duckman/illusions_duckman.cpp
index c427293b59..a93ec274b5 100644
--- a/engines/illusions/duckman/illusions_duckman.cpp
+++ b/engines/illusions/duckman/illusions_duckman.cpp
@@ -942,13 +942,13 @@ void IllusionsEngine_Duckman::pause(uint32 callerThreadId) {
_threads->pauseThreads(callerThreadId);
_camera->pause();
pauseFader();
- // TODO largeObj_pauseControlActor(Illusions::CURSOR_OBJECT_ID);
+ _controls->pauseActors(Illusions::CURSOR_OBJECT_ID);
}
}
void IllusionsEngine_Duckman::unpause(uint32 callerThreadId) {
if (--_pauseCtr == 0) {
- // TODO largeObj_unpauseControlActor(Illusions::CURSOR_OBJECT_ID);
+ _controls->unpauseActors(Illusions::CURSOR_OBJECT_ID);
unpauseFader();
_camera->unpause();
_threads->unpauseThreads(callerThreadId);
diff --git a/engines/illusions/duckman/menusystem_duckman.cpp b/engines/illusions/duckman/menusystem_duckman.cpp
index 554be9aac5..7cadd7ebf5 100644
--- a/engines/illusions/duckman/menusystem_duckman.cpp
+++ b/engines/illusions/duckman/menusystem_duckman.cpp
@@ -107,7 +107,7 @@ BaseMenu *DuckmanMenuSystem::createLoadGameMenu() {
}
BaseMenu *DuckmanMenuSystem::createOptionsMenu() {
- BaseMenu *menu = new BaseMenu(this, 0x00120003, 12, 17, 11, 27, 1);
+ BaseMenu *menu = new BaseMenu(this, 0x00120003, 12, 17, 11, 27, 6);
menu->addText(" GAME OPTIONS @@@@");
menu->addText("--------------------------------------");
MenuActionUpdateSlider *action = new MenuActionUpdateSlider(this, menu);
@@ -130,6 +130,9 @@ BaseMenu *DuckmanMenuSystem::createOptionsMenu() {
action->setMenuItem(menuItem);
menu->addMenuItem(menuItem);
+ menu->addMenuItem(new MenuItem("Restore Defaults", new MenuActionLeaveMenu(this)));
+
+ menu->addMenuItem(new MenuItem("Back", new MenuActionLeaveMenu(this)));
return menu;
}
diff --git a/engines/illusions/duckman/scriptopcodes_duckman.cpp b/engines/illusions/duckman/scriptopcodes_duckman.cpp
index 9ac0b9a0ad..66b45ad151 100644
--- a/engines/illusions/duckman/scriptopcodes_duckman.cpp
+++ b/engines/illusions/duckman/scriptopcodes_duckman.cpp
@@ -350,11 +350,15 @@ void ScriptOpcodes_Duckman::opEnterDebugger(ScriptThread *scriptThread, OpCall &
// Used for debugging purposes in the original engine
// This is not supported and only reachable by code not implemented here!
//error("ScriptOpcodes_Duckman::opEnterDebugger() Debugger function called");
+ _vm->_controls->disappearActors();
+ // TODO more logic needed here
}
void ScriptOpcodes_Duckman::opLeaveDebugger(ScriptThread *scriptThread, OpCall &opCall) {
// See opEnterDebugger
//error("ScriptOpcodes_Duckman::opLeaveDebugger() Debugger function called");
+ _vm->_controls->appearActors();
+ // TODO more logic needed here
}
void ScriptOpcodes_Duckman::opDumpCurrentSceneFiles(ScriptThread *scriptThread, OpCall &opCall) {