From 4a42aba1fdf35515d253e588e98a0223bec1d78d Mon Sep 17 00:00:00 2001 From: Eric Fry Date: Fri, 8 Jun 2018 20:31:40 +1000 Subject: ILLUSIONS: Start on debug menu --- engines/illusions/duckman/menusystem_duckman.cpp | 21 +++++++++++++++++---- engines/illusions/duckman/menusystem_duckman.h | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'engines/illusions/duckman') diff --git a/engines/illusions/duckman/menusystem_duckman.cpp b/engines/illusions/duckman/menusystem_duckman.cpp index 79734f1c53..e7565189cc 100644 --- a/engines/illusions/duckman/menusystem_duckman.cpp +++ b/engines/illusions/duckman/menusystem_duckman.cpp @@ -84,8 +84,8 @@ BaseMenu *DuckmanMenuSystem::createMenuById(int menuId) { return createSaveCompleteMenu(); case kDuckmanOptionsMenu: return createOptionsMenu(); - case kDuckmanDebugMenu: - return createDebugMenu(); + case kDuckmanDebugPauseMenu: + return createDebugPauseMenu(); case kDuckmanAddRemoveInventoryMenu: return createAddRemoveInventoryMenu(); default: @@ -154,6 +154,14 @@ BaseMenu *DuckmanMenuSystem::createSaveCompleteMenu() { } BaseMenu *DuckmanMenuSystem::createDebugMenu() { + // TODO + BaseMenu *menu = new BaseMenu(this, 0x00120002, 0, 0, 0, 17, 1); + menu->addText("Debug Pause Menu"); + menu->addText("-----------------"); + return menu; +} + +BaseMenu *DuckmanMenuSystem::createDebugPauseMenu() { BaseMenu *menu = new BaseMenu(this, 0x00120002, 0, 0, 0, 17, 1); menu->addText("Debug Pause Menu"); menu->addText("-----------------"); @@ -161,6 +169,7 @@ BaseMenu *DuckmanMenuSystem::createDebugMenu() { menu->addMenuItem(new MenuItem("Add/Remove Inventory", new MenuActionEnterMenu(this, kDuckmanAddRemoveInventoryMenu))); return menu; } + typedef struct InventoryMenuItem { const char *name; uint32 objectId; @@ -209,8 +218,10 @@ int DuckmanMenuSystem::convertRootMenuId(uint32 menuId) { return kDuckmanMainMenu; case 0x180002: return kDuckmanPauseMenu; - case 0x180004: + case 0x180003: return kDuckmanDebugMenu; + case 0x180004: + return kDuckmanDebugPauseMenu; case 0x180005: return kDuckmanSaveCompleteMenu; /* @@ -261,7 +272,9 @@ MenuActionInventoryAddRemove::MenuActionInventoryAddRemove(BaseMenuSystem *menuS void MenuActionInventoryAddRemove::execute() { if (_vm->_scriptResource->_properties.get(kDebugInventoryItems[_choiceIndex].propertyId)) { - //TODO stop holding object in cursor. + if(_vm->_cursor._objectId == kDebugInventoryItems[_choiceIndex].objectId) { + _vm->stopCursorHoldingObject(); + } _vm->_scriptResource->_properties.set(kDebugInventoryItems[_choiceIndex].propertyId, false); } else { _vm->startCursorHoldingObject(kDebugInventoryItems[_choiceIndex].objectId, diff --git a/engines/illusions/duckman/menusystem_duckman.h b/engines/illusions/duckman/menusystem_duckman.h index 7bcf780c26..787ced350b 100644 --- a/engines/illusions/duckman/menusystem_duckman.h +++ b/engines/illusions/duckman/menusystem_duckman.h @@ -33,6 +33,7 @@ enum { kDuckmanOptionsMenu, kDuckmanPauseMenu, kDuckmanDebugMenu, + kDuckmanDebugPauseMenu, kDuckmanAddRemoveInventoryMenu, kDuckmanQueryQuitMenu, kDuckmanQueryRestartMenu, @@ -63,6 +64,7 @@ public://protected: BaseMenu *createQueryQuitMenu(); BaseMenu *createSaveCompleteMenu(); BaseMenu *createDebugMenu(); + BaseMenu *createDebugPauseMenu(); BaseMenu *createAddRemoveInventoryMenu(); int convertRootMenuId(uint32 menuId); virtual bool initMenuCursor(); -- cgit v1.2.3