From 0303b83ead46346cd74a9649384d8a2dde0e145b Mon Sep 17 00:00:00 2001 From: Eric Fry Date: Sat, 16 Jun 2018 14:41:37 +1000 Subject: ILLUSIONS: Pause actors when entering menu --- engines/illusions/duckman/illusions_duckman.cpp | 4 ++-- engines/illusions/duckman/menusystem_duckman.cpp | 5 ++++- engines/illusions/duckman/scriptopcodes_duckman.cpp | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) (limited to 'engines/illusions/duckman') 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) { -- cgit v1.2.3