aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/duckman
diff options
context:
space:
mode:
authorEric Fry2018-06-08 20:31:40 +1000
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit4a42aba1fdf35515d253e588e98a0223bec1d78d (patch)
treec77d3488f6e829016d24dd56652bbc329f572c2f /engines/illusions/duckman
parent83994972de35193e10ad01acac3369f1b00c992b (diff)
downloadscummvm-rg350-4a42aba1fdf35515d253e588e98a0223bec1d78d.tar.gz
scummvm-rg350-4a42aba1fdf35515d253e588e98a0223bec1d78d.tar.bz2
scummvm-rg350-4a42aba1fdf35515d253e588e98a0223bec1d78d.zip
ILLUSIONS: Start on debug menu
Diffstat (limited to 'engines/illusions/duckman')
-rw-r--r--engines/illusions/duckman/menusystem_duckman.cpp21
-rw-r--r--engines/illusions/duckman/menusystem_duckman.h2
2 files changed, 19 insertions, 4 deletions
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();