From 2bfb8266296519485b8b9d729494634098a5c448 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 31 Jul 2022 18:11:54 +1000 Subject: [PATCH] Identify menu item flags --- src/game/activemenu.c | 11 +- src/game/cheats.c | 736 ++++- src/game/endscreen.c | 653 ++++- src/game/filemgr.c | 899 +++++- src/game/fmb.c | 667 ++++- src/game/mainmenu.c | 1990 +++++++++++-- src/game/menu.c | 410 ++- src/game/menuitem.c | 76 +- src/game/mplayer/ingame.c | 372 ++- src/game/mplayer/scenarios.c | 22 +- src/game/mplayer/scenarios/capturethecase.inc | 101 +- src/game/mplayer/scenarios/combat.inc | 101 +- src/game/mplayer/scenarios/hackthatmac.inc | 110 +- .../mplayer/scenarios/holdthebriefcase.inc | 110 +- src/game/mplayer/scenarios/kingofthehill.inc | 119 +- src/game/mplayer/scenarios/popacap.inc | 110 +- src/game/mplayer/setup.c | 2530 +++++++++++++++-- src/game/trainingmenus.c | 1031 ++++++- src/include/constants.h | 54 +- 19 files changed, 8729 insertions(+), 1373 deletions(-) diff --git a/src/game/activemenu.c b/src/game/activemenu.c index ebb5fb503..bb528e4f8 100644 --- a/src/game/activemenu.c +++ b/src/game/activemenu.c @@ -217,8 +217,15 @@ s32 amPickTargetMenuDialog(s32 operation, struct menudialogdef *dialogdef, union } struct menuitem g_AmPickTargetMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x0000005a, 0x00000000, amPickTargetMenuList }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x0000005a, + 0, + amPickTargetMenuList, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AmPickTargetMenuDialog = { diff --git a/src/game/cheats.c b/src/game/cheats.c index e6c1c27f3..d38f4b913 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -439,10 +439,31 @@ s32 cheatMenuHandleDialog(s32 operation, struct menudialogdef *dialogdef, union } struct menuitem g_CheatsWarningMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_479, 0x00000000, NULL }, // "If you activate any cheats, then you will be unable to progress further in the game while those cheats are active." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_480, 0x00000000, NULL }, // "OK" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_481, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_479, // "If you activate any cheats, then you will be unable to progress further in the game while those cheats are active." + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_480, // "OK" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_481, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsWarningMenuDialog = { @@ -837,17 +858,87 @@ char *cheatGetName(s32 cheat_id) #endif struct menuitem g_CheatsFunMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, CHEAT_DKMODE, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SMALLJO, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SMALLCHARACTERS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_TEAMHEADSONLY, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_PLAYASELVIS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SLOMO, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&cheatGetMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_DKMODE, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SMALLJO, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SMALLCHARACTERS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_TEAMHEADSONLY, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PLAYASELVIS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SLOMO, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&cheatGetMarquee, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsFunMenuDialog = { @@ -860,19 +951,103 @@ struct menudialogdef g_CheatsFunMenuDialog = { }; struct menuitem g_CheatsGameplayMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, CHEAT_INVINCIBLE, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_CLOAKINGDEVICE, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_MARQUIS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_JOSHIELD, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SUPERSHIELD, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_ENEMYSHIELDS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_ENEMYROCKETS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_PERFECTDARKNESS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&cheatGetMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_INVINCIBLE, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_CLOAKINGDEVICE, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_MARQUIS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_JOSHIELD, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SUPERSHIELD, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ENEMYSHIELDS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ENEMYROCKETS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PERFECTDARKNESS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&cheatGetMarquee, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsGameplayMenuDialog = { @@ -885,19 +1060,103 @@ struct menudialogdef g_CheatsGameplayMenuDialog = { }; struct menuitem g_CheatsSoloWeaponsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, CHEAT_ROCKETLAUNCHER, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SNIPERRIFLE, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_SUPERDRAGON, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_LAPTOPGUN, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_PHOENIX, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_PSYCHOSISGUN, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_TRENTSMAGNUM, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_FARSIGHT, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&cheatGetMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ROCKETLAUNCHER, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SNIPERRIFLE, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_SUPERDRAGON, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_LAPTOPGUN, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PHOENIX, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PSYCHOSISGUN, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_TRENTSMAGNUM, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_FARSIGHT, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&cheatGetMarquee, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsSoloWeaponsMenuDialog = { @@ -910,19 +1169,103 @@ struct menudialogdef g_CheatsSoloWeaponsMenuDialog = { }; struct menuitem g_CheatsClassicWeaponsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, CHEAT_PP9I, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_CC13, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_KL01313, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_KF7SPECIAL, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_ZZT, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_DMC, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_AR53, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_RCP45, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, L_MPWEAPONS_144, 0x00000000, NULL }, // "Win Golds on the firing range to enable classic guns." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PP9I, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_CC13, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_KL01313, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_KF7SPECIAL, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ZZT, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_DMC, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_AR53, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_RCP45, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x000000c8, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + L_MPWEAPONS_144, // "Win Golds on the firing range to enable classic guns." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x000000c8, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsClassicWeaponsMenuDialog = { @@ -935,19 +1278,103 @@ struct menudialogdef g_CheatsClassicWeaponsMenuDialog = { }; struct menuitem g_CheatsWeaponsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, CHEAT_CLASSICSIGHT, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_UNLIMITEDAMMOLAPTOP, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_HURRICANEFISTS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_UNLIMITEDAMMO, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_UNLIMITEDAMMONORELOADS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_XRAYSCANNER, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_RTRACKER, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_CHECKBOX, CHEAT_ALLGUNS, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatCheckboxMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&cheatGetMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_CLASSICSIGHT, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_UNLIMITEDAMMOLAPTOP, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_HURRICANEFISTS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_UNLIMITEDAMMO, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_UNLIMITEDAMMONORELOADS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_XRAYSCANNER, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_RTRACKER, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ALLGUNS, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatCheckboxMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&cheatGetMarquee, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsWeaponsMenuDialog = { @@ -960,16 +1387,79 @@ struct menudialogdef g_CheatsWeaponsMenuDialog = { }; struct menuitem g_CheatsBuddiesMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_117, 0x00000000, cheatMenuHandleBuddyCheckbox }, // "Velvet Dark" - { MENUITEMTYPE_CHECKBOX, CHEAT_PUGILIST, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox }, - { MENUITEMTYPE_CHECKBOX, CHEAT_HOTSHOT, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox }, - { MENUITEMTYPE_CHECKBOX, CHEAT_HITANDRUN, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox }, - { MENUITEMTYPE_CHECKBOX, CHEAT_ALIEN, 0x00000000, (u32)&cheatGetNameIfUnlocked, 0x00000000, cheatMenuHandleBuddyCheckbox }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&cheatGetMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_117, // "Velvet Dark" + 0, + cheatMenuHandleBuddyCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_PUGILIST, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatMenuHandleBuddyCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_HOTSHOT, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatMenuHandleBuddyCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_HITANDRUN, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatMenuHandleBuddyCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + CHEAT_ALIEN, + 0, + (u32)&cheatGetNameIfUnlocked, + 0, + cheatMenuHandleBuddyCheckbox, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&cheatGetMarquee, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsBuddiesMenuDialog = { @@ -982,17 +1472,87 @@ struct menudialogdef g_CheatsBuddiesMenuDialog = { }; struct menuitem g_CheatsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_118, 0x00000000, (void *)&g_CheatsFunMenuDialog }, // "Fun" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_119, 0x00000000, (void *)&g_CheatsGameplayMenuDialog }, // "Gameplay" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_122, 0x00000000, (void *)&g_CheatsSoloWeaponsMenuDialog }, // "Weapons for Jo in Solo" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_123, 0x00000000, (void *)&g_CheatsClassicWeaponsMenuDialog }, // "Classic Weapons for Jo in Solo" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_120, 0x00000000, (void *)&g_CheatsWeaponsMenuDialog }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_121, 0x00000000, (void *)&g_CheatsBuddiesMenuDialog }, // "Buddies" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_217, 0x00000000, cheatMenuHandleTurnOffAllCheats }, // "Turn off all Cheats" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000096, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_477, 0x00000000, NULL }, // "Done" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_118, // "Fun" + 0, + (void *)&g_CheatsFunMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_119, // "Gameplay" + 0, + (void *)&g_CheatsGameplayMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_122, // "Weapons for Jo in Solo" + 0, + (void *)&g_CheatsSoloWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_123, // "Classic Weapons for Jo in Solo" + 0, + (void *)&g_CheatsClassicWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_120, // "Weapons" + 0, + (void *)&g_CheatsWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_121, // "Buddies" + 0, + (void *)&g_CheatsBuddiesMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_217, // "Turn off all Cheats" + 0, + cheatMenuHandleTurnOffAllCheats, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000096, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_477, // "Done" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CheatsMenuDialog = { diff --git a/src/game/endscreen.c b/src/game/endscreen.c index 8821b9c16..f548971ba 100644 --- a/src/game/endscreen.c +++ b/src/game/endscreen.c @@ -137,10 +137,31 @@ s32 endscreenHandleReplayPreviousMission(s32 operation, struct menuitem *item, u } struct menuitem g_RetryMissionMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_298, 0x00000000, menuhandlerAcceptMission }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_299, 0x00000000, endscreenHandleDeclineMission }, // "Decline" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 1, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_298, // "Accept" + 0, + menuhandlerAcceptMission, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_299, // "Decline" + 0, + endscreenHandleDeclineMission, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_RetryMissionMenuDialog = { @@ -153,12 +174,47 @@ struct menudialogdef g_RetryMissionMenuDialog = { }; struct menuitem g_NextMissionMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_298, 0x00000000, menuhandlerAcceptMission }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_299, 0x00000000, endscreenHandleDeclineMission }, // "Decline" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MISC_470, 0x00000000, endscreenHandleReplayPreviousMission }, // "Replay Previous Mission" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 1, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_298, // "Accept" + 0, + menuhandlerAcceptMission, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_299, // "Decline" + 0, + endscreenHandleDeclineMission, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MISC_470, // "Replay Previous Mission" + 0, + endscreenHandleReplayPreviousMission, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_NextMissionMenuDialog = { @@ -401,17 +457,59 @@ s32 endscreenHandleReplayLastLevel(s32 operation, struct menuitem *item, union h #endif struct menuitem g_2PMissionEndscreenObjectivesVMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 2, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_301, 0x00000000, NULL }, // "Press START" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 2, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_301, // "Press START" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_SoloEndscreenObjectivesMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_301, 0x00000000, NULL }, // "Press START" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_301, // "Press START" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloEndscreenObjectivesFailedMenuDialog = { @@ -466,9 +564,23 @@ s32 endscreenHandleContinueMission(s32 operation, struct menuitem *item, union h #if VERSION >= VERSION_NTSC_1_0 struct menuitem g_MissionContinueOrReplyMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_244, 0x00000000, endscreenHandleContinueMission }, // "Continue" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_245, 0x00000000, endscreenHandleReplayLastLevel }, // "Replay Last Level" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_244, // "Continue" + 0, + endscreenHandleContinueMission, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_245, // "Replay Last Level" + 0, + endscreenHandleReplayLastLevel, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MissionContinueOrReplyMenuDialog = { @@ -689,29 +801,183 @@ s32 endscreenHandle2PFailed(s32 operation, struct menudialogdef *dialogdef, unio } struct menuitem g_2PMissionEndscreenVMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_OPTIONS_278, 0x00000000, NULL }, // "Mission Status:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&endscreenMenuTextMissionStatus, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_OPTIONS_279, 0x00000000, NULL }, // "Agent Status:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&endscreenMenuTextAgentStatus, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_OPTIONS_280, 0x00000000, NULL }, // "Mission Time:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&endscreenMenuTextMissionTime, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPWEAPONS_129, 0x00000000, NULL }, // "Difficulty" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)soloMenuTextDifficulty, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_OPTIONS_281, 0x00000000, NULL }, // "Weapon of Choice:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextWeaponOfChoiceName, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_282, (u32)&endscreenMenuTextNumKills, NULL }, // "Kills:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_283, (u32)&endscreenMenuTextAccuracy, NULL }, // "Accuracy:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_284, (u32)&endscreenMenuTextNumShots, NULL }, // "Shot Total:" - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_OPTIONS_285, (u32)&endscreenMenuTextNumHeadShots, NULL }, // "Head Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_OPTIONS_286, (u32)&endscreenMenuTextNumBodyShots, NULL }, // "Body Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_OPTIONS_287, (u32)&endscreenMenuTextNumLimbShots, NULL }, // "Limb Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_OPTIONS_288, (u32)&endscreenMenuTextNumOtherShots, NULL }, // "Others:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_289, 0x00000000, NULL }, // "Press START" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_278, // "Mission Status:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&endscreenMenuTextMissionStatus, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_279, // "Agent Status:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&endscreenMenuTextAgentStatus, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_280, // "Mission Time:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&endscreenMenuTextMissionTime, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_MPWEAPONS_129, // "Difficulty:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)soloMenuTextDifficulty, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_281, // "Weapon of Choice:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&mpMenuTextWeaponOfChoiceName, + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_282, // "Kills:" + (u32)&endscreenMenuTextNumKills, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_283, // "Accuracy:" + (u32)&endscreenMenuTextAccuracy, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_284, // "Shot Total:" + (u32)&endscreenMenuTextNumShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_OPTIONS_285, // "Head Shots:" + (u32)&endscreenMenuTextNumHeadShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_OPTIONS_286, // "Body Shots:" + (u32)&endscreenMenuTextNumBodyShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_OPTIONS_287, // "Limb Shots:" + (u32)&endscreenMenuTextNumLimbShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_OPTIONS_288, // "Others:" + (u32)&endscreenMenuTextNumOtherShots, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_289, // "Press START" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; #if VERSION >= VERSION_NTSC_1_0 @@ -793,44 +1059,275 @@ s32 endscreenHandleCheatInfo(s32 operation, struct menuitem *item, union handler #endif struct menuitem g_MissionEndscreenMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_278, (u32)&endscreenMenuTextMissionStatus, NULL }, // "Mission Status:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_279, (u32)&endscreenMenuTextAgentStatus, NULL }, // "Agent Status:" + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_278, // "Mission Status:" + (u32)&endscreenMenuTextMissionStatus, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_279, // "Agent Status:" + (u32)&endscreenMenuTextAgentStatus, + NULL, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x01000000, L_OPTIONS_280, (u32)&endscreenMenuTextMissionTime, endscreenHandleCheatInfo }, // "Mission Time:" - { MENUITEMTYPE_LABEL, 1, 0x01000000, L_MPWEAPONS_242, (u32)&endscreenMenuTextTargetTime, endscreenHandleCheatInfo }, // "Target Time:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPWEAPONS_129, (u32)&soloMenuTextDifficulty, NULL }, // "Difficulty:" - { MENUITEMTYPE_SEPARATOR, 2, 0x00000000, 0x00000000, 0x00000000, endscreenHandleCheatInfo }, - { MENUITEMTYPE_LABEL, 2, 0x00000000, L_MPWEAPONS_243, 0x00000000, endscreenHandleCheatInfo }, // "New Cheat Available!:" - { MENUITEMTYPE_LABEL, 3, 0x01000020, (u32)&endscreenMenuTextTimedCheatName, 0x00000000, endscreenHandleCheatInfo }, - { MENUITEMTYPE_LABEL, 5, 0x01000020, (u32)&endscreenMenuTextCompletionCheatName, 0x00000000, endscreenHandleCheatInfo }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_281, (u32)&mpMenuTextWeaponOfChoiceName, NULL }, // "Weapon of Choice" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_282, (u32)&endscreenMenuTextNumKills, NULL }, // "Kills:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_283, (u32)&endscreenMenuTextAccuracy, NULL }, // "Accuracy:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_284, (u32)&endscreenMenuTextNumShots, NULL }, // "Shot Total:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_285, (u32)&endscreenMenuTextNumHeadShots, NULL }, // "Head Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_286, (u32)&endscreenMenuTextNumBodyShots, NULL }, // "Body Shots:" - { MENUITEMTYPE_LABEL, 6, 0x00000000, L_OPTIONS_287, (u32)&endscreenMenuTextNumLimbShots, endscreenHandleCheatInfo }, // "Limb Shots:" - { MENUITEMTYPE_LABEL, 4, 0x00000000, L_OPTIONS_288, (u32)&endscreenMenuTextNumOtherShots, endscreenHandleCheatInfo }, // "Others:" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + L_OPTIONS_280, // "Mission Time:" + (u32)&endscreenMenuTextMissionTime, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 1, + MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + L_MPWEAPONS_242, // "Target Time:" + (u32)&endscreenMenuTextTargetTime, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPWEAPONS_129, // "Difficulty:" + (u32)&soloMenuTextDifficulty, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 2, + 0, + 0, + 0, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 2, + 0, + L_MPWEAPONS_243, // "New Cheat Available!:" + 0, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 3, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + (u32)&endscreenMenuTextTimedCheatName, + 0, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 5, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + (u32)&endscreenMenuTextCompletionCheatName, + 0, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_281, // "Weapon of Choice:" + (u32)&mpMenuTextWeaponOfChoiceName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_282, // "Kills:" + (u32)&endscreenMenuTextNumKills, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_283, // "Accuracy:" + (u32)&endscreenMenuTextAccuracy, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_284, // "Shot Total:" + (u32)&endscreenMenuTextNumShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_285, // "Head Shots:" + (u32)&endscreenMenuTextNumHeadShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_286, // "Body Shots:" + (u32)&endscreenMenuTextNumBodyShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 6, + 0, + L_OPTIONS_287, // "Limb Shots:" + (u32)&endscreenMenuTextNumLimbShots, + endscreenHandleCheatInfo, + }, + { + MENUITEMTYPE_LABEL, + 4, + 0, + L_OPTIONS_288, // "Others:" + (u32)&endscreenMenuTextNumOtherShots, + endscreenHandleCheatInfo, + }, #else // NTSC beta's endscreen dialog lacks cheat information - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_280, (u32)&endscreenMenuTextMissionTime, NULL }, // "Mission Time:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPWEAPONS_129, (u32)&soloMenuTextDifficulty, NULL }, // "Difficulty:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_281, (u32)&mpMenuTextWeaponOfChoiceName, NULL }, // "Weapon of Choice" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_282, (u32)&endscreenMenuTextNumKills, NULL }, // "Kills:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_283, (u32)&endscreenMenuTextAccuracy, NULL }, // "Accuracy:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_284, (u32)&endscreenMenuTextNumShots, NULL }, // "Shot Total:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_285, (u32)&endscreenMenuTextNumHeadShots, NULL }, // "Head Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_286, (u32)&endscreenMenuTextNumBodyShots, NULL }, // "Body Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_287, (u32)&endscreenMenuTextNumLimbShots, NULL }, // "Limb Shots:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_288, (u32)&endscreenMenuTextNumOtherShots, NULL }, // "Others:" + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_280, // "Mission Time:" + (u32)&endscreenMenuTextMissionTime, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPWEAPONS_129, // "Difficulty:" + (u32)&soloMenuTextDifficulty, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_281, // "Weapon of Choice:" + (u32)&mpMenuTextWeaponOfChoiceName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_282, // "Kills:" + (u32)&endscreenMenuTextNumKills, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_283, // "Accuracy:" + (u32)&endscreenMenuTextAccuracy, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_284, // "Shot Total:" + (u32)&endscreenMenuTextNumShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_285, // "Head Shots:" + (u32)&endscreenMenuTextNumHeadShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_286, // "Body Shots:" + (u32)&endscreenMenuTextNumBodyShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_287, // "Limb Shots:" + (u32)&endscreenMenuTextNumLimbShots, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_288, // "Others:" + (u32)&endscreenMenuTextNumOtherShots, + NULL, + }, #endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_289, 0x00000000, NULL }, // "Press START" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_289, // "Press START" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; #if VERSION >= VERSION_NTSC_1_0 diff --git a/src/game/filemgr.c b/src/game/filemgr.c index 4b83d8c11..6097317cb 100644 --- a/src/game/filemgr.c +++ b/src/game/filemgr.c @@ -73,14 +73,63 @@ s32 filemgrHandleSetLanguage(s32 operation, struct menuitem *item, union handler } struct menuitem g_ChooseLanguageMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_MPWEAPONS_261, 0x00000000, 0x00000000 }, // "Choose your language:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_EN, 0x00000020, L_MPWEAPONS_262, 0x00000000, filemgrHandleSetLanguage }, // "English" - { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_FR, 0x00000020, L_MPWEAPONS_263, 0x00000000, filemgrHandleSetLanguage }, // "French" - { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_DE, 0x00000020, L_MPWEAPONS_264, 0x00000000, filemgrHandleSetLanguage }, // "German" - { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_IT, 0x00000020, L_MPWEAPONS_265, 0x00000000, filemgrHandleSetLanguage }, // "Italian" - { MENUITEMTYPE_SELECTABLE, LANGUAGE_PAL_ES, 0x00000020, L_MPWEAPONS_266, 0x00000000, filemgrHandleSetLanguage }, // "Spanish" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_MPWEAPONS_261, // "Choose your language:" + 0, + 0, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + 0, + }, + { + MENUITEMTYPE_SELECTABLE, + LANGUAGE_PAL_EN, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_262, // "English" + 0, + filemgrHandleSetLanguage, + }, + { + MENUITEMTYPE_SELECTABLE, + LANGUAGE_PAL_FR, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_263, // "French" + 0, + filemgrHandleSetLanguage, + }, + { + MENUITEMTYPE_SELECTABLE, + LANGUAGE_PAL_DE, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_264, // "German" + 0, + filemgrHandleSetLanguage, + }, + { + MENUITEMTYPE_SELECTABLE, + LANGUAGE_PAL_IT, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_265, // "Italian" + 0, + filemgrHandleSetLanguage, + }, + { + MENUITEMTYPE_SELECTABLE, + LANGUAGE_PAL_ES, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_266, // "Spanish" + 0, + filemgrHandleSetLanguage, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_ChooseLanguageMenuDialog = { @@ -321,10 +370,31 @@ void filemgrPushErrorDialog(u16 errno) } struct menuitem g_FilemgrErrorMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextDeviceNameForError, 0x00000000, filemgrDeviceNameForErrorMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextFailReason, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_321, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&filemgrMenuTextDeviceNameForError, + 0, + filemgrDeviceNameForErrorMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&filemgrMenuTextFailReason, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_321, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrErrorMenuDialog = { @@ -953,9 +1023,23 @@ void filemgrDeleteCurrentFile(void) } struct menuitem g_FilemgrFileSavedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_346, 0x00000000, NULL }, // "File Saved." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_347, 0x00000000, NULL }, // "OK" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_346, // "File Saved." + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_347, // "OK" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrFileSavedMenuDialog = { @@ -968,12 +1052,47 @@ struct menudialogdef g_FilemgrFileSavedMenuDialog = { }; struct menuitem g_FilemgrSaveErrorMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextDeviceName, 0x00000000, filemgrDeviceNameMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_348, 0x00000000, NULL }, // "An error occurred while trying to save" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_349, 0x00000000, filemgrRetrySaveMenuHandler }, // "Try Again" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_350, 0x00000000, filemgrSaveElsewhereYesMenuHandler }, // "Save Elsewhere" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_351, 0x00000000, filemgrCancelSave2MenuHandler }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&filemgrMenuTextDeviceName, + 0, + filemgrDeviceNameMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_348, // "An error occurred while trying to save." + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_349, // "Try Again" + 0, + filemgrRetrySaveMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_350, // "Save Elsewhere" + 0, + filemgrSaveElsewhereYesMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_351, // "Cancel" + 0, + filemgrCancelSave2MenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrSaveErrorMenuDialog = { @@ -986,15 +1105,50 @@ struct menudialogdef g_FilemgrSaveErrorMenuDialog = { }; struct menuitem g_FilemgrFileLostMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextDeviceName, 0x00000000, filemgrDeviceNameMenuHandler }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&filemgrMenuTextDeviceName, + 0, + filemgrDeviceNameMenuHandler, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_251, 0x00000000, NULL }, // "The saved file has been erased due to corruption or damage." + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_251, // "The saved file has been erased due to corruption or damage." + 0, + NULL, + }, #else - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_352, 0x00000000, NULL }, // "An error occurred while trying to load." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_353, 0x00000000, filemgr0f108d14 }, // "Try Again" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_352, // "An error occurred while trying to load." + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_353, // "Try Again" + 0, + filemgr0f108d14, + }, #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_354, 0x00000000, filemgrAcknowledgeFileLostMenuHandler }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_354, // "Cancel" + 0, + filemgrAcknowledgeFileLostMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrFileLostMenuDialog = { @@ -1007,10 +1161,31 @@ struct menudialogdef g_FilemgrFileLostMenuDialog = { }; struct menuitem g_FilemgrSaveElsewhereMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_360, 0x00000000, NULL }, // "Would you like to save your file elsewhere?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_361, 0x00000000, filemgrSaveElsewhereYesMenuHandler }, // "Yes" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_362, 0x00000000, filemgrCancelSave2MenuHandler }, // "No" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_360, // "Would you like to save your file elsewhere?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_361, // "Yes" + 0, + filemgrSaveElsewhereYesMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_362, // "No" + 0, + filemgrCancelSave2MenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrSaveElsewhereMenuDialog = { @@ -1023,14 +1198,35 @@ struct menudialogdef g_FilemgrSaveElsewhereMenuDialog = { }; struct menuitem g_PakNotOriginalMenuItems[] = { + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextInsertOriginalPak, 0x00000000, NULL }, + (u32)&filemgrMenuTextInsertOriginalPak, #else - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_363, 0x00000000, NULL }, + L_OPTIONS_363, // "Please insert the Controller Pak containing your %s into any controller." #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_365, 0x00000000, filemgrReinsertedOkMenuHandler }, // "OK" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_366, 0x00000000, filemgrReinsertedCancelMenuHandler }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_365, // "OK" + 0, + filemgrReinsertedOkMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_366, // "Cancel" + 0, + filemgrReinsertedCancelMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakNotOriginalMenuDialog = { @@ -1382,9 +1578,23 @@ char *filemgrMenuTextDuplicateFileName(struct menuitem *item) #if VERSION >= VERSION_NTSC_1_0 struct menuitem g_FilemgrRenameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_239, 0x00000000, NULL }, // "Enter new file name:" - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, filemgrConfirmRenameMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_239, // "Enter new file name:" + 0, + NULL, + }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0, + filemgrConfirmRenameMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrRenameMenuDialog = { @@ -1399,14 +1609,63 @@ struct menudialogdef g_FilemgrRenameMenuDialog = { #if VERSION >= VERSION_NTSC_1_0 struct menuitem g_FilemgrDuplicateMenuMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000030, (u32)&filemgrMenuTextDeviceNameContainingDuplicateFile, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_233, 0x00000000, NULL }, // "already contains" - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_234, 0x00000000, NULL }, // "a file named" - { MENUITEMTYPE_LABEL, 0, 0x02000030, (u32)&filemgrMenuTextDuplicateFileName, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_235, 0x00000000, filemgrDuplicateRenameMenuHandler }, // "Rename File" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS_236, 0x00000000, NULL }, // "Change Location" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_237, 0x00000000, filemgrDuplicateCancelMenuHandler }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&filemgrMenuTextDeviceNameContainingDuplicateFile, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_233, // "already contains" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_234, // "a file named" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + (u32)&filemgrMenuTextDuplicateFileName, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_235, // "Rename File" + 0, + filemgrDuplicateRenameMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPWEAPONS_236, // "Change Location" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_237, // "Cancel" + 0, + filemgrDuplicateCancelMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrDuplicateNameMenuDialog = { @@ -2559,17 +2818,87 @@ void bootmenuReset(void) } struct menuitem g_FilemgrSelectLocationMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_368, L_OPTIONS_369, NULL }, // "Where", "Spaces" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, SAVEDEVICE_GAMEPAK, 0x00000000, (u32)&filemgrMenuTextLocationName2, (u32)&filemgrMenuTextSaveLocationSpaces, filemgrSelectLocationMenuHandler }, - { MENUITEMTYPE_SELECTABLE, SAVEDEVICE_CONTROLLERPAK1, 0x00000000, (u32)&filemgrMenuTextLocationName2, (u32)&filemgrMenuTextSaveLocationSpaces, filemgrSelectLocationMenuHandler }, - { MENUITEMTYPE_SELECTABLE, SAVEDEVICE_CONTROLLERPAK2, 0x00000000, (u32)&filemgrMenuTextLocationName2, (u32)&filemgrMenuTextSaveLocationSpaces, filemgrSelectLocationMenuHandler }, - { MENUITEMTYPE_SELECTABLE, SAVEDEVICE_CONTROLLERPAK3, 0x00000000, (u32)&filemgrMenuTextLocationName2, (u32)&filemgrMenuTextSaveLocationSpaces, filemgrSelectLocationMenuHandler }, - { MENUITEMTYPE_SELECTABLE, SAVEDEVICE_CONTROLLERPAK4, 0x00000000, (u32)&filemgrMenuTextLocationName2, (u32)&filemgrMenuTextSaveLocationSpaces, filemgrSelectLocationMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_370, 0x00000000, filemgrDeleteFilesForSaveMenuHandler }, // "Delete Files..." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_371, 0x00000000, filemgrCancelSaveMenuHandler }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_368, // "Where" + L_OPTIONS_369, // "Spaces" + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + SAVEDEVICE_GAMEPAK, + 0, + (u32)&filemgrMenuTextLocationName2, + (u32)&filemgrMenuTextSaveLocationSpaces, + filemgrSelectLocationMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + SAVEDEVICE_CONTROLLERPAK1, + 0, + (u32)&filemgrMenuTextLocationName2, + (u32)&filemgrMenuTextSaveLocationSpaces, + filemgrSelectLocationMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + SAVEDEVICE_CONTROLLERPAK2, + 0, + (u32)&filemgrMenuTextLocationName2, + (u32)&filemgrMenuTextSaveLocationSpaces, + filemgrSelectLocationMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + SAVEDEVICE_CONTROLLERPAK3, + 0, + (u32)&filemgrMenuTextLocationName2, + (u32)&filemgrMenuTextSaveLocationSpaces, + filemgrSelectLocationMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + SAVEDEVICE_CONTROLLERPAK4, + 0, + (u32)&filemgrMenuTextLocationName2, + (u32)&filemgrMenuTextSaveLocationSpaces, + filemgrSelectLocationMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_370, // "Delete Files..." + 0, + filemgrDeleteFilesForSaveMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_371, // "Cancel" + 0, + filemgrCancelSaveMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrSelectLocationMenuDialog = { @@ -2582,12 +2911,47 @@ struct menudialogdef g_FilemgrSelectLocationMenuDialog = { }; struct menuitem g_FilemgrConfirmDeleteMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000030, (u32)&filemgrMenuTextDeleteFileName, 0x00000000, filemgrFileNameMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000230, (u32)&filemgrMenuTextDeviceName, 0x00000000, filemgrDeviceNameMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_380, 0x00000000, NULL }, // "Are you sure you want to delete this file?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_381, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_382, 0x00000000, filemgrConfirmDeleteMenuHandler }, // "OK" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&filemgrMenuTextDeleteFileName, + 0, + filemgrFileNameMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT, + (u32)&filemgrMenuTextDeviceName, + 0, + filemgrDeviceNameMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_380, // "Are you sure you want to delete this file?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_381, // "Cancel" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_382, // "OK" + 0, + filemgrConfirmDeleteMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrConfirmDeleteMenuDialog = { @@ -2600,15 +2964,43 @@ struct menudialogdef g_FilemgrConfirmDeleteMenuDialog = { }; struct menuitem g_FilemgrFileInUseMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000030, (u32)&filemgrMenuTextDeleteFileName, 0x00000000, filemgrFileNameMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000230, (u32)&filemgrMenuTextDeviceName, 0x00000000, filemgrDeviceNameMenuHandler }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&filemgrMenuTextDeleteFileName, + 0, + filemgrFileNameMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT, + (u32)&filemgrMenuTextDeviceName, + 0, + filemgrDeviceNameMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&filemgrMenuTextFileInUseDescription, 0x00000000, NULL }, + (u32)&filemgrMenuTextFileInUseDescription, #else - { MENUITEMTYPE_LABEL, 0, 0x00000010, 0x54a0, 0x00000000, NULL }, + 0x54a0, #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_161, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_161, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrFileInUseMenuDialog = { @@ -2621,10 +3013,31 @@ struct menudialogdef g_FilemgrFileInUseMenuDialog = { }; struct menuitem g_FilemgrDeleteMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_377, 0x00000000, NULL }, // "Select a file to delete:" - { MENUITEMTYPE_LIST, 1, 0x00200000, 0x00000000, 0x00000000, filemgrFileToDeleteListMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00004030, L_OPTIONS_378, 0x00000000, NULL }, // "Press B Button to exit." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_377, // "Select a file to delete:" + 0, + NULL, + }, + { + MENUITEMTYPE_LIST, + 1, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0, + 0, + filemgrFileToDeleteListMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_DARKERBG, + L_OPTIONS_378, // "Press B Button to exit." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrDeleteMenuDialog = { @@ -2637,10 +3050,31 @@ struct menudialogdef g_FilemgrDeleteMenuDialog = { }; struct menuitem g_FilemgrCopyMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_374, 0x00000000, NULL }, // "Select a file to copy:" - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x00000000, 0x00000000, filemgrFileToCopyListMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00004030, L_OPTIONS_375, 0x00000000, NULL }, // "Press B Button to exit." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_374, // "Select a file to copy:" + 0, + NULL, + }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0, + 0, + filemgrFileToCopyListMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_DARKERBG, + L_OPTIONS_375, // "Press B Button to exit." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrCopyMenuDialog = { @@ -2655,10 +3089,31 @@ struct menudialogdef g_FilemgrCopyMenuDialog = { struct pakdata *g_EditingPak = NULL; struct menuitem g_PakDeleteNoteMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_384, 0x00000000, NULL }, // "Are you sure you want to delete this game note?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_385, 0x00000000, NULL }, // "No" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_OPTIONS_386, 0x00000000, pakDeleteGameNoteMenuHandler }, // "Yes" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_384, // "Are you sure you want to delete this game note?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_385, // "No" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_386, // "Yes" + 0, + pakDeleteGameNoteMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakDeleteNoteMenuDialog = { @@ -2671,14 +3126,63 @@ struct menudialogdef g_PakDeleteNoteMenuDialog = { }; struct menuitem g_PakGameNotesMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_388, (u32)&pakMenuTextEditingPakName, NULL }, // "Delete Game Notes:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x0000010e, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_389, L_OPTIONS_390, NULL }, // "Note", "Pages" - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x000000c8, 0x0000006e, pakGameNoteListMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&pakMenuTextPagesFree, (u32)&pakMenuTextPagesUsed, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, (u32)&pakMenuTextStatusMessage, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000030, L_OPTIONS_391, 0x00000000, NULL }, // "Press the B Button to exit." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_388, // "Delete Game Notes:" + (u32)&pakMenuTextEditingPakName, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x0000010e, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_389, // "Note" + L_OPTIONS_390, // "Pages" + NULL, + }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000c8, + 0x0000006e, + pakGameNoteListMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&pakMenuTextPagesFree, + (u32)&pakMenuTextPagesUsed, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + (u32)&pakMenuTextStatusMessage, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_391, // "Press the B Button to exit." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakGameNotesMenuDialog = { @@ -2691,16 +3195,79 @@ struct menudialogdef g_PakGameNotesMenuDialog = { }; struct menuitem g_PakChoosePakMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_108, 0x00000000, NULL }, // "Use this menu to delete game notes from your Controller Pak" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_OPTIONS_109, 0x00000000, NULL }, // "Choose Controller Pak to Edit:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_112, 0x00000000, pakSelectionMenuHandler }, // "Controller Pak 1" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_113, 0x00000000, pakSelectionMenuHandler }, // "Controller Pak 2" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_114, 0x00000000, pakSelectionMenuHandler }, // "Controller Pak 3" - { MENUITEMTYPE_SELECTABLE, 3, 0x00000000, L_OPTIONS_115, 0x00000000, pakSelectionMenuHandler }, // "Controller Pak 4" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_110, 0x00000000, NULL }, // "Exit" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_108, // "Use this menu to delete game notes from your Controller Paks." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_109, // "Choose Controller Pak to Edit:" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_112, // "Controller Pak 1" + 0, + pakSelectionMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_113, // "Controller Pak 2" + 0, + pakSelectionMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_114, // "Controller Pak 3" + 0, + pakSelectionMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 3, + 0, + L_OPTIONS_115, // "Controller Pak 4" + 0, + pakSelectionMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_110, // "Exit" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakChoosePakMenuDialog = { @@ -2713,18 +3280,95 @@ struct menudialogdef g_PakChoosePakMenuDialog = { }; struct menuitem g_FilemgrOperationsMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_100, 0x00000000, NULL }, // "Copy:" - { MENUITEMTYPE_SELECTABLE, FILETYPE_GAME, 0x00000000, L_OPTIONS_103, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Single Player Agent File" - { MENUITEMTYPE_SELECTABLE, FILETYPE_MPSETUP , 0x00000000, L_OPTIONS_104, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Combat Simulator Settings File" - { MENUITEMTYPE_SELECTABLE, FILETYPE_MPPLAYER, 0x00000000, L_OPTIONS_105, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Combat Simulator Player File" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_101, 0x00000000, NULL }, // "Delete:" - { MENUITEMTYPE_SELECTABLE, FILETYPE_GAME, 0x00000000, L_OPTIONS_103, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Single Player Agent File" - { MENUITEMTYPE_SELECTABLE, FILETYPE_MPSETUP, 0x00000000, L_OPTIONS_104, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Combat Simulator Settings File" - { MENUITEMTYPE_SELECTABLE, FILETYPE_MPPLAYER, 0x00000000, L_OPTIONS_105, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Combat Simulator Player File" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_102, 0x00000000, (void *)&g_PakChoosePakMenuDialog }, // "Delete Game Notes..." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_100, // "Copy:" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_GAME, + 0, + L_OPTIONS_103, // "Single Player Agent File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_MPSETUP, + 0, + L_OPTIONS_104, // "Combat Simulator Settings File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_MPPLAYER, + 0, + L_OPTIONS_105, // "Combat Simulator Player File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_101, // "Delete:" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_GAME, + 0, + L_OPTIONS_103, // "Single Player Agent File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_MPSETUP, + 0, + L_OPTIONS_104, // "Combat Simulator Settings File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + FILETYPE_MPPLAYER, + 0, + L_OPTIONS_105, // "Combat Simulator Player File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_102, // "Delete Game Notes..." + 0, + (void *)&g_PakChoosePakMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrOperationsMenuDialog = { @@ -2737,8 +3381,15 @@ struct menudialogdef g_FilemgrOperationsMenuDialog = { }; struct menuitem g_FilemgrEnterNameMenuItems[] = { - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000001, filemgrAgentNameKeyboardMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0x00000001, + filemgrAgentNameKeyboardMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrEnterNameMenuDialog = { @@ -2751,9 +3402,23 @@ struct menudialogdef g_FilemgrEnterNameMenuDialog = { }; struct menuitem g_FilemgrFileSelectMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_096, 0x00000000, NULL }, // "Choose Your Reality" - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x000000f5, 0x00000000, filemgrChooseAgentListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_096, // "Choose Your Reality" + 0, + NULL, + }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000f5, + 0, + filemgrChooseAgentListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrFileSelectMenuDialog = { diff --git a/src/game/fmb.c b/src/game/fmb.c index 3c7281cdc..3e3e016ae 100644 --- a/src/game/fmb.c +++ b/src/game/fmb.c @@ -117,18 +117,95 @@ s32 fmbHandleMainMenu(s32 operation, struct menudialogdef *dialogdef, union hand } struct menuitem g_GameFiles4MbMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_100, 0x00000000, NULL }, // "Copy:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_103, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Single Player Agent File" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_104, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Combat Simulator Settings File" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_105, 0x00000000, filemgrOpenCopyFileMenuHandler }, // "Combat Simulator Player File" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_101, 0x00000000, NULL }, // "Delete:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_103, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Single Player Agent File" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_104, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Combat Simulator Settings File" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_105, 0x00000000, filemgrOpenDeleteFileMenuHandler }, // "Combat Simulator Player File" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_102, 0x00000000, (void *)&g_PakChoosePakMenuDialog }, // "Delete Game Notes..." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_100, // "Copy:" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_103, // "Single Player Agent File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_104, // "Combat Simulator Settings File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_105, // "Combat Simulator Player File" + 0, + filemgrOpenCopyFileMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_101, // "Delete:" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_103, // "Single Player Agent File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_104, // "Combat Simulator Settings File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_105, // "Combat Simulator Player File" + 0, + filemgrOpenDeleteFileMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_102, // "Delete Game Notes..." + 0, + (void *)&g_PakChoosePakMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_GameFiles4MbMenuDialog = { @@ -141,9 +218,23 @@ struct menudialogdef g_GameFiles4MbMenuDialog = { }; struct menuitem g_FilemgrFileSelect4MbMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004010, L_OPTIONS_096, 0x00000000, NULL }, // "Choose Your Reality" - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x000000f5, 0x00000000, filemgrChooseAgentListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DARKERBG, + L_OPTIONS_096, // "Choose Your Reality" + 0, + NULL, + }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000f5, + 0, + filemgrChooseAgentListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FilemgrFileSelect4MbMenuDialog = { @@ -157,21 +248,91 @@ struct menudialogdef g_FilemgrFileSelect4MbMenuDialog = { struct menuitem g_AudioVideo4MbMenuItems[] = { #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_308, L_MPMENU_000, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_309, L_MPMENU_000, menuhandlerMusicVolume }, // "Music" + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_308, // "Sound" + L_MPMENU_000, // "" + menuhandlerSfxVolume, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_309, // "Music" + L_MPMENU_000, // "" + menuhandlerMusicVolume, + }, #else - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_308, 0x7fff, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_309, 0x7fff, menuhandlerMusicVolume }, // "Music" + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_308, // "Sound" + 0x7fff, + menuhandlerSfxVolume, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_309, // "Music" + 0x7fff, + menuhandlerMusicVolume, + }, #endif - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_310, 0x00000000, menuhandlerSoundMode }, // "Sound Mode" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_311, 0x00000000, menuhandlerScreenRatio }, // "Ratio" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_310, // "Sound Mode" + 0, + menuhandlerSoundMode, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_311, // "Ratio" + 0, + menuhandlerScreenRatio, + }, #if PAL - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, menuhandlerLanguage }, // "Language" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_269, // "" + 0, + menuhandlerLanguage, + }, #endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_312, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_312, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AudioVideo4MbMenuDialog = { @@ -184,14 +345,63 @@ struct menudialogdef g_AudioVideo4MbMenuDialog = { }; struct menuitem g_MpPlayerSetup4MbMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_030, (u32)&mpGetCurrentPlayerName, (void *)&g_MpPlayerNameMenuDialog }, // "Name" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_033, 0x00000000, (void *)&g_MpControlMenuDialog }, // "Control" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_034, 0x00000000, (void *)&g_MpPlayerOptionsMenuDialog }, // "Player Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_035, 0x00000000, (void *)&g_MpPlayerStatsMenuDialog }, // "Statistics" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_029, 0x00000000, (void *)&g_MpLoadPlayerMenuDialog }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&mpMenuTextSavePlayerOrCopy, 0x00000000, menuhandlerMpSavePlayer }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_030, // "Name" + (u32)&mpGetCurrentPlayerName, + (void *)&g_MpPlayerNameMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_033, // "Control" + 0, + (void *)&g_MpControlMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_034, // "Player Options" + 0, + (void *)&g_MpPlayerOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_035, // "Statistics" + 0, + (void *)&g_MpPlayerStatsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_029, // "Load Player" + 0, + (void *)&g_MpLoadPlayerMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + (u32)&mpMenuTextSavePlayerOrCopy, + 0, + menuhandlerMpSavePlayer, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPlayerSetup4MbMenuDialog = { @@ -206,13 +416,41 @@ struct menudialogdef g_MpPlayerSetup4MbMenuDialog = { struct menudialogdef g_MpDropOut4MbMenuDialog; struct menuitem g_MpQuickGo4MbMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_456, 0x00000000, (void *)&g_MpReadyMenuDialog }, // "Start Game" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_456, // "Start Game" + 0, + (void *)&g_MpReadyMenuDialog, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_029, 0x00000000, (void *)&g_MpLoadPlayerMenuDialog }, // "Load Player" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_029, // "Load Player" + 0, + (void *)&g_MpLoadPlayerMenuDialog, + }, #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_458, 0x00000000, (void *)&g_MpPlayerSetup4MbMenuDialog }, // "Player Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_457, 0x00000000, (void *)&g_MpDropOut4MbMenuDialog }, // "Drop Out" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_458, // "Player Settings" + 0, + (void *)&g_MpPlayerSetup4MbMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_457, // "Drop Out" + 0, + (void *)&g_MpDropOut4MbMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickGo4MbMenuDialog = { @@ -225,15 +463,39 @@ struct menudialogdef g_MpQuickGo4MbMenuDialog = { }; struct menuitem g_MpConfirmChallenge4MbMenuItems[] = { -#if VERSION == VERSION_PAL_FINAL - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 65, NULL }, -#else - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, 55, NULL }, -#endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_057, 0x00000000, fmbHandleAcceptChallenge }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_MPCONFIG, + 0, + 0x0000007c, + (VERSION == VERSION_PAL_FINAL ? 65 : 55), + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_057, // "Accept" + 0, + fmbHandleAcceptChallenge, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_058, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpConfirmChallenge4MbMenuDialog = { @@ -246,8 +508,15 @@ struct menudialogdef g_MpConfirmChallenge4MbMenuDialog = { }; struct menuitem g_MpChallenges4MbMenuItems[] = { - { MENUITEMTYPE_LIST, 1, 0x00200000, 0x00000078, 0x0000004d, mpChallengesListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 1, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000078, + 0x0000004d, + mpChallengesListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpChallenges4MbMenuDialog = { @@ -260,14 +529,63 @@ struct menudialogdef g_MpChallenges4MbMenuDialog = { }; struct menuitem g_MainMenu4MbMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_441, 0x00000000, (void *)&g_MpChallenges4MbMenuDialog }, // "Challenges" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_442, 0x00000001, (void *)&g_MpLoadPresetMenuDialog }, // "Load/Preset Games" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_443, 0x00000002, (void *)&g_MpQuickTeamMenuDialog }, // "Quick Start" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC_444, 0x00000003, fmbHandleAdvancedSetup }, // "Advanced Setup" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_305, 0x00000000, (void *)&g_AudioVideo4MbMenuDialog }, // "Audio/Video" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_306, 0x00000000, (void *)&g_ChangeAgentMenuDialog }, // "Change Agent" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_441, // "Challenges" + 0, + (void *)&g_MpChallenges4MbMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_442, // "Load/Preset Games" + 0x00000001, + (void *)&g_MpLoadPresetMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_443, // "Quick Start" + 0x00000002, + (void *)&g_MpQuickTeamMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_BIGFONT, + L_MISC_444, // "Advanced Setup" + 0x00000003, + fmbHandleAdvancedSetup, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_305, // "Audio/Video" + 0, + (void *)&g_AudioVideo4MbMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_306, // "Change Agent" + 0, + (void *)&g_ChangeAgentMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MainMenu4MbMenuDialog = { @@ -280,10 +598,31 @@ struct menudialogdef g_MainMenu4MbMenuDialog = { }; struct menuitem g_MpDropOut4MbMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_196, 0x00000000, NULL }, // "Are you sure you want to drop out?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_197, 0x00000000, fmbHandleDropOut }, // "Drop Out" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_198, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_196, // "Are you sure you want to drop out?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_197, // "Drop Out" + 0, + fmbHandleDropOut, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_198, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpDropOut4MbMenuDialog = { @@ -296,10 +635,31 @@ struct menudialogdef g_MpDropOut4MbMenuDialog = { }; struct menuitem g_UnusedAbortMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_053, 0x00000000, NULL }, // "Are you sure you want to abort the game?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_054, 0x00000000, fmdHandleAbortGame }, // "Abort" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_055, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_053, // "Are you sure you want to abort the game?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_054, // "Abort" + 0, + fmdHandleAbortGame, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_055, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_UnusedAbortMenuDialog = { @@ -312,12 +672,47 @@ struct menudialogdef g_UnusedAbortMenuDialog = { }; struct menuitem g_MpEditSimulant4MbMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_095, 0x00000000, mpBotDifficultyMenuHandler }, // "Difficulty:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_096, 0x00000000, menuhandlerMpChangeSimulantType }, // "Change Type..." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_098, 0x00000000, menuhandlerMpDeleteSimulant }, // "Delete Simulant" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_099, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_095, // "Difficulty:" + 0, + mpBotDifficultyMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_096, // "Change Type..." + 0, + menuhandlerMpChangeSimulantType, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_098, // "Delete Simulant" + 0, + menuhandlerMpDeleteSimulant, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_099, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEditSimulant4MbMenuDialog = { @@ -330,21 +725,119 @@ struct menudialogdef g_MpEditSimulant4MbMenuDialog = { }; struct menuitem g_AdvancedSetup4MbMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU_019, (u32)&mpMenuTextScenarioShortName, (void *)&g_MpScenarioMenuDialog }, // "Scenario" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_021, 0x00000000, menuhandlerMpOpenOptions }, // "Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_020, (u32)&mpMenuTextArenaName, (void *)&g_MpArenaMenuDialog }, // "Arena" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_044, 0x00000000, menuhandlerMpLock }, // "Lock" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_023, 0x00000000, (void *)&g_MpWeaponsMenuDialog }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_024, 0x00000000, (void *)&g_MpLimitsMenuDialog }, // "Limits" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_184, 0x00000000, (void *)&g_MpHandicapsMenuDialog }, // "Player Handicaps" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_025, 0x00000000, (void *)&g_MpSimulantsMenuDialog }, // "Simulants" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_022, 0x00000000, (void *)&g_MpTeamsMenuDialog }, // "Teams" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_036, 0x00000000, (void *)&g_MpReadyMenuDialog }, // "Start Game" - { MENUITEMTYPE_SELECTABLE, 0, 0x00060004, L_MPMENU_018, 0x00000000, (void *)&g_MpLoadSettingsMenuDialog }, // "Load Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_026, 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_019, // "Scenario" + (u32)&mpMenuTextScenarioShortName, + (void *)&g_MpScenarioMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_021, // "Options" + 0, + menuhandlerMpOpenOptions, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_020, // "Arena" + (u32)&mpMenuTextArenaName, + (void *)&g_MpArenaMenuDialog, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_044, // "Lock" + 0, + menuhandlerMpLock, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_023, // "Weapons" + 0, + (void *)&g_MpWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_024, // "Limits" + 0, + (void *)&g_MpLimitsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_184, // "Player Handicaps" + 0, + (void *)&g_MpHandicapsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_025, // "Simulants" + 0, + (void *)&g_MpSimulantsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_022, // "Teams" + 0, + (void *)&g_MpTeamsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_036, // "Start Game" + 0, + (void *)&g_MpReadyMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_018, // "Load Settings" + 0, + (void *)&g_MpLoadSettingsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_026, // "Save Settings" + 0, + menuhandlerMpSaveSettings, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AdvancedSetup4MbMenuDialog = { diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c index be1f3aba7..f42e5a934 100644 --- a/src/game/mainmenu.c +++ b/src/game/mainmenu.c @@ -675,8 +675,15 @@ s32 menudialogBriefing(s32 operation, struct menudialogdef *dialogdef, union han } struct menuitem g_PreAndPostMissionBriefingMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_BRIEFING, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_BRIEFING, + 0, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PreAndPostMissionBriefingMenuDialog = { @@ -776,10 +783,31 @@ s32 menudialog00103608(s32 operation, struct menudialogdef *dialogdef, union han } struct menuitem g_AcceptMissionMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 1, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_274, 0x00000000, menuhandlerAcceptMission }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_275, 0x00000000, NULL }, // "Decline" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 1, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_274, // "Accept" + 0, + menuhandlerAcceptMission, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_275, // "Decline" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AcceptMissionMenuDialog = { @@ -850,14 +878,63 @@ s32 menuhandlerAcceptPdModeSettings(s32 operation, struct menuitem *item, union } struct menuitem g_PdModeSettingsMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_MPWEAPONS_222, 0x00000000, NULL }, // "Choose Settings:" - { MENUITEMTYPE_SLIDER, 1, 0x00100000, L_MPWEAPONS_224, 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Health" - { MENUITEMTYPE_SLIDER, 2, 0x00100000, L_MPWEAPONS_225, 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Damage" - { MENUITEMTYPE_SLIDER, 3, 0x00100000, L_MPWEAPONS_226, 0x000000ff, menuhandlerPdModeSetting }, // "Enemy Accuracy" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000b4, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_227, 0x00000000, menuhandlerAcceptPdModeSettings }, // "OK" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS_228, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_222, // "Choose Settings:" + 0, + NULL, + }, + { + MENUITEMTYPE_SLIDER, + 1, + MENUITEMFLAG_SLIDER_ALTSIZE, + L_MPWEAPONS_224, // "Enemy Health:" + 0x000000ff, + menuhandlerPdModeSetting, + }, + { + MENUITEMTYPE_SLIDER, + 2, + MENUITEMFLAG_SLIDER_ALTSIZE, + L_MPWEAPONS_225, // "Enemy Damage:" + 0x000000ff, + menuhandlerPdModeSetting, + }, + { + MENUITEMTYPE_SLIDER, + 3, + MENUITEMFLAG_SLIDER_ALTSIZE, + L_MPWEAPONS_226, // "Enemy Accuracy:" + 0x000000ff, + menuhandlerPdModeSetting, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x000000b4, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_227, // "OK" + 0, + menuhandlerAcceptPdModeSettings, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPWEAPONS_228, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PdModeSettingsMenuDialog = { @@ -1094,14 +1171,63 @@ char *soloMenuTextBestTime(struct menuitem *item) } struct menuitem g_SoloMissionDifficultyMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS_249, L_OPTIONS_250, NULL }, // "Difficulty" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_251, (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Agent" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_252, (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Special Agent" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_253, (u32)&soloMenuTextBestTime, menuhandlerSoloDifficulty }, // "Perfect Agent" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_221, 0x00000000, menuhandlerPdMode }, // "Perfect Dark" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_254, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_249, // "Difficulty" + L_OPTIONS_250, // "Best Time" + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_251, // "Agent" + (u32)&soloMenuTextBestTime, + menuhandlerSoloDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_252, // "Special Agent" + (u32)&soloMenuTextBestTime, + menuhandlerSoloDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_253, // "Perfect Agent" + (u32)&soloMenuTextBestTime, + menuhandlerSoloDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_221, // "Perfect Dark" + 0, + menuhandlerPdMode, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_254, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionDifficultyMenuDialog = { @@ -1315,13 +1441,55 @@ s32 menuhandlerCoopBuddy(s32 operation, struct menuitem *item, union handlerdata } struct menuitem g_CoopOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_256, 0x00000000, menuhandlerCoopRadar }, // "Radar On" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_257, 0x00000000, menuhandlerCoopFriendlyFire }, // "Friendly Fire" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_258, 0x00000000, menuhandlerCoopBuddy }, // "Perfect Buddy" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // "" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_259, 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_260, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, // "" + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_256, // "Radar On" + 0, + menuhandlerCoopRadar, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_257, // "Friendly Fire" + 0, + menuhandlerCoopFriendlyFire, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_258, // "Perfect Buddy" + 0, + menuhandlerCoopBuddy, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, // "" + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_259, // "Continue" + 0, + menuhandlerBuddyOptionsContinue, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_260, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, // "" }; struct menudialogdef g_CoopOptionsMenuDialog = { @@ -1369,12 +1537,47 @@ s32 menuhandlerAntiPlayer(s32 operation, struct menuitem *item, union handlerdat } struct menuitem g_AntiOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_267, 0x00000000, menuhandlerAntiRadar }, // "Radar On" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_268, 0x00000000, menuhandlerAntiPlayer }, // "Counter-Operative" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_269, 0x00000000, menuhandlerBuddyOptionsContinue }, // "Continue" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_270, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_267, // "Radar On" + 0, + menuhandlerAntiRadar, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_268, // "Counter-Operative" + 0, + menuhandlerAntiPlayer, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_269, // "Continue" + 0, + menuhandlerBuddyOptionsContinue, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_270, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AntiOptionsMenuDialog = { @@ -1406,12 +1609,47 @@ s32 menuhandlerCoopDifficulty(s32 operation, struct menuitem *item, union handle } struct menuitem g_CoopMissionDifficultyMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_251, 0x00000000, menuhandlerCoopDifficulty }, // "Agent" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_252, 0x00000000, menuhandlerCoopDifficulty }, // "Special Agent" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_253, 0x00000000, menuhandlerCoopDifficulty }, // "Perfect Agent" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_254, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_251, // "Agent" + 0, + menuhandlerCoopDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_252, // "Special Agent" + 0, + menuhandlerCoopDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_253, // "Perfect Agent" + 0, + menuhandlerCoopDifficulty, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_254, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CoopMissionDifficultyMenuDialog = { @@ -1438,12 +1676,47 @@ s32 menuhandlerAntiDifficulty(s32 operation, struct menuitem *item, union handle } struct menuitem g_AntiMissionDifficultyMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_251, 0x00000000, menuhandlerAntiDifficulty }, // "Agent" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_OPTIONS_252, 0x00000000, menuhandlerAntiDifficulty }, // "Special Agent" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_OPTIONS_253, 0x00000000, menuhandlerAntiDifficulty }, // "Perfect Agent" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_254, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_251, // "Agent" + 0, + menuhandlerAntiDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_OPTIONS_252, // "Special Agent" + 0, + menuhandlerAntiDifficulty, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_OPTIONS_253, // "Perfect Agent" + 0, + menuhandlerAntiDifficulty, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_254, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AntiMissionDifficultyMenuDialog = { @@ -3799,13 +4072,27 @@ s32 menudialog0010559c(s32 operation, struct menudialogdef *dialogdef, union han } struct menuitem g_MissionBriefingMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_BRIEFING, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_BRIEFING, + 0, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_2PMissionBreifingVMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_BRIEFING, 0x00000000, 0x00000078, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_BRIEFING, + 0, + 0x00000078, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionBriefingMenuDialog = { @@ -3898,8 +4185,15 @@ s32 menuhandlerChangeAgent(s32 operation, struct menuitem *item, union handlerda } struct menuitem g_2PMissionControlStyleMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000050, 0x00000000, menuhandler001024dc }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_AUTOWIDTH, + 0x00000050, + 0, + menuhandler001024dc, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_2PMissionControlStyleMenuDialog = { @@ -3912,15 +4206,29 @@ struct menudialogdef g_2PMissionControlStyleMenuDialog = { }; struct menuitem g_SoloMissionControlStyleMenuItems[] = { + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_AUTOWIDTH, + 0x00000028, #if VERSION == VERSION_JPN_FINAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0xbe, menuhandler001024dc }, + 0xbe, #elif PAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x9c, menuhandler001024dc }, + 0x9c, #else - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x96, menuhandler001024dc }, + 0x96, #endif - { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + menuhandler001024dc, + }, + { + MENUITEMTYPE_CONTROLLER, + 0, + MENUITEMFLAG_NEWCOLUMN, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionControlStyleMenuDialog = { @@ -3933,15 +4241,29 @@ struct menudialogdef g_SoloMissionControlStyleMenuDialog = { }; struct menuitem g_CiControlStyleMenuItems[] = { + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_AUTOWIDTH, + 0x00000028, #if VERSION == VERSION_JPN_FINAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0xbe, menuhandler001024dc }, + 0xbe, #elif PAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x9c, menuhandler001024dc }, + 0x9c, #else - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x96, menuhandler001024dc }, + 0x96, #endif - { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + menuhandler001024dc, + }, + { + MENUITEMTYPE_CONTROLLER, + 0, + MENUITEMFLAG_NEWCOLUMN, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiControlStyleMenuDialog = { @@ -3954,15 +4276,29 @@ struct menudialogdef g_CiControlStyleMenuDialog = { }; struct menuitem g_CiControlStylePlayer2MenuItems[] = { + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_AUTOWIDTH, + 0x00000028, #if VERSION == VERSION_JPN_FINAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0xbe, menuhandler001024fc }, + 0xbe, #elif PAL - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x9c, menuhandler001024fc }, + 0x9c, #else - { MENUITEMTYPE_LIST, 0, 0x00800000, 0x00000028, 0x96, menuhandler001024fc }, + 0x96, #endif - { MENUITEMTYPE_CONTROLLER, 0, 0x00000001, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + menuhandler001024fc, + }, + { + MENUITEMTYPE_CONTROLLER, + 0, + MENUITEMFLAG_NEWCOLUMN, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiControlStylePlayer2MenuDialog = { @@ -3975,24 +4311,65 @@ struct menudialogdef g_CiControlStylePlayer2MenuDialog = { }; struct menuitem g_AudioOptionsMenuItems[] = { + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_228, // "Sound" #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_228, L_MPMENU_000, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_229, L_MPMENU_000, menuhandlerMusicVolume }, // "Music" + L_MPMENU_000, // "" #else - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_228, 0x7fff, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00002800, L_OPTIONS_229, 0x7fff, menuhandlerMusicVolume }, // "Music" + 0x7fff, #endif - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_230, 0x00000000, menuhandlerSoundMode }, // "Sound Mode" + menuhandlerSfxVolume, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE, + L_OPTIONS_229, // "Music" +#if VERSION >= VERSION_NTSC_1_0 + L_MPMENU_000, // "" +#else + 0x7fff, +#endif + menuhandlerMusicVolume, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_230, // "Sound Mode" + 0, + menuhandlerSoundMode, + }, #if VERSION != VERSION_JPN_FINAL - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_218, 0x00000000, menuhandlerLangFilter }, // "Language Filter" + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_218, // "Language Filter" + 0, + menuhandlerLangFilter, + }, #endif -#if VERSION >= VERSION_PAL_FINAL - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 200, 0x00000000, NULL }, -#else - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0, 0x00000000, NULL }, -#endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_231, 0x00000000, NULL }, // "" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + (VERSION >= VERSION_PAL_FINAL ? 200 : 0), + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_231, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_AudioOptionsMenuDialog = { @@ -4005,20 +4382,65 @@ struct menudialogdef g_AudioOptionsMenuDialog = { }; struct menuitem g_2PMissionAudioOptionsVMenuItems[] = { + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE | MENUITEMFLAG_SLIDER_ALTSIZE, + L_OPTIONS_228, // "Sound" #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS_228, L_MPMENU_000, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS_229, L_MPMENU_000, menuhandlerMusicVolume }, // "Music" + L_MPMENU_000, // "" #else - { MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS_228, 0x7fff, menuhandlerSfxVolume }, // "Sound" - { MENUITEMTYPE_SLIDER, 0, 0x00102800, L_OPTIONS_229, 0x7fff, menuhandlerMusicVolume }, // "Music" + 0x7fff, #endif - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_153, 0x00000000, menuhandlerSoundMode }, // "Mode" + menuhandlerSfxVolume, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_SLIDER_FAST | MENUITEMFLAG_SLIDER_HIDEVALUE | MENUITEMFLAG_SLIDER_ALTSIZE, + L_OPTIONS_229, // "Music" +#if VERSION >= VERSION_NTSC_1_0 + L_MPMENU_000, // "" +#else + 0x7fff, +#endif + menuhandlerMusicVolume, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_153, // "Mode" + 0, + menuhandlerSoundMode, + }, #if VERSION != VERSION_JPN_FINAL - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_218, 0x00000000, menuhandlerLangFilter }, // "Language Filter" + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_218, // "Language Filter" + 0, + menuhandlerLangFilter, + }, #endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_231, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_231, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_2PMissionAudioOptionsVMenuDialog = { @@ -4031,29 +4453,127 @@ struct menudialogdef g_2PMissionAudioOptionsVMenuDialog = { }; struct menuitem g_VideoOptionsMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_215, 0x00000000, menuhandlerScreenSize }, // "Screen Size" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_216, 0x00000000, menuhandlerScreenRatio }, // "Ratio" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_217, 0x00000000, menuhandlerHiRes }, // "Hi-Res" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_215, // "Screen Size" + 0, + menuhandlerScreenSize, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_216, // "Ratio" + 0, + menuhandlerScreenRatio, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_217, // "Hi-Res" + 0, + menuhandlerHiRes, + }, #if PAL - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, menuhandlerLanguage }, // "Language" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_269, // "" + 0, + menuhandlerLanguage, + }, #endif - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_218, 0x00000000, menuhandlerScreenSplit }, // "2-Player Screen Split" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_170, 0x00000000, menuhandlerAlternativeTitle }, // "Alternative Title Screen" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x000000c8, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_219, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_218, // "2-Player Screen Split" + 0, + menuhandlerScreenSplit, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_170, // "Alternative Title Screen" + 0, + menuhandlerAlternativeTitle, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x000000c8, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_219, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_2PMissionVideoOptionsMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_216, 0x00000000, menuhandlerScreenRatio }, // "Ratio" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_217, 0x00000000, menuhandlerHiRes }, // "Hi-Res" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_216, // "Ratio" + 0, + menuhandlerScreenRatio, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_217, // "Hi-Res" + 0, + menuhandlerHiRes, + }, #if PAL - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_269, 0x00000000, menuhandlerLanguage }, // "Language" + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_269, // "" + 0, + menuhandlerLanguage, + }, #endif - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_154, 0x00000000, menuhandlerScreenSplit }, // "Split" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_219, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_154, // "Split" + 0, + menuhandlerScreenSplit, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_219, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_VideoOptionsMenuDialog = { @@ -4075,18 +4595,95 @@ struct menudialogdef g_2PMissionVideoOptionsMenuDialog = { }; struct menuitem g_MissionDisplayOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_205, 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_206, 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_207, 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_208, 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_209, 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_210, 0x00000004, menuhandlerPaintball }, // "Paintball" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_212, 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_205, // "Sight on Screen" + 0x00000004, + menuhandlerSightOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_206, // "Always Show Target" + 0x00000004, + menuhandlerAlwaysShowTarget, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_207, // "Show Zoom Range" + 0x00000004, + menuhandlerShowZoomRange, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_208, // "Ammo on Screen" + 0x00000004, + menuhandlerAmmoOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_209, // "Show Gun Function" + 0x00000004, + menuhandlerShowGunFunction, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_210, // "Paintball" + 0x00000004, + menuhandlerPaintball, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_169, // "In-Game Subtitles" + 0x00000004, + menuhandlerInGameSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_168, // "Cutscene Subtitles" + 0x00000004, + menuhandlerCutsceneSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_212, // "Show Mission Time" + 0x00000004, + menuhandlerShowMissionTime, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_213, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MissionDisplayOptionsMenuDialog = { @@ -4099,23 +4696,103 @@ struct menudialogdef g_MissionDisplayOptionsMenuDialog = { }; struct menuitem g_2PMissionDisplayOptionsVMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_145, 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_146, 0x00000004, menuhandlerAlwaysShowTarget }, // "Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_147, 0x00000004, menuhandlerShowZoomRange }, // "Zoom Range" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_148, 0x00000004, menuhandlerAmmoOnScreen }, // "Show Ammo" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_149, 0x00000004, menuhandlerShowGunFunction }, // "Gun Function" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_150, 0x00000004, menuhandlerPaintball }, // "Paintball" + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_145, // "Sight on Screen" + 0x00000004, + menuhandlerSightOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_146, // "Target" + 0x00000004, + menuhandlerAlwaysShowTarget, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_147, // "Zoom Range" + 0x00000004, + menuhandlerShowZoomRange, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_148, // "Show Ammo" + 0x00000004, + menuhandlerAmmoOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_149, // "Gun Function" + 0x00000004, + menuhandlerShowGunFunction, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_150, // "Paintball" + 0x00000004, + menuhandlerPaintball, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, #if VERSION >= VERSION_PAL_FINAL - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_279, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_278, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" + L_MPWEAPONS_279, // "In-Game Subtitles" #else - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" + L_MPWEAPONS_169, // "In-Game Subtitles" #endif - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_152, 0x00000004, menuhandlerShowMissionTime }, // "Mission Time" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + 0x00000004, + menuhandlerInGameSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, +#if VERSION >= VERSION_PAL_FINAL + L_MPWEAPONS_278, // "Cutscene Subtitles" +#else + L_MPWEAPONS_168, // "Cutscene Subtitles" +#endif + 0x00000004, + menuhandlerCutsceneSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_152, // "Mission Time" + 0x00000004, + menuhandlerShowMissionTime, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_213, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_2PMissionDisplayOptionsVMenuDialog = { @@ -4128,18 +4805,95 @@ struct menudialogdef g_2PMissionDisplayOptionsVMenuDialog = { }; struct menuitem g_CiDisplayMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_205, 0x00000004, menuhandlerSightOnScreen }, // "Sight on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_206, 0x00000004, menuhandlerAlwaysShowTarget }, // "Always Show Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_207, 0x00000004, menuhandlerShowZoomRange }, // "Show Zoom Range" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_208, 0x00000004, menuhandlerAmmoOnScreen }, // "Ammo on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_209, 0x00000004, menuhandlerShowGunFunction }, // "Show Gun Function" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_210, 0x00000004, menuhandlerPaintball }, // "Paintball" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000004, menuhandlerInGameSubtitles }, // "In-Game Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000004, menuhandlerCutsceneSubtitles }, // "Cutscene Subtitles" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_212, 0x00000004, menuhandlerShowMissionTime }, // "Show Mission Time" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_205, // "Sight on Screen" + 0x00000004, + menuhandlerSightOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_206, // "Always Show Target" + 0x00000004, + menuhandlerAlwaysShowTarget, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_207, // "Show Zoom Range" + 0x00000004, + menuhandlerShowZoomRange, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_208, // "Ammo on Screen" + 0x00000004, + menuhandlerAmmoOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_209, // "Show Gun Function" + 0x00000004, + menuhandlerShowGunFunction, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_210, // "Paintball" + 0x00000004, + menuhandlerPaintball, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_169, // "In-Game Subtitles" + 0x00000004, + menuhandlerInGameSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_168, // "Cutscene Subtitles" + 0x00000004, + menuhandlerCutsceneSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_212, // "Show Mission Time" + 0x00000004, + menuhandlerShowMissionTime, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_213, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiDisplayPlayer2MenuDialog; @@ -4154,18 +4908,95 @@ struct menudialogdef g_CiDisplayMenuDialog = { }; struct menuitem g_CiDisplayPlayer2MenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_205, 0x00000005, menuhandlerSightOnScreen }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_206, 0x00000005, menuhandlerAlwaysShowTarget }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_207, 0x00000005, menuhandlerShowZoomRange }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_208, 0x00000005, menuhandlerAmmoOnScreen }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_209, 0x00000005, menuhandlerShowGunFunction }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_210, 0x00000005, menuhandlerPaintball }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_169, 0x00000005, menuhandlerInGameSubtitles }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_168, 0x00000005, menuhandlerCutsceneSubtitles }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_212, 0x00000005, menuhandlerShowMissionTime }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_213, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_205, // "Sight on Screen" + 0x00000005, + menuhandlerSightOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_206, // "Always Show Target" + 0x00000005, + menuhandlerAlwaysShowTarget, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_207, // "Show Zoom Range" + 0x00000005, + menuhandlerShowZoomRange, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_208, // "Ammo on Screen" + 0x00000005, + menuhandlerAmmoOnScreen, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_209, // "Show Gun Function" + 0x00000005, + menuhandlerShowGunFunction, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_210, // "Paintball" + 0x00000005, + menuhandlerPaintball, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_169, // "In-Game Subtitles" + 0x00000005, + menuhandlerInGameSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_168, // "Cutscene Subtitles" + 0x00000005, + menuhandlerCutsceneSubtitles, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_212, // "Show Mission Time" + 0x00000005, + menuhandlerShowMissionTime, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_213, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiDisplayPlayer2MenuDialog = { @@ -4178,15 +5009,71 @@ struct menudialogdef g_CiDisplayPlayer2MenuDialog = { }; struct menuitem g_MissionControlOptionsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_194, (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_195, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_196, 0x00000004, menuhandlerLookAhead }, // "Look Ahead" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_197, 0x00000004, menuhandlerHeadRoll }, // "Head Roll" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_198, 0x00000004, menuhandlerAutoAim }, // "Auto-Aim" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_199, 0x00000004, menuhandlerAimControl }, // "Aim Control" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_194, // "Control Style" + (u32)&func0f105664, + menuhandlerControlStyle, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_195, // "Reverse Pitch" + 0x00000004, + menuhandlerReversePitch, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_196, // "Look Ahead" + 0x00000004, + menuhandlerLookAhead, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_197, // "Head Roll" + 0x00000004, + menuhandlerHeadRoll, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_198, // "Auto-Aim" + 0x00000004, + menuhandlerAutoAim, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_199, // "Aim Control" + 0x00000004, + menuhandlerAimControl, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_200, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MissionControlOptionsMenuDialog = { @@ -4200,15 +5087,71 @@ struct menudialogdef g_MissionControlOptionsMenuDialog = { #if VERSION >= VERSION_PAL_FINAL struct menuitem g_CiControlOptionsMenuItems2[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_270, (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_271, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_272, 0x00000004, menuhandlerLookAhead }, // "Look Ahead" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_273, 0x00000004, menuhandlerHeadRoll }, // "Head Roll" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_274, 0x00000004, menuhandlerAutoAim }, // "Auto-Aim" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_275, 0x00000004, menuhandlerAimControl }, // "Aim Control" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_270, // "" + (u32)&func0f105664, + menuhandlerControlStyle, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_271, // "" + 0x00000004, + menuhandlerReversePitch, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_272, // "" + 0x00000004, + menuhandlerLookAhead, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_273, // "" + 0x00000004, + menuhandlerHeadRoll, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPWEAPONS_274, // "" + 0x00000004, + menuhandlerAutoAim, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_275, // "" + 0x00000004, + menuhandlerAimControl, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_200, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiControlOptionsMenuDialog2 = { @@ -4222,15 +5165,71 @@ struct menudialogdef g_CiControlOptionsMenuDialog2 = { #endif struct menuitem g_CiControlOptionsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_194, (u32)&func0f105664, (void *)&g_CiControlStyleMenuDialog }, // "Control Style" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_195, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_196, 0x00000004, menuhandlerLookAhead }, // "Look Ahead" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_197, 0x00000004, menuhandlerHeadRoll }, // "Head Roll" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_198, 0x00000004, menuhandlerAutoAim }, // "Auto-Aim" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_199, 0x00000004, menuhandlerAimControl }, // "Aim Control" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_194, // "Control Style" + (u32)&func0f105664, + (void *)&g_CiControlStyleMenuDialog, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_195, // "Reverse Pitch" + 0x00000004, + menuhandlerReversePitch, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_196, // "Look Ahead" + 0x00000004, + menuhandlerLookAhead, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_197, // "Head Roll" + 0x00000004, + menuhandlerHeadRoll, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_198, // "Auto-Aim" + 0x00000004, + menuhandlerAutoAim, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_199, // "Aim Control" + 0x00000004, + menuhandlerAimControl, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_200, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiControlOptionsMenuDialog = { @@ -4243,15 +5242,71 @@ struct menudialogdef g_CiControlOptionsMenuDialog = { }; struct menuitem g_CiControlPlayer2MenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_194, (u32)&func0f1056a0, (void *)&g_CiControlStylePlayer2MenuDialog }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_195, 0x00000005, menuhandlerReversePitch }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_196, 0x00000005, menuhandlerLookAhead }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_197, 0x00000005, menuhandlerHeadRoll }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_OPTIONS_198, 0x00000005, menuhandlerAutoAim }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_199, 0x00000005, menuhandlerAimControl }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_200, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_194, // "Control Style" + (u32)&func0f1056a0, + (void *)&g_CiControlStylePlayer2MenuDialog, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_195, // "Reverse Pitch" + 0x00000005, + menuhandlerReversePitch, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_196, // "Look Ahead" + 0x00000005, + menuhandlerLookAhead, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_197, // "Head Roll" + 0x00000005, + menuhandlerHeadRoll, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_OPTIONS_198, // "Auto-Aim" + 0x00000005, + menuhandlerAutoAim, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_199, // "Aim Control" + 0x00000005, + menuhandlerAimControl, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_200, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiControlPlayer2MenuDialog = { @@ -4264,10 +5319,31 @@ struct menudialogdef g_CiControlPlayer2MenuDialog = { }; struct menuitem g_ChangeAgentMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS_189, 0x00000000, NULL }, // "Do you want to load another agent?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_190, 0x00000000, menuhandlerChangeAgent }, // "Yes" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_191, 0x00000000, NULL }, // "No" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_189, // "Do you want to load another agent?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_190, // "Yes" + 0, + menuhandlerChangeAgent, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_191, // "No" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_ChangeAgentMenuDialog = { @@ -4280,45 +5356,199 @@ struct menudialogdef g_ChangeAgentMenuDialog = { }; struct menuitem g_SoloMissionOptionsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_181, 0x00000000, (void *)&g_AudioOptionsMenuDialog }, // "Audio" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_182, 0x00000000, (void *)&g_VideoOptionsMenuDialog }, // "Video" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_183, 0x00000000, (void *)&g_MissionControlOptionsMenuDialog }, // "Control" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_184, 0x00000000, (void *)&g_MissionDisplayOptionsMenuDialog }, // "Display" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_181, // "Audio" + 0, + (void *)&g_AudioOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_182, // "Video" + 0, + (void *)&g_VideoOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_183, // "Control" + 0, + (void *)&g_MissionControlOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_184, // "Display" + 0, + (void *)&g_MissionDisplayOptionsMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_2PMissionOptionsHMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_181, 0x00000000, (void *)&g_AudioOptionsMenuDialog }, // "Audio" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_182, 0x00000000, (void *)&g_2PMissionVideoOptionsMenuDialog }, // "Video" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_183, 0x00000000, (void *)&g_MissionControlOptionsMenuDialog }, // "Control" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_184, 0x00000000, (void *)&g_MissionDisplayOptionsMenuDialog }, // "Display" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000064, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_181, // "Audio" + 0, + (void *)&g_AudioOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_182, // "Video" + 0, + (void *)&g_2PMissionVideoOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_183, // "Control" + 0, + (void *)&g_MissionControlOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_184, // "Display" + 0, + (void *)&g_MissionDisplayOptionsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000064, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + (u32)&menutextPauseOrUnpause, + 0, + menuhandlerMpPause, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_2PMissionOptionsVMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_181, 0x00000000, (void *)&g_2PMissionAudioOptionsVMenuDialog }, // "Audio" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_182, 0x00000000, (void *)&g_2PMissionVideoOptionsMenuDialog }, // "Video" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_181, // "Audio" + 0, + (void *)&g_2PMissionAudioOptionsVMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_182, // "Video" + 0, + (void *)&g_2PMissionVideoOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_183, // "Control" + 0, #if VERSION >= VERSION_PAL_FINAL - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_183, 0x00000000, (void *)&g_CiControlOptionsMenuDialog2 }, // "Control" + (void *)&g_CiControlOptionsMenuDialog2, #else - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_183, 0x00000000, (void *)&g_MissionControlOptionsMenuDialog }, // "Control" + (void *)&g_MissionControlOptionsMenuDialog, #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_184, 0x00000000, (void *)&g_2PMissionDisplayOptionsVMenuDialog }, // "Display" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000064, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_184, // "Display" + 0, + (void *)&g_2PMissionDisplayOptionsVMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000064, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + (u32)&menutextPauseOrUnpause, + 0, + menuhandlerMpPause, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_CiOptionsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x000056b5, 0x00000001, (void *)&g_AudioOptionsMenuDialog }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x000056b6, 0x00000002, (void *)&g_VideoOptionsMenuDialog }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x000056b7, 0x00000003, (void *)&g_CiControlOptionsMenuDialog }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x000056b8, 0x00000004, (void *)&g_CiDisplayMenuDialog }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x000056b9, 0x00000005, (void *)&g_CheatsMenuDialog }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, 0x00005679, 0x00000006, (void *)&g_CinemaMenuDialog }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x000056b5, + 0x00000001, + (void *)&g_AudioOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x000056b6, + 0x00000002, + (void *)&g_VideoOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x000056b7, + 0x00000003, + (void *)&g_CiControlOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x000056b8, + 0x00000004, + (void *)&g_CiDisplayMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x000056b9, + 0x00000005, + (void *)&g_CheatsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + 0x00005679, + 0x00000006, + (void *)&g_CinemaMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionOptionsMenuDialog = { @@ -4696,33 +5926,123 @@ char *invMenuTextWeaponDescription(struct menuitem *item) } struct menuitem g_SoloMissionInventoryMenuItems[] = { -#if VERSION == VERSION_JPN_FINAL - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x0000006e, 0x54, menuhandlerInventoryList }, -#else - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x0000006e, 0x63, menuhandlerInventoryList }, -#endif - { MENUITEMTYPE_LABEL, 0, 0x00000203, L_OPTIONS_003, (u32)&invMenuTextWeaponManufacturer, NULL }, // "" - { MENUITEMTYPE_LABEL, 0, 0x00000302, L_OPTIONS_003, (u32)&invMenuTextWeaponName, NULL }, // "" -#if VERSION >= VERSION_JPN_FINAL - { MENUITEMTYPE_MODEL, 0, 0x00000000, 0x0000008c, 0x14, NULL }, -#else - { MENUITEMTYPE_MODEL, 0, 0x00000000, 0x0000008c, 0x37, NULL }, -#endif - { MENUITEMTYPE_LABEL, 0, 0x00000202, L_OPTIONS_003, (u32)&invMenuTextPrimaryFunction, NULL }, // "" - { MENUITEMTYPE_LABEL, 0, 0x00000202, L_OPTIONS_003, (u32)&invMenuTextSecondaryFunction, NULL }, // "" - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&invMenuTextWeaponDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x0000006e, + (VERSION >= VERSION_JPN_FINAL ? 0x54 : 0x63), + menuhandlerInventoryList, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_NEWCOLUMN | MENUITEMFLAG_00000002 | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextWeaponManufacturer, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LABEL_ALTCOLOUR | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextWeaponName, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + 0, + 0x0000008c, + (VERSION >= VERSION_JPN_FINAL ? 0x14 : 0x37), + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextPrimaryFunction, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextSecondaryFunction, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&invMenuTextWeaponDescription, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_FrWeaponsAvailableMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x0000006e, 0x00000063, menuhandlerFrInventoryList }, - { MENUITEMTYPE_LABEL, 0, 0x0213, L_OPTIONS_003, (u32)&invMenuTextWeaponManufacturer, NULL }, // "" - { MENUITEMTYPE_LABEL, 0, 0x0312, L_OPTIONS_003, (u32)&invMenuTextWeaponName, NULL }, // "" - { MENUITEMTYPE_MODEL, 0, 0x00000000, 0x0000008c, 0x00000037, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x0212, L_OPTIONS_003, (u32)&invMenuTextPrimaryFunction, NULL }, // "" - { MENUITEMTYPE_LABEL, 0, 0x0212, L_OPTIONS_003, (u32)&invMenuTextSecondaryFunction, NULL }, // "" - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&invMenuTextWeaponDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x0000006e, + 0x00000063, + menuhandlerFrInventoryList, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_NEWCOLUMN | MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextWeaponManufacturer, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LABEL_ALTCOLOUR | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextWeaponName, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + 0, + 0x0000008c, + 0x00000037, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextPrimaryFunction, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_OPTIONS_003, // "" + (u32)&invMenuTextSecondaryFunction, + NULL, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&invMenuTextWeaponDescription, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionInventoryMenuDialog = { @@ -4882,10 +6202,31 @@ s32 menudialogAbortMission(s32 operation, struct menudialogdef *dialogdef, union } struct menuitem g_MissionAbortMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_OPTIONS_175, 0x00000000, NULL }, // "Do you want to abort the mission?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_176, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_177, 0x00000000, menuhandlerAbortMission }, // "Abort" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_OPTIONS_175, // "Do you want to abort the mission?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_176, // "Cancel" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_177, // "Abort" + 0, + menuhandlerAbortMission, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MissionAbortMenuDialog = { @@ -4898,10 +6239,31 @@ struct menudialogdef g_MissionAbortMenuDialog = { }; struct menuitem g_2PMissionAbortVMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_MPWEAPONS_155, 0x00000000, NULL }, // "Do you want to abort the mission" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_OPTIONS_176, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_OPTIONS_177, 0x00000000, menuhandlerAbortMission }, // "Abort" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_155, // "Do you want to abort the mission?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_OPTIONS_176, // "Cancel" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_OPTIONS_177, // "Abort" + 0, + menuhandlerAbortMission, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_2PMissionAbortVMenuDialog = { @@ -4969,15 +6331,43 @@ char *soloMenuTitlePauseStatus(struct menudialogdef *dialogdef) } struct menuitem g_2PMissionPauseVMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 2, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_173, 0x00000000, (void *)&g_2PMissionAbortVMenuDialog }, // "Abort!" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 2, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_173, // "Abort!" + 0, + (void *)&g_2PMissionAbortVMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_MissionPauseMenuItems[] = { - { MENUITEMTYPE_OBJECTIVES, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_OPTIONS_173, 0x00000000, (void *)&g_MissionAbortMenuDialog }, // "Abort!" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_OBJECTIVES, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_OPTIONS_173, // "Abort!" + 0, + (void *)&g_MissionAbortMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SoloMissionPauseMenuDialog = { @@ -5193,8 +6583,15 @@ s32 menuhandlerCinema(s32 operation, struct menuitem *item, union handlerdata *d } struct menuitem g_CinemaMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x000000eb, 0x00000000, menuhandlerCinema }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x000000eb, + 0, + menuhandlerCinema, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CinemaMenuDialog = { @@ -5207,8 +6604,15 @@ struct menudialogdef g_CinemaMenuDialog = { }; struct menuitem g_SelectMissionMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x000000eb, 0x00000000, menuhandlerMissionList }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000eb, + 0, + menuhandlerMissionList, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_SelectMissionMenuDialog = { @@ -5322,13 +6726,55 @@ char *mainMenuTextLabel(struct menuitem *item) } struct menuitem g_MainMenuMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400008, L_MISC_446, 0x00000001, NULL }, // "Carrington Institute" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, (u32)&mainMenuTextLabel, 0x00000002, menuhandlerMainMenuSoloMissions }, - { MENUITEMTYPE_SELECTABLE, 1, 0x00400000, (u32)&mainMenuTextLabel, 0x00000003, menuhandlerMainMenuCombatSimulator }, - { MENUITEMTYPE_SELECTABLE, 2, 0x00400000, (u32)&mainMenuTextLabel, 0x00000004, menuhandlerMainMenuCooperative }, - { MENUITEMTYPE_SELECTABLE, 3, 0x00400000, (u32)&mainMenuTextLabel, 0x00000005, menuhandlerMainMenuCounterOperative }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_OPTIONS_187, 0x00000006, (void *)&g_ChangeAgentMenuDialog }, // "Change Agent..." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_446, // "Carrington Institute" + 0x00000001, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_BIGFONT, + (u32)&mainMenuTextLabel, + 0x00000002, + menuhandlerMainMenuSoloMissions, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + MENUITEMFLAG_BIGFONT, + (u32)&mainMenuTextLabel, + 0x00000003, + menuhandlerMainMenuCombatSimulator, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + MENUITEMFLAG_BIGFONT, + (u32)&mainMenuTextLabel, + 0x00000004, + menuhandlerMainMenuCooperative, + }, + { + MENUITEMTYPE_SELECTABLE, + 3, + MENUITEMFLAG_BIGFONT, + (u32)&mainMenuTextLabel, + 0x00000005, + menuhandlerMainMenuCounterOperative, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_OPTIONS_187, // "Change Agent..." + 0x00000006, + (void *)&g_ChangeAgentMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CiMenuViaPcMenuDialog = { diff --git a/src/game/menu.c b/src/game/menu.c index f28deab1a..5a031c023 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -2546,7 +2546,7 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc s32 numobjectives; // Check if item's handler handles MENUOP_CHECKHIDDEN - if (item->handler && (item->flags & MENUITEMFLAG_00000004) == 0) { + if (item->handler && (item->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0) { if (item->handler(MENUOP_CHECKHIDDEN, item, &handlerdata)) { *width = 0; *height = 0; @@ -2590,11 +2590,11 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc *width = 80; #if VERSION >= VERSION_NTSC_1_0 - if ((item->flags & MENUITEMFLAG_00000040) != 0) { + if ((item->flags & MENUITEMFLAG_LIST_WIDE) != 0) { *width = 180; } #else - if ((item->flags && MENUITEMFLAG_00000040) != 0) { + if ((item->flags && MENUITEMFLAG_LIST_WIDE) != 0) { *width = 180; } #endif @@ -2631,7 +2631,7 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc textMeasure(&textheight, &textwidth, text2, g_CharsHandelGothicSm, g_FontHandelGothicSm, 0); #if VERSION >= VERSION_PAL_FINAL - if ((item->flags & MENUITEMFLAG_00001000) == 0) { + if ((item->flags & MENUITEMFLAG_ADJUSTWIDTH) == 0) { *width += textwidth + 10; } else { *width += textwidth + 3; @@ -2656,13 +2656,13 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc *width = 150; *height = VERSION == VERSION_JPN_FINAL ? 14 : 12; - if (item->flags & MENUITEMFLAG_00100000) { + if (item->flags & MENUITEMFLAG_SLIDER_ALTSIZE) { *height = 22; *width = 120; } break; case MENUITEMTYPE_CHECKBOX: - if (item->flags & MENUITEMFLAG_00000200) { + if (item->flags & MENUITEMFLAG_SMALLFONT) { chars = g_CharsHandelGothicXs; font = g_FontHandelGothicXs; } @@ -2696,7 +2696,7 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc #if VERSION == VERSION_JPN_FINAL *height = LINEHEIGHT; #else - if (item->flags & MENUITEMFLAG_00000200) { + if (item->flags & MENUITEMFLAG_SMALLFONT) { *height = LINEHEIGHT; } else { *height = LINEHEIGHT + 2; @@ -2713,12 +2713,12 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc return; } - if (item->flags & MENUITEMFLAG_00000200) { + if (item->flags & MENUITEMFLAG_SMALLFONT) { chars = g_CharsHandelGothicXs; font = g_FontHandelGothicXs; } - if (item->flags & MENUITEMFLAG_00400000) { + if (item->flags & MENUITEMFLAG_BIGFONT) { chars = g_CharsHandelGothicMd; font = g_FontHandelGothicMd; } @@ -2730,7 +2730,7 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc textMeasure(&textheight, &textwidth, text, chars, font, 0); *width = (s16)textwidth + 8; - if ((item->flags & (MENUITEMFLAG_00000010 | MENUITEMFLAG_00001000)) == 0) { + if ((item->flags & (MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_ADJUSTWIDTH)) == 0) { *width += 20; } @@ -2739,12 +2739,12 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc #else *height = textheight + 3; - if (item->flags & MENUITEMFLAG_00000200) { + if (item->flags & MENUITEMFLAG_SMALLFONT) { *height -= 2; } #endif - if ((item->flags & (MENUITEMFLAG_00008000 | MENUITEMFLAG_00400000)) == 0) { + if ((item->flags & (MENUITEMFLAG_LABEL_HASRIGHTTEXT | MENUITEMFLAG_BIGFONT)) == 0) { text = menuResolveText(item->param3, item); // @bug: This is not how you check for an empty string @@ -2752,19 +2752,19 @@ void menuCalculateItemSize(struct menuitem *item, s16 *width, s16 *height, struc textMeasure(&textheight, &textwidth, text, chars, font, 0); *width += textwidth + 5; - if (item->flags & MENUITEMFLAG_00001000) { + if (item->flags & MENUITEMFLAG_ADJUSTWIDTH) { *width -= 6; } } } } - if (item->flags & MENUITEMFLAG_00400000) { + if (item->flags & MENUITEMFLAG_BIGFONT) { *height = 28; *width += 36; } - if (item->flags & MENUITEMFLAG_02000000) { + if (item->flags & MENUITEMFLAG_LESSHEIGHT) { *height -= 1; } break; @@ -3097,7 +3097,7 @@ glabel func0f0f1d6c // bool append = true; // // while (item->type != MENUITEMTYPE_END) { -// if (item->flags & MENUITEMFLAG_00000001) { +// if (item->flags & MENUITEMFLAG_NEWCOLUMN) { // append = true; // } // @@ -3160,7 +3160,7 @@ void dialog0f0f1ef4(struct menudialog *dialog) switch (item->type) { case MENUITEMTYPE_LIST: - if (item->flags & MENUITEMFLAG_00200000) { + if (item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { itemheight = remaining; if (g_Menus[g_MpPlayerNum].rows[rowindex].height - itemheight < 30) { @@ -3210,7 +3210,7 @@ void dialogCalculateContentSize(struct menudialogdef *dialogdef, struct menudial s16 height; while (item->type != MENUITEMTYPE_END) { - if (item->flags & MENUITEMFLAG_00000001) { + if (item->flags & MENUITEMFLAG_NEWCOLUMN) { newcolumn = true; } @@ -3337,11 +3337,11 @@ bool menuIsItemDisabled(struct menuitem *item, struct menudialog *dialog) s16 height; u32 stack[2]; - if (item->flags & MENUITEMFLAG_00000400) { + if (item->flags & MENUITEMFLAG_ALWAYSDISABLED) { return true; } - if (mpIsPlayerLockedOut(g_MpPlayerNum) && item->flags & MENUITEMFLAG_00040000) { + if (mpIsPlayerLockedOut(g_MpPlayerNum) && item->flags & MENUITEMFLAG_LOCKABLEMAJOR) { return true; } @@ -3350,7 +3350,7 @@ bool menuIsItemDisabled(struct menuitem *item, struct menudialog *dialog) } if (item->handler - && (item->flags & MENUITEMFLAG_00000004) == 0 + && (item->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0 && item->handler(MENUOP_CHECKDISABLED, item, &sp30)) { return true; } @@ -3563,7 +3563,7 @@ s32 dialogChangeItemFocus(struct menudialog *dialog, s32 leftright, s32 updown) if (dialog->focuseditem != 0) { if (dialog->focuseditem->handler != NULL) { - if ((dialog->focuseditem->flags & MENUITEMFLAG_00000004) == 0) { + if ((dialog->focuseditem->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0) { union handlerdata data; dialog->focuseditem->handler(MENUOP_FOCUS, dialog->focuseditem, &data); } @@ -3616,7 +3616,7 @@ void menuOpenDialog(struct menudialogdef *dialogdef, struct menudialog *dialog, while (item->type != MENUITEMTYPE_END) { if (item->handler - && (item->flags & MENUITEMFLAG_00000004) == 0 + && (item->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0 && item->handler(MENUOP_CHECKPREFOCUSED, item, &data1)) { dialog->focuseditem = item; } @@ -3627,7 +3627,7 @@ void menuOpenDialog(struct menudialogdef *dialogdef, struct menudialog *dialog, // Run focus handler if (dialog->focuseditem && dialog->focuseditem->handler - && (dialog->focuseditem->flags & MENUITEMFLAG_00000004) == 0) { + && (dialog->focuseditem->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0) { dialog->focuseditem->handler(MENUOP_FOCUS, dialog->focuseditem, &data2); } @@ -13106,7 +13106,7 @@ Gfx *dialogRender(Gfx *gdl, struct menudialog *dialog, struct menu *menu, bool l prevwaslist = false; } - if ((item->flags & MENUITEMFLAG_00004000) && !lightweight) { + if ((item->flags & MENUITEMFLAG_DARKERBG) && !lightweight) { // Render a darker background behind the item s32 x1 = context.x; s32 y1 = context.y; @@ -13159,7 +13159,7 @@ Gfx *dialogRender(Gfx *gdl, struct menudialog *dialog, struct menu *menu, bool l gdl = menugfxDrawTri2(gdl, x3 - 3, liney + 1, x3, liney + 2, sp120, 0xffffffff, 0); gdl = menugfxDrawTri2(gdl, x3 - 2, liney, x4, liney + 1, colour, sp120 & 0xffffff00, 0); - if (item->flags & MENUITEMFLAG_00000020) { + if (item->flags & MENUITEMFLAG_SELECTABLE_CENTRE) { // Right side x1 = context.x + context.width; x3 = context.x + context.width - 8; @@ -14683,7 +14683,7 @@ void menuSwipe(s32 direction) while (item->type != MENUITEMTYPE_END) { if (item->handler - && (item->flags & MENUITEMFLAG_00000004) == 0 + && (item->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0 && item->handler(MENUOP_CHECKPREFOCUSED, item, &sp50)) { g_Menus[g_MpPlayerNum].curdialog->focuseditem = item; } @@ -14693,7 +14693,7 @@ void menuSwipe(s32 direction) if (g_Menus[g_MpPlayerNum].curdialog->focuseditem != 0 && g_Menus[g_MpPlayerNum].curdialog->focuseditem->handler - && ((g_Menus[g_MpPlayerNum].curdialog->focuseditem->flags & MENUITEMFLAG_00000004) == 0)) { + && ((g_Menus[g_MpPlayerNum].curdialog->focuseditem->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) == 0)) { g_Menus[g_MpPlayerNum].curdialog->focuseditem->handler(MENUOP_FOCUS, g_Menus[g_MpPlayerNum].curdialog->focuseditem, &sp40); } @@ -15104,9 +15104,9 @@ void dialogTick(struct menudialog *dialog, struct menuinputs *inputs, u32 tickfl union menuitemdata *handlerdata = NULL; struct menuinputs *inputsptr = inputs; - if (mpIsPlayerLockedOut(g_MpPlayerNum) && (item->flags & MENUITEMFLAG_00020000)) { + if (mpIsPlayerLockedOut(g_MpPlayerNum) && (item->flags & MENUITEMFLAG_LOCKABLEMINOR)) { inputsptr = &spd8; - } else if ((item->flags & MENUITEMFLAG_00080000) && mpGetWeaponSet() != func0f189088()) { + } else if ((item->flags & MENUITEMFLAG_MPWEAPONSLOT) && mpGetWeaponSet() != func0f189088()) { inputsptr = &spd8; } else if (g_MenuData.root == MENUROOT_12) { inputsptr = &spd8; @@ -22660,14 +22660,38 @@ void func0f0fce8c(struct menudialogdef *dialogdef, s32 playernum, s32 arg2) } struct menuitem g_PakRemovedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_174, 0x00000000, NULL }, // "The Controller Pak has been removed." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_174, // "The Controller Pak has been removed." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_073, 0x00000000, menuhandler000fcc34 }, // "OK" + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + menuhandler000fcc34, #else - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_073, 0x00000000, NULL }, // "OK" + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + NULL, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakRemovedMenuDialog = { @@ -22680,14 +22704,38 @@ struct menudialogdef g_PakRemovedMenuDialog = { }; struct menuitem g_PakRepairSuccessMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_181, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_181, // "The Controller Pak has been repaired." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_073, 0x00000000, menuhandler000fcc34 }, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + menuhandler000fcc34, #else - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_073, 0x00000000, NULL }, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + NULL, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakRepairSuccessMenuDialog = { @@ -22700,10 +22748,31 @@ struct menudialogdef g_PakRepairSuccessMenuDialog = { }; struct menuitem g_PakRepairFailedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_183, 0x00000000, NULL }, // "The Controller Pak cannot be repaired. You will not be able to load from or save to this Controller Pak." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_073, 0x00000000, NULL }, // "OK" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_183, // "The Controller Pak cannot be repaired. You will not be able to load from or save to this Controller Pak." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakRepairFailedMenuDialog = { @@ -22716,12 +22785,47 @@ struct menudialogdef g_PakRepairFailedMenuDialog = { }; struct menuitem g_PakAttemptRepairMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_176, 0x00000000, NULL }, // "Are you sure you want to attempt repair of this Controller Pak?" - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_177, 0x00000000, NULL }, // "Data may be lost!" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_178, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_179, 0x00000000, menuhandlerRepairPak }, // "Repair" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_176, // "Are you sure you want to attempt repair of this Controller Pak?" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_177, // "Data may be lost!" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_178, // "Cancel" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_179, // "Repair" + 0, + menuhandlerRepairPak, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakAttemptRepairMenuDialog = { @@ -22925,14 +23029,63 @@ struct menudialog *menuIsDialogOpen(struct menudialogdef *dialogdef) } struct menuitem g_PakDamagedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000030, (u32)&menuTextSaveDeviceName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_065, 0x00000000, NULL }, // "is damaged or" - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_066, 0x00000000, NULL }, // "inserted incorrectly" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_067, 0x00000000, menuhandlerWarnRepairPak }, // "Attempt Repair" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_068, 0x00000000, menuhandlerRetrySavePak }, // "Retry" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS_069, 0x00000000, NULL }, // "Continue without using the Controller Pak" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&menuTextSaveDeviceName, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_065, // "is damaged or" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_066, // "inserted incorrectly." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_067, // "Attempt Repair" + 0, + menuhandlerWarnRepairPak, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_068, // "Retry" + 0, + menuhandlerRetrySavePak, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPWEAPONS_069, // "Continue without using the Controller Pak" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakDamagedMenuDialog = { @@ -22949,15 +23102,57 @@ struct menudialogdef g_PakDamagedMenuDialog = { }; struct menuitem g_PakFullMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&menuTextSaveDeviceName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x02000210, L_MPWEAPONS_071, 0x00000000, NULL }, // "is too full to save note - 1 note and 28 pages required to save" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&menuTextSaveDeviceName, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_071, // "is too full to save note - 1 note and 28 pages required to save." + 0, + NULL, + }, #if VERSION != VERSION_JPN_FINAL - { MENUITEMTYPE_LABEL, 0, 0x02000220, L_OPTIONS_003, 0x00000000, NULL }, // "" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_LESSHEIGHT, + L_OPTIONS_003, // "" + 0, + NULL, + }, #endif - { MENUITEMTYPE_LABEL, 0, 0x02000210, L_MPWEAPONS_072, 0x00000000, NULL }, // "Enter the Controller Pak Menu to free some space (hold START while powering up.)" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_073, 0x00000000, NULL }, // "OK" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_072, // "Enter the Controller Pak Menu to free some space (hold START while powering up.)" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_073, // "OK" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakFullMenuDialog = { @@ -22975,10 +23170,31 @@ struct menudialogdef g_PakFullMenuDialog = { #if VERSION >= VERSION_NTSC_1_0 struct menuitem g_PakCannotReadGameBoyMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_254, 0x00000000, NULL }, // "Cannot read Game Boy Game Pak. Check connections and make sure correct Game Boy Game Pak is being used." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS_255, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_254, // "Cannot read Game Boy Game Pak. Check connections and make sure correct Game Boy Game Pak is being used." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPWEAPONS_255, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakCannotReadGameBoyMenuDialog = { @@ -22991,13 +23207,55 @@ struct menudialogdef g_PakCannotReadGameBoyMenuDialog = { }; struct menuitem g_PakDataLostMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000030, (u32)&menuTextSaveDeviceName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_257, 0x00000000, NULL }, // "The saved data has" - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_258, 0x00000000, NULL }, // "been erased due to" - { MENUITEMTYPE_LABEL, 0, 0x02000030, L_MPWEAPONS_259, 0x00000000, NULL }, // "corruption or damage." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPWEAPONS_260, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&menuTextSaveDeviceName, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_257, // "The saved data has" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_258, // "been erased due to" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPWEAPONS_259, // "corruption or damage." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPWEAPONS_260, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PakDataLostMenuDialog = { diff --git a/src/game/menuitem.c b/src/game/menuitem.c index 4655db16d..55efcb7c3 100644 --- a/src/game/menuitem.c +++ b/src/game/menuitem.c @@ -230,7 +230,7 @@ Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context) union handlerdata spd4; char *title; - if (context->item->flags & MENUITEMFLAG_00200000) { + if (context->item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { context->item->handler(MENUOP_GETOPTIONHEIGHT, context->item, &spd4); g_LineHeight = spd4.list.value; } else { @@ -239,7 +239,7 @@ Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context) width = context->dialog->width; - if (context->item->flags & MENUITEMFLAG_00800000) { + if (context->item->flags & MENUITEMFLAG_LIST_AUTOWIDTH) { width = context->width; } @@ -416,7 +416,7 @@ Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context) // Draw a group header. Note that optionindex is not incremented // in this branch, but nextgroupstartindex is changed so next time the loop // iterates it will enter the else branch. - if (context->item->flags & MENUITEMFLAG_00200000) { + if (context->item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { gdl = menuApplyScissor(gdl); } @@ -472,7 +472,7 @@ Gfx *menuitemListRender(Gfx *gdl, struct menurendercontext *context) #endif } - if (context->item->flags & MENUITEMFLAG_00200000) { + if (context->item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { // The handler wants to override the default rendering struct menuitemrenderdata renderdata; s32 sp94left; @@ -674,7 +674,7 @@ bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 tick return true; } - if (item->flags & MENUITEMFLAG_00200000) { + if (item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { item->handler(MENUOP_GETOPTIONHEIGHT, item, &handlerdata2); g_LineHeight = handlerdata2.list.value; } else { @@ -805,7 +805,7 @@ void menuitemDropdownInit(struct menuitem *item, union menuitemdata *data) handler = item->handler; - if (item->flags & MENUITEMFLAG_00200000) { + if (item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { handler(MENUOP_GETOPTIONHEIGHT, item, &handlerdata2); g_LineHeight = handlerdata2.dropdown.value; } else { @@ -894,7 +894,7 @@ Gfx *menuitemDropdownRender(Gfx *gdl, struct menurendercontext *context) x = context->x + context->width - 60; } - if (context->item->flags & MENUITEMFLAG_00000080) { + if (context->item->flags & MENUITEMFLAG_DROPDOWN_BELOW) { x = context->x + 30; } @@ -930,7 +930,7 @@ bool menuitemDropdownTick(struct menuitem *item, struct menudialog *dialog, stru menuitemListTick(item, inputs, tickflags, data); if (mpIsPlayerLockedOut(g_MpPlayerNum)) { - if ((item->flags & MENUITEMFLAG_00040000) || (dialog->definition->flags & MENUDIALOGFLAG_MPLOCKABLE)) { + if ((item->flags & MENUITEMFLAG_LOCKABLEMAJOR) || (dialog->definition->flags & MENUDIALOGFLAG_MPLOCKABLE)) { dialog->dimmed = false; } } @@ -988,7 +988,7 @@ Gfx *menuitemDropdownOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menu } #endif - if (item->flags & MENUITEMFLAG_00000080) { + if (item->flags & MENUITEMFLAG_DROPDOWN_BELOW) { context.x = x + 30; } @@ -1002,7 +1002,7 @@ Gfx *menuitemDropdownOverlay(Gfx *gdl, s16 x, s16 y, s16 x2, s16 y2, struct menu if (dialog->dimmed && item->handler && dialog->focuseditem == item) { union handlerdata handlerdata; - if (item->flags & MENUITEMFLAG_00200000) { + if (item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { union handlerdata handlerdata2; item->handler(MENUOP_GETOPTIONHEIGHT, item, &handlerdata2); \ g_LineHeight = handlerdata2.dropdown.value; \ @@ -4395,7 +4395,7 @@ Gfx *menuitemObjectivesRender(Gfx *gdl, struct menurendercontext *context) Gfx *menuitemModelRender(Gfx *gdl, struct menurendercontext *context) { - if (context->item->flags & MENUITEMFLAG_00200000) { + if (context->item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { struct menuitemrenderdata renderdata; union handlerdata data; @@ -4443,7 +4443,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) x = context->x + 10; y = context->y + 2; - if (context->item->flags & MENUITEMFLAG_00000010) { + if (context->item->flags & MENUITEMFLAG_LESSLEFTPADDING) { x -= 6; } @@ -4454,14 +4454,14 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) } #if VERSION != VERSION_JPN_FINAL - if (context->item->flags & MENUITEMFLAG_00000200) { + if (context->item->flags & MENUITEMFLAG_SMALLFONT) { font1 = g_CharsHandelGothicXs; font2 = g_FontHandelGothicXs; y -= 2; } #endif - if (context->item->flags & MENUITEMFLAG_00000020) { + if (context->item->flags & MENUITEMFLAG_SELECTABLE_CENTRE) { // Center s32 textheight; s32 textwidth; @@ -4469,7 +4469,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) x = context->x + (context->width - textwidth) / 2; } - if (context->item->flags & MENUITEMFLAG_00000100) { + if (context->item->flags & MENUITEMFLAG_LABEL_ALTCOLOUR) { if (context->dialog->transitionfrac < 0) { colour1 = g_MenuColourPalettes[context->dialog->type].checkedunfocused; } else { @@ -4538,7 +4538,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) colour2 = colour1; - if (context->item->flags & MENUITEMFLAG_01000000) { + if (context->item->flags & MENUITEMFLAG_LABEL_CUSTOMCOLOUR) { union handlerdata data; data.label.colour2 = colour2; data.label.colour1 = colour1; @@ -4558,7 +4558,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) gdl = textRenderProjected(gdl, &x, &y, text, font1, font2, colour1, context->width, context->height, 0, 0); - if ((context->item->flags & MENUITEMFLAG_00008000) == 0) { + if ((context->item->flags & MENUITEMFLAG_LABEL_HASRIGHTTEXT) == 0) { // Right side text text = menuResolveText(context->item->param3, context->item); @@ -4570,7 +4570,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) y = context->y + 2; #if VERSION != VERSION_JPN_FINAL - if (context->item->flags & MENUITEMFLAG_00000200) { + if (context->item->flags & MENUITEMFLAG_SMALLFONT) { y -= 2; } #endif @@ -4578,7 +4578,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) textMeasure(&textheight, &textwidth, text, font1, font2, 0); x = context->x + context->width - textwidth - 10; - if (context->item->flags & MENUITEMFLAG_00000010) { + if (context->item->flags & MENUITEMFLAG_LESSLEFTPADDING) { x += 6; } @@ -4599,7 +4599,7 @@ Gfx *menuitemLabelRender(Gfx *gdl, struct menurendercontext *context) textRestoreDiagonalBlendSettings(); } - if (context->item->flags & MENUITEMFLAG_00200000) { + if (context->item->flags & MENUITEMFLAG_LIST_CUSTOMRENDER) { struct menuitemrenderdata renderdata; union handlerdata data; @@ -4688,11 +4688,11 @@ Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context) struct fontchar *font1 = g_CharsHandelGothicSm; struct font *font2 = g_FontHandelGothicSm; - if (context->item->flags & MENUITEMFLAG_00000010) { + if (context->item->flags & MENUITEMFLAG_LESSLEFTPADDING) { x -= 6; } - if (context->item->flags & MENUITEMFLAG_00400000) { + if (context->item->flags & MENUITEMFLAG_BIGFONT) { font1 = g_CharsHandelGothicMd; font2 = g_FontHandelGothicMd; } @@ -4762,7 +4762,7 @@ Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context) g_MenuColourPalettes2[context->dialog->type].disabled); } - if (context->item->flags & MENUITEMFLAG_00000020) { + if (context->item->flags & MENUITEMFLAG_SELECTABLE_CENTRE) { // Center text s32 textheight; s32 textwidth; @@ -4770,7 +4770,7 @@ Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context) x = context->x + (context->width - textwidth) / 2; } - if (context->item->flags & MENUITEMFLAG_00400000) { + if (context->item->flags & MENUITEMFLAG_BIGFONT) { x += 35; y += 6; } @@ -4779,7 +4779,7 @@ Gfx *menuitemSelectableRender(Gfx *gdl, struct menurendercontext *context) gdl = textRenderProjected(gdl, &x, &y, text, font1, font2, leftcolour, context->width, context->height, 0, 0); - if ((context->item->flags & (MENUITEMFLAG_00008000 | MENUITEMFLAG_00400000)) == 0) { + if ((context->item->flags & (MENUITEMFLAG_LABEL_HASRIGHTTEXT | MENUITEMFLAG_BIGFONT)) == 0) { // Right side text text = menuResolveText(context->item->param3, context->item); @@ -4805,11 +4805,11 @@ bool menuitemSelectableTick(struct menuitem *item, struct menuinputs *inputs, u3 if ((tickflags & MENUTICKFLAG_ITEMISFOCUSED) && inputs->select) { menuPlaySound(MENUSOUND_SELECT); - if (item->flags & MENUITEMFLAG_00000008) { + if (item->flags & MENUITEMFLAG_SELECTABLE_CLOSESDIALOG) { menuPopDialog(); } - if (item->flags & MENUITEMFLAG_00000004) { + if (item->flags & MENUITEMFLAG_SELECTABLE_OPENSDIALOG) { menuPushDialog((struct menudialogdef *)item->handler); } else if (item->handler) { union handlerdata data; @@ -4847,14 +4847,14 @@ Gfx *menuitemSliderRender(Gfx *gdl, struct menurendercontext *context) extray = 10; } - if (context->item->flags & MENUITEMFLAG_00100000) { + if (context->item->flags & MENUITEMFLAG_SLIDER_ALTSIZE) { extray = 10; } x = context->x + 10; y = context->y + 2; - if (context->item->flags & MENUITEMFLAG_00000010) { + if (context->item->flags & MENUITEMFLAG_LESSLEFTPADDING) { x -= 6; } @@ -4916,7 +4916,7 @@ Gfx *menuitemSliderRender(Gfx *gdl, struct menurendercontext *context) gdl = text0f153628(gdl); gdl = textRenderProjected(gdl, &x, &y, label, g_CharsHandelGothicSm, g_FontHandelGothicSm, colour, context->width, context->height, 0, 0); - if ((context->item->flags & MENUITEMFLAG_00002000) == 0) { + if ((context->item->flags & MENUITEMFLAG_SLIDER_HIDEVALUE) == 0) { strcpy(buffer, ""); sprintf(buffer, "%d\n", slidervalue); @@ -4967,7 +4967,7 @@ bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct index = 0; } - if ((item->flags & MENUITEMFLAG_00000800) == 0 + if ((item->flags & MENUITEMFLAG_SLIDER_FAST) == 0 && g_Menus[g_MpPlayerNum].xrepeatmode == MENUREPEATMODE_SLOW) { index = index + inputs->leftright; } else { @@ -4995,7 +4995,7 @@ bool menuitemSliderTick(struct menuitem *item, struct menudialog *dialog, struct f2 = f14; } - if ((item->flags & MENUITEMFLAG_00000800) == 0 && f2 < 40) { + if ((item->flags & MENUITEMFLAG_SLIDER_FAST) == 0 && f2 < 40) { if (g_Menus[g_MpPlayerNum].xrepeatmode != MENUREPEATMODE_SLOW) { index = index + inputs->leftright; } @@ -5120,9 +5120,9 @@ bool menuitemCarouselTick(struct menuitem *item, struct menuinputs *inputs, u32 bool done; u32 stack; - if (((tickflags & MENUTICKFLAG_ITEMISFOCUSED) || (item->flags & MENUITEMFLAG_04000000)) && item->handler) { + if (((tickflags & MENUTICKFLAG_ITEMISFOCUSED) || (item->flags & MENUITEMFLAG_CAROUSEL_04000000)) && item->handler) { if (inputs->leftright != 0) { - if (mpIsPlayerLockedOut(g_MpPlayerNum) == 0 || (item->flags & MENUITEMFLAG_00020000) == 0) { + if (mpIsPlayerLockedOut(g_MpPlayerNum) == 0 || (item->flags & MENUITEMFLAG_LOCKABLEMINOR) == 0) { done = false; item->handler(MENUOP_GETOPTIONCOUNT, item, &data); @@ -5180,7 +5180,7 @@ Gfx *menuitemCheckboxRender(Gfx *gdl, struct menurendercontext *context) struct font *font2 = g_FontHandelGothicSm; struct fontchar *font1 = g_CharsHandelGothicSm; - if (context->item->flags & MENUITEMFLAG_00000200) { + if (context->item->flags & MENUITEMFLAG_SMALLFONT) { font2 = g_FontHandelGothicXs; font1 = g_CharsHandelGothicXs; } @@ -6551,7 +6551,7 @@ u32 var800711ec = 0x20000000; // struct font *font2 = g_FontHandelGothicSm; // 5c // struct fontchar *font1 = g_CharsHandelGothicSm; // 58 // -// if (context->item->flags & MENUITEMFLAG_00000200) { +// if (context->item->flags & MENUITEMFLAG_SMALLFONT) { // font2 = g_FontHandelGothicXs; // font1 = g_CharsHandelGothicXs; // } @@ -6649,7 +6649,7 @@ u32 var800711ec = 0x20000000; // // textBackupAndResetBlends(); // -// if (context->item->flags & MENUITEMFLAG_00000800) { +// if (context->item->flags & MENUITEMFLAG_MARQUEE_FADEBOTHSIDES) { // textSetHorizontalBlend(context->x, context->x + context->width, 0xe); // } else { // textSetHorizontalBlend(context->x, context->x, 0xe); @@ -6689,7 +6689,7 @@ bool menuitemMarqueeTick(struct menuitem *item, union menuitemdata *data) font2 = g_FontHandelGothicSm; font1 = g_CharsHandelGothicSm; - if (item->flags & MENUITEMFLAG_00000200) { + if (item->flags & MENUITEMFLAG_SMALLFONT) { font2 = g_FontHandelGothicXs; font1 = g_CharsHandelGothicXs; } diff --git a/src/game/mplayer/ingame.c b/src/game/mplayer/ingame.c index 8fb2dca80..1761c06db 100644 --- a/src/game/mplayer/ingame.c +++ b/src/game/mplayer/ingame.c @@ -200,11 +200,39 @@ char *menutextMatchTime(s32 arg0) } struct menuitem g_MpEndGameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x02000020, L_MPMENU_291, 0x00000000, NULL }, // "Are you sure?" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_292, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPMENU_293, 0x00000000, menuhandlerMpEndGame }, // "End Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LESSHEIGHT, + L_MPMENU_291, // "Are you sure?" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_292, // "Cancel" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_293, // "End Game" + 0, + menuhandlerMpEndGame, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEndGameMenuDialog = { @@ -217,25 +245,97 @@ struct menudialogdef g_MpEndGameMenuDialog = { }; struct menuitem g_MpPauseControlMenuItems[] = { -#if VERSION == VERSION_JPN_FINAL - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextChallengeName, 0x00000000, menuhandler00178018 }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_162, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Time Limit:" - { MENUITEMTYPE_LABEL, 1, 0x00000010, L_MPWEAPONS_163, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Score Limit:" - { MENUITEMTYPE_LABEL, 2, 0x00000010, L_MPWEAPONS_164, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Team Score Limit:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_286, (u32)&menutextMatchTime, NULL }, // "Game Time:" -#else - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextChallengeName, 0x00000000, menuhandler00178018 }, - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextScenarioName, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS_162, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Time Limit:" - { MENUITEMTYPE_LABEL, 1, 0x00000200, L_MPWEAPONS_163, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Score Limit:" - { MENUITEMTYPE_LABEL, 2, 0x00000200, L_MPWEAPONS_164, (u32)&mpMenuTextInGameLimit, menuhandlerMpInGameLimitLabel }, // "Team Score Limit:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_286, (u32)&menutextMatchTime, NULL }, // "Game Time:" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&mpMenuTextChallengeName, + 0, + menuhandler00178018, + }, +#if VERSION != VERSION_JPN_FINAL + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&mpMenuTextScenarioName, + 0, + NULL, + }, #endif - { MENUITEMTYPE_SELECTABLE, 1, 0x00000020, (u32)&menutextPauseOrUnpause, 0x00000000, menuhandlerMpPause }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000024, L_MPMENU_287, 0x00000000, (void *)&g_MpEndGameMenuDialog }, // "End Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, +#if VERSION == VERSION_JPN_FINAL + MENUITEMFLAG_LESSLEFTPADDING, +#else + MENUITEMFLAG_SMALLFONT, +#endif + L_MPWEAPONS_162, // "Time Limit:" + (u32)&mpMenuTextInGameLimit, + menuhandlerMpInGameLimitLabel, + }, + { + MENUITEMTYPE_LABEL, + 1, +#if VERSION == VERSION_JPN_FINAL + MENUITEMFLAG_LESSLEFTPADDING, +#else + MENUITEMFLAG_SMALLFONT, +#endif + L_MPWEAPONS_163, // "Score Limit:" + (u32)&mpMenuTextInGameLimit, + menuhandlerMpInGameLimitLabel, + }, + { + MENUITEMTYPE_LABEL, + 2, +#if VERSION == VERSION_JPN_FINAL + MENUITEMFLAG_LESSLEFTPADDING, +#else + MENUITEMFLAG_SMALLFONT, +#endif + L_MPWEAPONS_164, // "Team Score Limit:" + (u32)&mpMenuTextInGameLimit, + menuhandlerMpInGameLimitLabel, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, +#if VERSION == VERSION_JPN_FINAL + MENUITEMFLAG_LESSLEFTPADDING, +#else + 0, +#endif + L_MPMENU_286, // "Game Time:" + (u32)&menutextMatchTime, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&menutextPauseOrUnpause, + 0, + menuhandlerMpPause, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_287, // "End Game" + 0, + (void *)&g_MpEndGameMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPauseControlMenuDialog = { @@ -367,9 +467,23 @@ char *mpMenuTextAward2(struct menuitem *item) } struct menuitem g_Mp2PMissionInventoryMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x00000078, 0x00000042, menuhandlerInventoryList }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextWeaponDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x00000078, + 0x00000042, + menuhandlerInventoryList, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&mpMenuTextWeaponDescription, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPauseInventoryMenuDialog = { @@ -400,8 +514,15 @@ struct menudialogdef g_2PMissionInventoryVMenuDialog = { }; struct menuitem g_MpInGamePlayerStatsMenuItems[] = { - { MENUITEMTYPE_PLAYERSTATS, 0, 0x00000000, 0x00000000, 0x00000000, mpStatsForPlayerDropdownHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_PLAYERSTATS, + 0, + 0, + 0, + 0, + mpStatsForPlayerDropdownHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPausePlayerStatsMenuDialog = { @@ -423,8 +544,15 @@ struct menudialogdef g_MpEndscreenPlayerStatsMenuDialog = { }; struct menuitem g_MpPlayerRankingMenuItems[] = { - { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_RANKING, + 0, + 0, + 0, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPausePlayerRankingMenuDialog = { @@ -446,8 +574,15 @@ struct menudialogdef g_MpEndscreenPlayerRankingMenuDialog = { }; struct menuitem g_MpTeamRankingsMenuItems[] = { - { MENUITEMTYPE_RANKING, 0, 0x00000000, 0x00000001, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_RANKING, + 0, + 0, + 0x00000001, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPauseTeamRankingsMenuDialog = { @@ -705,28 +840,114 @@ void mpPushEndscreenDialog(u32 arg0, u32 playernum) } struct menuitem g_MpGameOverMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x01000010, (u32)&mpGetCurrentPlayerName, (u32)&mpMenuTextPlacementWithSuffix, mpPlacementMenuHandler }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + (u32)&mpGetCurrentPlayerName, + (u32)&mpMenuTextPlacementWithSuffix, + mpPlacementMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, #if VERSION >= VERSION_JPN_FINAL - { MENUITEMTYPE_LABEL, 0, 0x01000020, (u32)&mpMenuTextPlayerTitle, 0, mpPlayerTitleMenuHandler }, // "Title:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU_262, 0x00000000, NULL }, // "Weapon of Choice:" - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextWeaponOfChoiceName, 0x00000000, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00000002, 0x00000001, 0x00000003, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00200002, 0x00000001, 0x00000002, mpAwardsMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000100, (u32)&mpMenuTextAward1, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000100, (u32)&mpMenuTextAward2, 0x00000000, NULL }, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + (u32)&mpMenuTextPlayerTitle, + 0, #else - { MENUITEMTYPE_LABEL, 0, 0x01000000, L_MPMENU_261, (u32)&mpMenuTextPlayerTitle, mpPlayerTitleMenuHandler }, // "Title:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU_262, 0x00000000, NULL }, // "Weapon of Choice:" - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextWeaponOfChoiceName, 0x00000000, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00200210, L_MPMENU_263, 0x00000000, mpAwardsMenuHandler }, // "Awards:" - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward1, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000120, (u32)&mpMenuTextAward2, 0x00000000, NULL }, + MENUITEMFLAG_LABEL_CUSTOMCOLOUR, + L_MPMENU_261, // "Title:" + (u32)&mpMenuTextPlayerTitle, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + mpPlayerTitleMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_MPMENU_262, // "Weapon of Choice:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_ALTCOLOUR, + (u32)&mpMenuTextWeaponOfChoiceName, + 0, + NULL, + }, +#if VERSION >= VERSION_JPN_FINAL + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002, + 0x00000001, + 0x00000003, + NULL, + }, +#endif + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, +#if VERSION >= VERSION_JPN_FINAL + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000001, + 0x00000002, + mpAwardsMenuHandler, + }, +#else + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_LIST_CUSTOMRENDER, + L_MPMENU_263, // "Awards:" + 0, + mpAwardsMenuHandler, + }, +#endif + { + MENUITEMTYPE_LABEL, + 0, +#if VERSION >= VERSION_JPN_FINAL + MENUITEMFLAG_LABEL_ALTCOLOUR, +#else + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_ALTCOLOUR, +#endif + (u32)&mpMenuTextAward1, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, +#if VERSION >= VERSION_JPN_FINAL + MENUITEMFLAG_LABEL_ALTCOLOUR, +#else + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_LABEL_ALTCOLOUR, +#endif + (u32)&mpMenuTextAward2, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEndscreenIndGameOverMenuDialog = { @@ -776,9 +997,23 @@ struct menudialogdef g_MpEndscreenChallengeFailedMenuDialog = { #if VERSION >= VERSION_NTSC_1_0 struct menuitem g_MpEndscreenConfirmNameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_250, 0x00000000, NULL }, // "Confirm player name:" - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, mpConfirmPlayerNameHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_250, // "Confirm player name:" + 0, + NULL, + }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0, + mpConfirmPlayerNameHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEndscreenConfirmNameMenuDialog = { @@ -791,10 +1026,31 @@ struct menudialogdef g_MpEndscreenConfirmNameMenuDialog = { }; struct menuitem g_MpEndscreenSavePlayerMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPWEAPONS_247, 0x00000000, NULL }, // "Save new player and statistics?" - { MENUITEMTYPE_SELECTABLE, 0, 0x0000002c, L_MPWEAPONS_248, 0x00000000, (void *)&g_MpEndscreenConfirmNameMenuDialog }, // "Save Now" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPWEAPONS_249, 0x00000000, NULL }, // "No Thanks!" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPWEAPONS_247, // "Save new player and statistics?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_248, // "Save Now" + 0, + (void *)&g_MpEndscreenConfirmNameMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_249, // "No Thanks!" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEndscreenSavePlayerMenuDialog = { diff --git a/src/game/mplayer/scenarios.c b/src/game/mplayer/scenarios.c index 3258f68f9..7f9f48179 100644 --- a/src/game/mplayer/scenarios.c +++ b/src/game/mplayer/scenarios.c @@ -938,8 +938,15 @@ void scenarioHighlightRoom(s16 room, s32 *arg1, s32 *arg2, s32 *arg3) } struct menuitem g_MpScenarioMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00020040, 0x00000078, 0x0000004d, scenarioScenarioMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_WIDE | MENUITEMFLAG_LOCKABLEMINOR, + 0x00000078, + 0x0000004d, + scenarioScenarioMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpScenarioMenuDialog = { @@ -952,8 +959,15 @@ struct menudialogdef g_MpScenarioMenuDialog = { }; struct menuitem g_MpQuickTeamScenarioMenuItems[] = { - { MENUITEMTYPE_LIST, 1, 0x00020040, 0x00000078, 0x0000004d, scenarioScenarioMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 1, + MENUITEMFLAG_LIST_WIDE | MENUITEMFLAG_LOCKABLEMINOR, + 0x00000078, + 0x0000004d, + scenarioScenarioMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickTeamScenarioMenuDialog = { diff --git a/src/game/mplayer/scenarios/capturethecase.inc b/src/game/mplayer/scenarios/capturethecase.inc index 2a2750392..6f210fef2 100644 --- a/src/game/mplayer/scenarios/capturethecase.inc +++ b/src/game/mplayer/scenarios/capturethecase.inc @@ -12,18 +12,95 @@ */ struct menuitem g_CtcOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS_493, MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_236, MPOPTION_CTC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_493, // "Kills Score" + MPOPTION_KILLSSCORE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_236, // "Show on Radar" + MPOPTION_CTC_SHOWONRADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CtcOptionsMenuDialog = { diff --git a/src/game/mplayer/scenarios/combat.inc b/src/game/mplayer/scenarios/combat.inc index 5cab6d32a..74f4c6ad3 100644 --- a/src/game/mplayer/scenarios/combat.inc +++ b/src/game/mplayer/scenarios/combat.inc @@ -7,18 +7,95 @@ */ struct menuitem g_MpCombatOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_228, MPOPTION_NOPLAYERHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Player Highlight" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_229, MPOPTION_NOPICKUPHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Pickup Highlight" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_228, // "No Player Highlight" + MPOPTION_NOPLAYERHIGHLIGHT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_229, // "No Pickup Highlight" + MPOPTION_NOPICKUPHIGHLIGHT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpCombatOptionsMenuDialog = { diff --git a/src/game/mplayer/scenarios/hackthatmac.inc b/src/game/mplayer/scenarios/hackthatmac.inc index 20b3c60b1..85b3c6787 100644 --- a/src/game/mplayer/scenarios/hackthatmac.inc +++ b/src/game/mplayer/scenarios/hackthatmac.inc @@ -10,19 +10,103 @@ #define HTM_NUM_TERMINALS 1 struct menuitem g_HtmOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS_493, MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_231, MPOPTION_HTM_HIGHLIGHTTERMINAL, menuhandlerMpCheckboxOption }, // "Highlight Terminal" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_238, MPOPTION_HTM_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_493, // "Kills Score" + MPOPTION_KILLSSCORE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_231, // "Highlight Terminal" + MPOPTION_HTM_HIGHLIGHTTERMINAL, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_238, // "Show on Radar" + MPOPTION_HTM_SHOWONRADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtmOptionsMenuDialog = { diff --git a/src/game/mplayer/scenarios/holdthebriefcase.inc b/src/game/mplayer/scenarios/holdthebriefcase.inc index 130c8bb62..931999dcd 100644 --- a/src/game/mplayer/scenarios/holdthebriefcase.inc +++ b/src/game/mplayer/scenarios/holdthebriefcase.inc @@ -10,19 +10,103 @@ */ struct menuitem g_HtbOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS_493, MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_237, MPOPTION_HTB_HIGHLIGHTBRIEFCASE, menuhandlerMpCheckboxOption }, // "Highlight Briefcase" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_238, MPOPTION_HTB_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_493, // "Kills Score" + MPOPTION_KILLSSCORE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_237, // "Highlight Briefcase" + MPOPTION_HTB_HIGHLIGHTBRIEFCASE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_238, // "Show on Radar" + MPOPTION_HTB_SHOWONRADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtbOptionsMenuDialog = { diff --git a/src/game/mplayer/scenarios/kingofthehill.inc b/src/game/mplayer/scenarios/kingofthehill.inc index 39eaf3f5e..0613e8609 100644 --- a/src/game/mplayer/scenarios/kingofthehill.inc +++ b/src/game/mplayer/scenarios/kingofthehill.inc @@ -31,20 +31,111 @@ s32 menuhandlerMpHillTime(s32 operation, struct menuitem *item, union handlerdat } struct menuitem g_KohOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS_493, MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_233, MPOPTION_KOH_HILLONRADAR, menuhandlerMpCheckboxOption }, // "Hill on Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_234, MPOPTION_KOH_MOBILEHILL, menuhandlerMpCheckboxOption }, // "Mobile Hill" - { MENUITEMTYPE_SLIDER, 0, 0x00020000, L_MPMENU_235, 0x0000006e, menuhandlerMpHillTime }, // "Time" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_493, // "Kills Score" + MPOPTION_KILLSSCORE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_233, // "Hill on Radar" + MPOPTION_KOH_HILLONRADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_234, // "Mobile Hill" + MPOPTION_KOH_MOBILEHILL, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_235, // "Time" + 0x0000006e, + menuhandlerMpHillTime, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_KohOptionsMenuDialog = { diff --git a/src/game/mplayer/scenarios/popacap.inc b/src/game/mplayer/scenarios/popacap.inc index 91a2ca56d..7ffccfb10 100644 --- a/src/game/mplayer/scenarios/popacap.inc +++ b/src/game/mplayer/scenarios/popacap.inc @@ -8,19 +8,103 @@ */ struct menuitem g_PacOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_222, MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_223, 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_224, MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_225, MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_226, MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_227, MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS_493, MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_230, MPOPTION_PAC_HIGHLIGHTTARGET, menuhandlerMpCheckboxOption }, // "Highlight Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_238, MPOPTION_PAC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_239, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_222, // "One-Hit Kills" + MPOPTION_ONEHITKILLS, + menuhandlerMpOneHitKills, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_223, // "Slow Motion" + 0, + menuhandlerMpSlowMotion, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_224, // "Fast Movement" + MPOPTION_FASTMOVEMENT, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_225, // "Display Team" + MPOPTION_DISPLAYTEAM, + menuhandlerMpDisplayTeam, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_226, // "No Radar" + MPOPTION_NORADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_227, // "No Auto-Aim" + MPOPTION_NOAUTOAIM, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_493, // "Kills Score" + MPOPTION_KILLSSCORE, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_230, // "Highlight Target" + MPOPTION_PAC_HIGHLIGHTTARGET, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_238, // "Show on Radar" + MPOPTION_PAC_SHOWONRADAR, + menuhandlerMpCheckboxOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_239, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_PacOptionsMenuDialog = { diff --git a/src/game/mplayer/setup.c b/src/game/mplayer/setup.c index 2c3af3a43..18f85d137 100644 --- a/src/game/mplayer/setup.c +++ b/src/game/mplayer/setup.c @@ -56,10 +56,31 @@ s32 menuhandlerMpTeamsLabel(s32 operation, struct menuitem *item, union handlerd } struct menuitem g_MpDropOutMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_196, 0x00000000, NULL }, // "Are you sure you want to drop out?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_197, 0x00000000, menuhandlerMpDropOut }, // "Drop Out" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_198, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_196, // "Are you sure you want to drop out?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_197, // "Drop Out" + 0, + menuhandlerMpDropOut, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_198, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpDropOutMenuDialog = { @@ -991,11 +1012,39 @@ s32 menuhandlerMpUsernamePassword(s32 operation, struct menuitem *item, union ha } struct menuitem g_MpSavePlayerMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_191, 0x00000000, NULL }, // "Your player file is always saved automatically." - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_192, 0x00000000, NULL }, // "Save a copy now?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_193, 0x00000000, NULL }, // "No" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_194, 0x00000000, menuhandlerMpConfirmSaveChr }, // "Yes" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_191, // "Your player file is always saved automatically." + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_192, // "Save a copy now?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_193, // "No" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_194, // "Yes" + 0, + menuhandlerMpConfirmSaveChr, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSavePlayerMenuDialog = { @@ -1009,10 +1058,24 @@ struct menudialogdef g_MpSavePlayerMenuDialog = { struct menuitem g_MpSaveSetupNameMenuItems[] = { #if VERSION != VERSION_JPN_FINAL - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_189, 0x00000000, NULL }, // "Enter a name for your game setup file:" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_189, // "Enter a name for your game setup file:" + 0, + NULL, + }, #endif - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, menuhandlerMpSetupName }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0, + menuhandlerMpSetupName, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSaveSetupNameMenuDialog = { @@ -1026,14 +1089,56 @@ struct menudialogdef g_MpSaveSetupNameMenuDialog = { struct menuitem g_MpSaveSetupExistsMenuItems[] = { #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPWEAPONS_230, (u32)&mpMenuTextSetupName, NULL }, // "Name:" - { MENUITEMTYPE_LABEL, 0, 0x00000230, (u32)&filemgrMenuTextDeviceName, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_MPWEAPONS_230, // "Name:" + (u32)&mpMenuTextSetupName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT, + (u32)&filemgrMenuTextDeviceName, + 0, + NULL, + }, #endif - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_184, 0x00000000, NULL }, // "Do you want to save over your original game file?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_185, 0x00000000, menuhandlerMpSaveSetupOverwrite }, // "Save Over Original" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_186, 0x00000000, menuhandlerMpSaveSetupCopy }, // "Save Copy" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_187, 0x00000000, NULL }, // "Do Not Save" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_184, // "Do you want to save over your original game file?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_185, // "Save Over Original" + 0, + menuhandlerMpSaveSetupOverwrite, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_186, // "Save Copy" + 0, + menuhandlerMpSaveSetupCopy, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_187, // "Do Not Save" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSaveSetupExistsMenuDialog = { @@ -1046,18 +1151,95 @@ struct menudialogdef g_MpSaveSetupExistsMenuDialog = { }; struct menuitem g_MpWeaponsMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 1, 0x00020090, L_MPMENU_174, 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000212, L_MPMENU_175, 0x00000000, NULL }, // "Current Weapon Setup:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_176, 0x00000000, menuhandlerMpWeaponSlot }, // "1:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_177, 0x00000001, menuhandlerMpWeaponSlot }, // "2:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_178, 0x00000002, menuhandlerMpWeaponSlot }, // "3:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_179, 0x00000003, menuhandlerMpWeaponSlot }, // "4:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_180, 0x00000004, menuhandlerMpWeaponSlot }, // "5:" - { MENUITEMTYPE_DROPDOWN, 0, 0x000a0080, L_MPMENU_181, 0x00000005, menuhandlerMpWeaponSlot }, // "6:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_182, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 1, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_174, // "Set:" + 0, + menuhandlerMpWeaponSetDropdown, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_MPMENU_175, // "Current Weapon Setup:" + 0, + NULL, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_176, // "1:" + 0, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_177, // "2:" + 0x00000001, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_178, // "3:" + 0x00000002, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_179, // "4:" + 0x00000003, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_180, // "5:" + 0x00000004, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_MPWEAPONSLOT, + L_MPMENU_181, // "6:" + 0x00000005, + menuhandlerMpWeaponSlot, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_182, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpWeaponsMenuDialog = { @@ -1070,16 +1252,79 @@ struct menudialogdef g_MpWeaponsMenuDialog = { }; struct menuitem g_MpQuickTeamWeaponsMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020090, L_MPMENU_174, 0x00000000, menuhandlerMpWeaponSetDropdown }, // "Set:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_176, (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "1:" - { MENUITEMTYPE_LABEL, 1, 0x00000002, L_MPMENU_177, (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "2:" - { MENUITEMTYPE_LABEL, 2, 0x00000002, L_MPMENU_178, (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "3:" - { MENUITEMTYPE_LABEL, 3, 0x00000002, L_MPMENU_179, (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "4:" - { MENUITEMTYPE_LABEL, 4, 0x00000002, L_MPMENU_180, (u32)&mpMenuTextWeaponNameForSlot, NULL }, // "5:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_182, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_DROPDOWN_BELOW | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_174, // "Set:" + 0, + menuhandlerMpWeaponSetDropdown, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_176, // "1:" + (u32)&mpMenuTextWeaponNameForSlot, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 1, + MENUITEMFLAG_00000002, + L_MPMENU_177, // "2:" + (u32)&mpMenuTextWeaponNameForSlot, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 2, + MENUITEMFLAG_00000002, + L_MPMENU_178, // "3:" + (u32)&mpMenuTextWeaponNameForSlot, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 3, + MENUITEMFLAG_00000002, + L_MPMENU_179, // "4:" + (u32)&mpMenuTextWeaponNameForSlot, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 4, + MENUITEMFLAG_00000002, + L_MPMENU_180, // "5:" + (u32)&mpMenuTextWeaponNameForSlot, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_182, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickTeamWeaponsMenuDialog = { @@ -1092,13 +1337,55 @@ struct menudialogdef g_MpQuickTeamWeaponsMenuDialog = { }; struct menuitem g_MpPlayerOptionsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_168, MPDISPLAYOPTION_HIGHLIGHTPICKUPS, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Pickups" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_169, MPDISPLAYOPTION_HIGHLIGHTPLAYERS, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Players" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_170, MPDISPLAYOPTION_HIGHLIGHTTEAMS, menuhandlerMpDisplayOptionCheckbox }, // "Highlight Teams" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_171, MPDISPLAYOPTION_RADAR, menuhandlerMpDisplayOptionCheckbox }, // "Radar" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_172, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_168, // "Highlight Pickups" + MPDISPLAYOPTION_HIGHLIGHTPICKUPS, + menuhandlerMpDisplayOptionCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_169, // "Highlight Players" + MPDISPLAYOPTION_HIGHLIGHTPLAYERS, + menuhandlerMpDisplayOptionCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_170, // "Highlight Teams" + MPDISPLAYOPTION_HIGHLIGHTTEAMS, + menuhandlerMpDisplayOptionCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_171, // "Radar" + MPDISPLAYOPTION_RADAR, + menuhandlerMpDisplayOptionCheckbox, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_172, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPlayerOptionsMenuDialog = { @@ -1111,22 +1398,127 @@ struct menudialogdef g_MpPlayerOptionsMenuDialog = { }; struct menuitem g_MpControlMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU_200, 0x00000000, menuhandlerMpControlStyle }, // "Control Style" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_201, OPTION_FORWARDPITCH, menuhandlerMpControlCheckbox }, // "Reverse Pitch" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_202, OPTION_LOOKAHEAD, menuhandlerMpControlCheckbox }, // "Look Ahead" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_203, OPTION_HEADROLL, menuhandlerMpControlCheckbox }, // "Head Roll" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_204, OPTION_AUTOAIM, menuhandlerMpControlCheckbox }, // "Auto-Aim" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPMENU_205, 0x00000000, menuhandlerMpAimControl }, // "Aim Control" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_206, OPTION_SIGHTONSCREEN, menuhandlerMpControlCheckbox }, // "Sight on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_207, OPTION_ALWAYSSHOWTARGET, menuhandlerMpControlCheckbox }, // "Show Target" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_208, OPTION_SHOWZOOMRANGE, menuhandlerMpControlCheckbox }, // "Show Zoom Range" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_209, OPTION_AMMOONSCREEN, menuhandlerMpControlCheckbox }, // "Ammo on Screen" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_210, OPTION_SHOWGUNFUNCTION, menuhandlerMpControlCheckbox }, // "Gun Function" - { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPMENU_211, OPTION_PAINTBALL, menuhandlerMpControlCheckbox }, // "Paintball" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_212, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPMENU_200, // "Control Style" + 0, + menuhandlerMpControlStyle, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_201, // "Reverse Pitch" + OPTION_FORWARDPITCH, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_202, // "Look Ahead" + OPTION_LOOKAHEAD, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_203, // "Head Roll" + OPTION_HEADROLL, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_204, // "Auto-Aim" + OPTION_AUTOAIM, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPMENU_205, // "Aim Control" + 0, + menuhandlerMpAimControl, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_206, // "Sight on Screen" + OPTION_SIGHTONSCREEN, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_207, // "Show Target" + OPTION_ALWAYSSHOWTARGET, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_208, // "Zoom Range" + OPTION_SHOWZOOMRANGE, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_209, // "Ammo on Screen" + OPTION_AMMOONSCREEN, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_210, // "Gun Function" + OPTION_SHOWGUNFUNCTION, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + 0, + L_MPMENU_211, // "Paintball" + OPTION_PAINTBALL, + menuhandlerMpControlCheckbox, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_212, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpControlMenuDialog = { @@ -1139,8 +1531,15 @@ struct menudialogdef g_MpControlMenuDialog = { }; struct menuitem g_MpCompletedChallengesMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x00000078, 0x0000004d, mpChallengesListHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000078, + 0x0000004d, + mpChallengesListHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpCompletedChallengesMenuDialog = { @@ -1208,43 +1607,247 @@ char *mpMenuTextUsernamePassword(struct menuitem *item) #endif struct menuitem g_MpPlayerStatsMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_146, (u32)&mpMenuTextKills, NULL }, // "Kills:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_147, (u32)&mpMenuTextDeaths, NULL }, // "Deaths:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_148, (u32)&mpMenuTextAccuracy, NULL }, // "Accuracy:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_149, (u32)&mpMenuTextHeadShots, NULL }, // "Head Shots:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_150, (u32)&mpMenuTextAmmoUsed, NULL }, // "Ammo Used:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_151, (u32)&mpMenuTextDamageDealt, NULL }, // "Damage Dealt:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_152, (u32)&mpMenuTextPainReceived, NULL }, // "Pain Received:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_153, (u32)&mpMenuTextGamesPlayed, NULL }, // "Games Played:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_154, (u32)&mpMenuTextGamesWon, NULL }, // "Games Won:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_155, (u32)&mpMenuTextGamesLost, NULL }, // "Games Lost:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_156, (u32)&mpMenuTextTime, NULL }, // "Time:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_157, (u32)&mpMenuTextDistance, NULL }, // "Distance:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000210, L_MPMENU_158, 0x00000000, NULL }, // "Medals Won:" - { MENUITEMTYPE_LABEL, 2, 0x00200000, L_MPMENU_159, (u32)&mpMenuTextMedalAccuracy, mpMedalMenuHandler }, // "Accuracy:" - { MENUITEMTYPE_LABEL, 1, 0x00200000, L_MPMENU_160, (u32)&mpMenuTextMedalHeadShot, mpMedalMenuHandler }, // "Head Shot:" - { MENUITEMTYPE_LABEL, 0, 0x00200000, L_MPMENU_161, (u32)&mpMenuTextMedalKillMaster, mpMedalMenuHandler }, // "KillMaster:" - { MENUITEMTYPE_LABEL, 3, 0x00200000, L_MPMENU_162, (u32)&mpMenuTextMedalSurvivor, mpMedalMenuHandler }, // "Survivor:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_163, 0x00000000, NULL }, // "Your Title:" - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&mpMenuTextPlayerTitle, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_146, // "Kills:" + (u32)&mpMenuTextKills, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_147, // "Deaths:" + (u32)&mpMenuTextDeaths, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_148, // "Accuracy:" + (u32)&mpMenuTextAccuracy, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_149, // "Head Shots:" + (u32)&mpMenuTextHeadShots, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_150, // "Ammo Used:" + (u32)&mpMenuTextAmmoUsed, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_151, // "Damage Dealt:" + (u32)&mpMenuTextDamageDealt, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_152, // "Pain Received:" + (u32)&mpMenuTextPainReceived, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_153, // "Games Played:" + (u32)&mpMenuTextGamesPlayed, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_154, // "Games Won:" + (u32)&mpMenuTextGamesWon, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_155, // "Games Lost:" + (u32)&mpMenuTextGamesLost, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_156, // "Time:" + (u32)&mpMenuTextTime, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_157, // "Distance:" + (u32)&mpMenuTextDistance, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SMALLFONT, + L_MPMENU_158, // "Medals Won:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 2, + MENUITEMFLAG_LIST_CUSTOMRENDER, + L_MPMENU_159, // "Accuracy:" + (u32)&mpMenuTextMedalAccuracy, + mpMedalMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 1, + MENUITEMFLAG_LIST_CUSTOMRENDER, + L_MPMENU_160, // "Head Shot:" + (u32)&mpMenuTextMedalHeadShot, + mpMedalMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + L_MPMENU_161, // "KillMaster:" + (u32)&mpMenuTextMedalKillMaster, + mpMedalMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 3, + MENUITEMFLAG_LIST_CUSTOMRENDER, + L_MPMENU_162, // "Survivor:" + (u32)&mpMenuTextMedalSurvivor, + mpMedalMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_163, // "Your Title:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&mpMenuTextPlayerTitle, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_MPWEAPONS_219, // "USERNAME:" + 0, + menuhandlerMpUsernamePassword, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS_219, 0x00000000, menuhandlerMpUsernamePassword }, // "USERNAME:" - { MENUITEMTYPE_LABEL, 0, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS_220, 0x00000000, menuhandlerMpUsernamePassword }, // "PASSWORD:" - { MENUITEMTYPE_LABEL, 1, 0x00000220, (u32)&mpMenuTextUsernamePassword, 0x00000000, menuhandlerMpUsernamePassword }, + (u32)&mpMenuTextUsernamePassword, #else - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS_219, 0x00000000, menuhandlerMpUsernamePassword }, // "USERNAME:" - { MENUITEMTYPE_LABEL, 0, 0x00000220, 0x51f0, 0x00000000, menuhandlerMpUsernamePassword }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPWEAPONS_220, 0x00000000, menuhandlerMpUsernamePassword }, // "PASSWORD:" - { MENUITEMTYPE_LABEL, 0, 0x00000220, 0x51f1, 0x00000000, menuhandlerMpUsernamePassword }, + 0x51f0, #endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_164, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + 0, + menuhandlerMpUsernamePassword, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_MPWEAPONS_220, // "PASSWORD:" + 0, + menuhandlerMpUsernamePassword, + }, + { + MENUITEMTYPE_LABEL, + (VERSION >= VERSION_NTSC_1_0 ? 1 : 0), + MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT, +#if VERSION >= VERSION_NTSC_1_0 + (u32)&mpMenuTextUsernamePassword, +#else + 0x51f1, +#endif + 0, + menuhandlerMpUsernamePassword, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_164, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPlayerStatsMenuDialog = { @@ -1722,10 +2325,31 @@ s32 menudialogMpSimulant(s32 operation, struct menudialogdef *dialogdef, union h } struct menuitem g_MpCharacterMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00004230, (u32)&mpMenuTextBodyName, 0x00000000, NULL }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x00000022, menuhandlerMpCharacterHead }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00000000, 0x00000000, 0x0000001b, menuhandlerMpCharacterBody }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE | MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_DARKERBG, + (u32)&mpMenuTextBodyName, + 0, + NULL, + }, + { + MENUITEMTYPE_CAROUSEL, + 0, + 0, + 0, + 0x00000022, + menuhandlerMpCharacterHead, + }, + { + MENUITEMTYPE_CAROUSEL, + 0, + 0, + 0, + 0x0000001b, + menuhandlerMpCharacterBody, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpCharacterMenuDialog = { @@ -1738,8 +2362,15 @@ struct menudialogdef g_MpCharacterMenuDialog = { }; struct menuitem g_MpPlayerNameMenuItems[] = { - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, mpPlayerNameMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0, + mpPlayerNameMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPlayerNameMenuDialog = { @@ -1752,9 +2383,23 @@ struct menudialogdef g_MpPlayerNameMenuDialog = { }; struct menuitem g_MpLoadSettingsMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x00000078, 0x00000042, mpLoadSettingsMenuHandler }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextMpconfigMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x00000078, + 0x00000042, + mpLoadSettingsMenuHandler, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&mpMenuTextMpconfigMarquee, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpLoadSettingsMenuDialog = { @@ -1767,9 +2412,23 @@ struct menudialogdef g_MpLoadSettingsMenuDialog = { }; struct menuitem g_MpLoadPresetMenuItems[] = { - { MENUITEMTYPE_LIST, 1, 0x00000000, 0x00000078, 0x00000042, mpLoadSettingsMenuHandler }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextMpconfigMarquee, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 1, + 0, + 0x00000078, + 0x00000042, + mpLoadSettingsMenuHandler, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&mpMenuTextMpconfigMarquee, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpLoadPresetMenuDialog = { @@ -1782,9 +2441,23 @@ struct menudialogdef g_MpLoadPresetMenuDialog = { }; struct menuitem g_MpLoadPlayerMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000000, 0x0000007e, 0x00000042, mpLoadPlayerMenuHandler }, - { MENUITEMTYPE_LABEL, 0, 0x00000200, L_MPMENU_138, 0x00000000, NULL }, // "B Button to cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + 0, + 0x0000007e, + 0x00000042, + mpLoadPlayerMenuHandler, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SMALLFONT, + L_MPMENU_138, // "B Button to cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpLoadPlayerMenuDialog = { @@ -1797,8 +2470,15 @@ struct menudialogdef g_MpLoadPlayerMenuDialog = { }; struct menuitem g_MpArenaMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00020000, 0x00000078, 0x0000004d, mpArenaMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + 0x00000078, + 0x0000004d, + mpArenaMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpArenaMenuDialog = { @@ -1811,13 +2491,55 @@ struct menudialogdef g_MpArenaMenuDialog = { }; struct menuitem g_MpLimitsMenuItems[] = { - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU_108, 0x0000003c, menuhandlerMpTimeLimitSlider }, // "Time" - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MPMENU_109, 0x00000064, menuhandlerMpScoreLimitSlider }, // "Score" - { MENUITEMTYPE_SLIDER, 0, 0x00020010, L_MISC_447, 0x00000190, menuhandlerMpTeamScoreLimitSlider }, // "Team Score" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_110, 0x00000000, menuhandlerMpRestoreScoreDefaults }, // "Restore Defaults" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_111, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_108, // "Time" + 0x0000003c, + menuhandlerMpTimeLimitSlider, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_109, // "Score" + 0x00000064, + menuhandlerMpScoreLimitSlider, + }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + L_MISC_447, // "Team Score" + 0x00000190, + menuhandlerMpTeamScoreLimitSlider, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_110, // "Restore Defaults" + 0, + menuhandlerMpRestoreScoreDefaults, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_111, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpLimitsMenuDialog = { @@ -1830,14 +2552,63 @@ struct menudialogdef g_MpLimitsMenuDialog = { }; struct menuitem g_MpHandicapsMenuItems[] = { - { MENUITEMTYPE_SLIDER, 0, 0x00020010, (u32)&mpMenuTextHandicapPlayerName, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 1, 0x00020010, (u32)&mpMenuTextHandicapPlayerName, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 2, 0x00020010, (u32)&mpMenuTextHandicapPlayerName, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SLIDER, 3, 0x00020010, (u32)&mpMenuTextHandicapPlayerName, 0x000000ff, menuhandlerMpHandicapPlayer }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_110, 0x00000000, menuhandlerMpRestoreHandicapDefaults }, // "Restore Defaults" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_111, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SLIDER, + 0, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextHandicapPlayerName, + 0x000000ff, + menuhandlerMpHandicapPlayer, + }, + { + MENUITEMTYPE_SLIDER, + 1, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextHandicapPlayerName, + 0x000000ff, + menuhandlerMpHandicapPlayer, + }, + { + MENUITEMTYPE_SLIDER, + 2, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextHandicapPlayerName, + 0x000000ff, + menuhandlerMpHandicapPlayer, + }, + { + MENUITEMTYPE_SLIDER, + 3, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextHandicapPlayerName, + 0x000000ff, + menuhandlerMpHandicapPlayer, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_110, // "Restore Defaults" + 0, + menuhandlerMpRestoreHandicapDefaults, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_111, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpHandicapsMenuDialog = { @@ -1850,8 +2621,15 @@ struct menudialogdef g_MpHandicapsMenuDialog = { }; struct menuitem g_MpReadyMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_106, 0x00000000, NULL }, // "...and waiting" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_106, // "...and waiting" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpReadyMenuDialog = { @@ -2200,9 +2978,23 @@ s32 menudialogMpSimulants(s32 operation, struct menudialogdef *dialogdef, union } struct menuitem g_MpAddChangeSimulantMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00020000, 0x00000078, 0x00000042, mpAddChangeSimulantMenuHandler }, - { MENUITEMTYPE_MARQUEE, 0, 0x00000a00, (u32)&mpMenuTextSimulantDescription, 0x00000000, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + 0x00000078, + 0x00000042, + mpAddChangeSimulantMenuHandler, + }, + { + MENUITEMTYPE_MARQUEE, + 0, + MENUITEMFLAG_SMALLFONT | MENUITEMFLAG_MARQUEE_FADEBOTHSIDES, + (u32)&mpMenuTextSimulantDescription, + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpAddSimulantMenuDialog = { @@ -2224,9 +3016,23 @@ struct menudialogdef g_MpChangeSimulantMenuDialog = { }; struct menuitem g_MpSimulantCharacterMenuItems[] = { - { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x00000025, menuhandlerMpSimulantHead }, - { MENUITEMTYPE_CAROUSEL, 0, 0x00020000, 0x00000000, 0x0000001b, menuhandlerMpSimulantBody }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_CAROUSEL, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + 0, + 0x00000025, + menuhandlerMpSimulantHead, + }, + { + MENUITEMTYPE_CAROUSEL, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + 0, + 0x0000001b, + menuhandlerMpSimulantBody, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSimulantCharacterMenuDialog = { @@ -2239,13 +3045,55 @@ struct menudialogdef g_MpSimulantCharacterMenuDialog = { }; struct menuitem g_MpEditSimulantMenuItems[] = { - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_095, 0x00000000, mpBotDifficultyMenuHandler }, // "Difficulty:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_096, 0x00000000, menuhandlerMpChangeSimulantType }, // "Change Type..." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_097, 0x00000000, (void *)&g_MpSimulantCharacterMenuDialog }, // "Character..." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_098, 0x00000000, menuhandlerMpDeleteSimulant }, // "Delete Simulant" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_099, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_095, // "Difficulty:" + 0, + mpBotDifficultyMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_096, // "Change Type..." + 0, + menuhandlerMpChangeSimulantType, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_097, // "Character..." + 0, + (void *)&g_MpSimulantCharacterMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_098, // "Delete Simulant" + 0, + menuhandlerMpDeleteSimulant, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_099, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpEditSimulantMenuDialog = { @@ -2258,20 +3106,111 @@ struct menudialogdef g_MpEditSimulantMenuDialog = { }; struct menuitem g_MpSimulantsMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_084, 0x00000000, menuhandlerMpAddSimulant }, // "Add Simulant..." - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_085, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "1:" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000000, L_MPMENU_086, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "2:" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000000, L_MPMENU_087, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "3:" - { MENUITEMTYPE_SELECTABLE, 3, 0x00000000, L_MPMENU_088, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "4:" - { MENUITEMTYPE_SELECTABLE, 4, 0x00000000, L_MPMENU_089, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "5:" - { MENUITEMTYPE_SELECTABLE, 5, 0x00000000, L_MPMENU_090, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "6:" - { MENUITEMTYPE_SELECTABLE, 6, 0x00000000, L_MPMENU_091, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "7:" - { MENUITEMTYPE_SELECTABLE, 7, 0x00000000, L_MPMENU_092, (u32)&mpMenuTextSimulantName, menuhandlerMpSimulantSlot }, // "8:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_093, 0x00000000, menuhandlerMpClearAllSimulants }, // "Clear All" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_094, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_084, // "Add Simulant..." + 0, + menuhandlerMpAddSimulant, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_085, // "1:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + 0, + L_MPMENU_086, // "2:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + 0, + L_MPMENU_087, // "3:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 3, + 0, + L_MPMENU_088, // "4:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 4, + 0, + L_MPMENU_089, // "5:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 5, + 0, + L_MPMENU_090, // "6:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 6, + 0, + L_MPMENU_091, // "7:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 7, + 0, + L_MPMENU_092, // "8:" + (u32)&mpMenuTextSimulantName, + menuhandlerMpSimulantSlot, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_093, // "Clear All" + 0, + menuhandlerMpClearAllSimulants, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_094, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSimulantsMenuDialog = { @@ -2519,15 +3458,71 @@ char *mpMenuTextSelectTuneOrTunes(struct menuitem *item) } struct menuitem g_MpAutoTeamMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_076, 0x00000000, menuhandlerMpTwoTeams }, // "Two Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_077, 0x00000000, menuhandlerMpThreeTeams }, // "Three Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_078, 0x00000000, menuhandlerMpFourTeams }, // "Four Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_079, 0x00000000, menuhandlerMpMaximumTeams }, // "Maximum Teams" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_080, 0x00000000, menuhandlerMpHumansVsSimulants }, // "Humans vs. Simulants" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_MPMENU_081, 0x00000000, menuhandlerMpHumanSimulantPairs }, // "Human-Simulant Pairs" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_082, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_076, // "Two Teams" + 0, + menuhandlerMpTwoTeams, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_077, // "Three Teams" + 0, + menuhandlerMpThreeTeams, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_078, // "Four Teams" + 0, + menuhandlerMpFourTeams, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_079, // "Maximum Teams" + 0, + menuhandlerMpMaximumTeams, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_080, // "Humans vs. Simulants" + 0, + menuhandlerMpHumansVsSimulants, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_081, // "Human-Simulant Pairs" + 0, + menuhandlerMpHumanSimulantPairs, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_082, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpAutoTeamMenuDialog = { @@ -2540,42 +3535,266 @@ struct menudialogdef g_MpAutoTeamMenuDialog = { }; struct menuitem g_MpTeamsMenuItems[] = { - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_071, 0x00000002, menuhandlerMpTeamsEnabled }, // "Teams Enabled" + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_071, // "Teams Enabled" + 0x00000002, + menuhandlerMpTeamsEnabled, + }, #if VERSION >= VERSION_PAL_FINAL - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x85, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_072, 0x00000000, menuhandlerMpTeamsLabel }, // "Teams:" - { MENUITEMTYPE_DROPDOWN, 0, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 1, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 2, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 3, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 4, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 5, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 6, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 7, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 8, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 9, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 10, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 11, 0x00021000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x85, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_072, // "Teams:" + 0, + menuhandlerMpTeamsLabel, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 1, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 2, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 3, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 4, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 5, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 6, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 7, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 8, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 9, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 10, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 11, + MENUITEMFLAG_ADJUSTWIDTH | MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, #else - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_072, 0x00000000, menuhandlerMpTeamsLabel }, // "Teams:" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 1, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 2, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 3, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 4, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 5, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 6, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 7, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 8, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 9, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 10, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, - { MENUITEMTYPE_DROPDOWN, 11, 0x00020000, (u32)&mpMenuTextChrNameForTeamSetup, 0x00000000, menuhandlerMpTeamSlot }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_072, // "Teams:" + 0, + menuhandlerMpTeamsLabel, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 1, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 2, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 3, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 4, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 5, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 6, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 7, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 8, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 9, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 10, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, + { + MENUITEMTYPE_DROPDOWN, + 11, + MENUITEMFLAG_LOCKABLEMINOR, + (u32)&mpMenuTextChrNameForTeamSetup, + 0, + menuhandlerMpTeamSlot, + }, #endif - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_073, 0x00000000, (void *)&g_MpAutoTeamMenuDialog }, // "Auto Team..." - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_074, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_073, // "Auto Team..." + 0, + (void *)&g_MpAutoTeamMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_074, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpTeamsMenuDialog = { @@ -2850,8 +4069,15 @@ s32 menudialog0017e3fc(s32 operation, struct menudialogdef *dialogdef, union han } struct menuitem g_MpSelectTunesMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00020000, 0x00000078, 0x0000004d, mpSelectTuneListHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + 0x00000078, + 0x0000004d, + mpSelectTuneListHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSelectTunesMenuDialog = { @@ -2864,14 +4090,63 @@ struct menudialogdef g_MpSelectTunesMenuDialog = { }; struct menuitem g_MpSoundtrackMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_MPMENU_063, 0x00000000, NULL }, // "Current:" - { MENUITEMTYPE_LABEL, 0, 0x00000000, L_OPTIONS_003, (u32)&mpMenuTextCurrentTrack, NULL }, // "" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, (u32)&mpMenuTextSelectTuneOrTunes, 0x00000000, (void *)&g_MpSelectTunesMenuDialog }, - { MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU_064, 0x00000000, menuhandlerMpMultipleTunes }, // "Multiple Tunes" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_065, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_MPMENU_063, // "Current:" + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + 0, + L_OPTIONS_003, // "" + (u32)&mpMenuTextCurrentTrack, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + (u32)&mpMenuTextSelectTuneOrTunes, + 0, + (void *)&g_MpSelectTunesMenuDialog, + }, + { + MENUITEMTYPE_CHECKBOX, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_064, // "Multiple Tunes" + 0, + menuhandlerMpMultipleTunes, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_065, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpSoundtrackMenuDialog = { @@ -2884,8 +4159,15 @@ struct menudialogdef g_MpSoundtrackMenuDialog = { }; struct menuitem g_MpChangeTeamNameMenuItems[] = { - { MENUITEMTYPE_KEYBOARD, 0, 0x00000000, 0x00000000, 0x00000000, mpTeamNameMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_KEYBOARD, + 0, + 0, + 0, + 0, + mpTeamNameMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpChangeTeamNameMenuDialog = { @@ -2898,17 +4180,87 @@ struct menudialogdef g_MpChangeTeamNameMenuDialog = { }; struct menuitem g_MpTeamNamesMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_008, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Red" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_009, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Yellow" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_010, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Blue" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_011, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Magenta" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_012, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Cyan" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_013, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Orange" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_014, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Pink" - { MENUITEMTYPE_SELECTABLE, 0, 0x00020000, L_OPTIONS_015, (u32)&mpMenuTextTeamName, menuhandlerMpTeamNameSlot }, // "Brown" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_060, 0x00000000, NULL }, // "Back" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_008, // "Red" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_009, // "Yellow" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_010, // "Blue" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_011, // "Magenta" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_012, // "Cyan" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_013, // "Orange" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_014, // "Pink" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_OPTIONS_015, // "Brown" + (u32)&mpMenuTextTeamName, + menuhandlerMpTeamNameSlot, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_060, // "Back" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpTeamNamesMenuDialog = { @@ -2921,11 +4273,39 @@ struct menudialogdef g_MpTeamNamesMenuDialog = { }; struct menuitem g_MpConfirmChallengeViaListOrDetailsMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_057, 0x00000000, menuhandler0017e38c }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_MPCONFIG, + 0, + 0x0000007c, + PAL ? 0x41 : 0x37, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_057, // "Accept" + 0, + menuhandler0017e38c, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_058, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpConfirmChallengeViaListOrDetailsMenuDialog = { @@ -2938,15 +4318,57 @@ struct menudialogdef g_MpConfirmChallengeViaListOrDetailsMenuDialog = { }; struct menuitem g_MpChallengesListOrDetailsMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00200000, 0x00000078, 0x0000004d, mpChallengesListMenuHandler }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000078, + 0x0000004d, + mpChallengesListMenuHandler, + }, #if VERSION < VERSION_NTSC_1_0 - { MENUITEMTYPE_LABEL, 2, 0x110, 0x7f179198, 0, (void *)0x7f1790a8 }, + { + MENUITEMTYPE_LABEL, + 2, + MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_LABEL_ALTCOLOUR, + 0x7f179198, + 0, + (void *)0x7f1790a8, + }, #endif - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCHALLENGE, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, menuhandler0017e9d8 }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, menuhandler0017e9d8 }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_171, 0x00000000, menuhandlerMpStartChallenge }, // "Start Challenge" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_051, 0x00000000, menuhandlerMpAbortChallenge }, // "Abort Challenge" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_MPCHALLENGE, + 0, + 0x0000007c, + PAL ? 0x41 : 0x37, + menuhandler0017e9d8, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + menuhandler0017e9d8, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPWEAPONS_171, // "Start Challenge" + 0, + menuhandlerMpStartChallenge, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_051, // "Abort Challenge" + 0, + menuhandlerMpAbortChallenge, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpChallengeListOrDetailsMenuDialog = { @@ -2987,11 +4409,39 @@ struct menudialogdef g_MpChallengeListOrDetailsViaAdvChallengeMenuDialog = { }; struct menuitem g_MpConfirmChallengeMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MPCONFIG, 0x00000000, 0x0000007c, PAL ? 0x41 : 0x37, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_057, 0x00000000, menuhandler0017ec64 }, // "Accept" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_058, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_MPCONFIG, + 0, + 0x0000007c, + PAL ? 0x41 : 0x37, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_057, // "Accept" + 0, + menuhandler0017ec64, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_058, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpConfirmChallengeMenuDialog = { @@ -3204,8 +4654,15 @@ s32 menuhandler0017ec64(s32 operation, struct menuitem *item, union handlerdata } struct menuitem g_MpChallengesMenuItems[] = { - { MENUITEMTYPE_LIST, 1, 0x00200000, 0x00000078, 0x0000004d, mpChallengesListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 1, + MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000078, + 0x0000004d, + mpChallengesListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpChallengesMenuDialog = { @@ -3728,17 +5185,87 @@ void mpCloseDialogsForNewSetup(void) struct menudialogdef g_MpAbortMenuDialog; struct menuitem g_MpStuffMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_041, 0x00000000, (void *)&g_MpSoundtrackMenuDialog }, // "Soundtrack" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_042, 0x00000000, (void *)&g_MpTeamNamesMenuDialog }, // "Team Names" - { MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU_044, 0x00000000, menuhandlerMpLock }, // "Lock" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_OPTIONS_216, 0x00000000, menuhandlerScreenRatio }, // "Ratio" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MPWEAPONS_154, 0x00000000, menuhandlerScreenSplit }, // "Split" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_036, 0x00000000, (void *)&g_MpReadyMenuDialog }, // "Start Game" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_037, 0x00000000, (void *)&g_MpDropOutMenuDialog }, // "Drop Out" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_027, 0x00000000, (void *)&g_MpAbortMenuDialog }, // "Abort Game" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_041, // "Soundtrack" + 0, + (void *)&g_MpSoundtrackMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_042, // "Team Names" + 0, + (void *)&g_MpTeamNamesMenuDialog, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_044, // "Lock" + 0, + menuhandlerMpLock, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_OPTIONS_216, // "Ratio" + 0, + menuhandlerScreenRatio, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MPWEAPONS_154, // "Split" + 0, + menuhandlerScreenSplit, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_036, // "Start Game" + 0, + (void *)&g_MpReadyMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_037, // "Drop Out" + 0, + (void *)&g_MpDropOutMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_027, // "Abort Game" + 0, + (void *)&g_MpAbortMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpStuffMenuDialog = { @@ -3760,15 +5287,71 @@ struct menudialogdef g_MpStuffViaAdvChallengeMenuDialog = { }; struct menuitem g_MpPlayerSetup234MenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_030, (u32)&mpGetCurrentPlayerName, (void *)&g_MpPlayerNameMenuDialog }, // "Name" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_031, 0x00000000, (void *)&g_MpCharacterMenuDialog }, // "Character" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_033, 0x00000000, (void *)&g_MpControlMenuDialog }, // "Control" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_034, 0x00000000, (void *)&g_MpPlayerOptionsMenuDialog }, // "Player Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_035, 0x00000000, (void *)&g_MpPlayerStatsMenuDialog }, // "Statistics" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_029, 0x00000000, (void *)&g_MpLoadPlayerMenuDialog }, // "Load Player" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, (u32)&mpMenuTextSavePlayerOrCopy, 0x00000000, menuhandlerMpSavePlayer }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_030, // "Name" + (u32)&mpGetCurrentPlayerName, + (void *)&g_MpPlayerNameMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_031, // "Character" + 0, + (void *)&g_MpCharacterMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_033, // "Control" + 0, + (void *)&g_MpControlMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_034, // "Player Options" + 0, + (void *)&g_MpPlayerOptionsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_035, // "Statistics" + 0, + (void *)&g_MpPlayerStatsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_029, // "Load Player" + 0, + (void *)&g_MpLoadPlayerMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + (u32)&mpMenuTextSavePlayerOrCopy, + 0, + menuhandlerMpSavePlayer, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpPlayerSetupViaAdvMenuDialog = { @@ -3799,10 +5382,31 @@ struct menudialogdef g_MpPlayerSetupViaQuickGoMenuDialog = { }; struct menuitem g_MpAbortMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000010, L_MPMENU_053, 0x00000000, NULL }, // "Are you sure you want to abort the game?" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_054, 0x00000000, menuhandler0017ef30 }, // "Abort" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_055, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_053, // "Are you sure you want to abort the game?" + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_054, // "Abort" + 0, + menuhandler0017ef30, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_055, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpAbortMenuDialog = { @@ -3815,18 +5419,95 @@ struct menudialogdef g_MpAbortMenuDialog = { }; struct menuitem g_MpAdvancedSetupMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU_019, (u32)&mpMenuTextScenarioShortName, (void *)&g_MpScenarioMenuDialog }, // "Scenario" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_021, 0x00000000, menuhandlerMpOpenOptions }, // "Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_020, (u32)&mpMenuTextArenaName, (void *)&g_MpArenaMenuDialog }, // "Arena" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_023, 0x00000000, (void *)&g_MpWeaponsMenuDialog }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_024, 0x00000000, (void *)&g_MpLimitsMenuDialog }, // "Limits" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPWEAPONS_184, 0x00000000, (void *)&g_MpHandicapsMenuDialog }, // "Player Handicaps" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_025, 0x00000000, (void *)&g_MpSimulantsMenuDialog }, // "Simulants" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_022, 0x00000000, (void *)&g_MpTeamsMenuDialog }, // "Teams" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060004, L_MPMENU_018, 0x00000000, (void *)&g_MpLoadSettingsMenuDialog }, // "Load Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_026, 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_019, // "Scenario" + (u32)&mpMenuTextScenarioShortName, + (void *)&g_MpScenarioMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_021, // "Options" + 0, + menuhandlerMpOpenOptions, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_020, // "Arena" + (u32)&mpMenuTextArenaName, + (void *)&g_MpArenaMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_023, // "Weapons" + 0, + (void *)&g_MpWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_024, // "Limits" + 0, + (void *)&g_MpLimitsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPWEAPONS_184, // "Player Handicaps" + 0, + (void *)&g_MpHandicapsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_025, // "Simulants" + 0, + (void *)&g_MpSimulantsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_022, // "Teams" + 0, + (void *)&g_MpTeamsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_018, // "Load Settings" + 0, + (void *)&g_MpLoadSettingsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_026, // "Save Settings" + 0, + menuhandlerMpSaveSettings, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpAdvancedSetupMenuDialog = { @@ -3848,13 +5529,41 @@ struct menudialogdef g_MpAdvancedSetupViaAdvChallengeMenuDialog = { }; struct menuitem g_MpQuickGoMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_456, 0x00000000, (void *)&g_MpReadyMenuDialog }, // "Start Game" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_456, // "Start Game" + 0, + (void *)&g_MpReadyMenuDialog, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_029, 0x00000000, (void *)&g_MpLoadPlayerMenuDialog }, // "Load Player" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_029, // "Load Player" + 0, + (void *)&g_MpLoadPlayerMenuDialog, + }, #endif - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_458, 0x00000000, (void *)&g_MpPlayerSetupViaQuickGoMenuDialog }, // "Player Settings" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MISC_457, 0x00000000, (void *)&g_MpDropOutMenuDialog }, // "Drop Out" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_458, // "Player Settings" + 0, + (void *)&g_MpPlayerSetupViaQuickGoMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MISC_457, // "Drop Out" + 0, + (void *)&g_MpDropOutMenuDialog, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickGoMenuDialog = { @@ -3867,24 +5576,143 @@ struct menudialogdef g_MpQuickGoMenuDialog = { }; struct menuitem g_MpQuickTeamGameSetupMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00020004, L_MPMENU_019, (u32)&mpMenuTextScenarioShortName, (void *)&g_MpQuickTeamScenarioMenuDialog }, // "Scenario" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPMENU_021, 0x00000000, menuhandlerMpOpenOptions }, // "Options" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_020, (u32)&mpMenuTextArenaName, (void *)&g_MpArenaMenuDialog }, // "Arena" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_023, (u32)&mpMenuTextWeaponSetName, (void *)&g_MpQuickTeamWeaponsMenuDialog }, // "Weapons" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000004, L_MPMENU_024, 0x00000000, (void *)&g_MpLimitsMenuDialog }, // "Limits" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, menuhandlerQuickTeamSeparator }, - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC_449, 0x00000000, menuhandlerPlayerTeam }, // "Player 1 Team" - { MENUITEMTYPE_DROPDOWN, 1, 0x00000000, L_MISC_450, 0x00000000, menuhandlerPlayerTeam }, // "Player 2 Team" - { MENUITEMTYPE_DROPDOWN, 2, 0x00000000, L_MISC_451, 0x00000000, menuhandlerPlayerTeam }, // "Player 3 Team" - { MENUITEMTYPE_DROPDOWN, 3, 0x00000000, L_MISC_452, 0x00000000, menuhandlerPlayerTeam }, // "Player 4 Team" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC_453, 0x00000000, menuhandlerMpNumberOfSimulants }, // "Number Of Simulants" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC_454, 0x00000000, menuhandlerMpSimulantsPerTeam }, // "Simulants Per Team" - { MENUITEMTYPE_DROPDOWN, 0, 0x00000000, L_MISC_455, 0x00000000, mpQuickTeamSimulantDifficultyHandler }, // "Simulant Difficulty" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MISC_448, 0x00000000, menuhandlerMpFinishedSetup }, // "Finished Setup" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00060000, L_MPMENU_026, 0x00000000, menuhandlerMpSaveSettings }, // "Save Settings" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_LOCKABLEMINOR, + L_MPMENU_019, // "Scenario" + (u32)&mpMenuTextScenarioShortName, + (void *)&g_MpQuickTeamScenarioMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MPMENU_021, // "Options" + 0, + menuhandlerMpOpenOptions, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_020, // "Arena" + (u32)&mpMenuTextArenaName, + (void *)&g_MpArenaMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_023, // "Weapons" + (u32)&mpMenuTextWeaponSetName, + (void *)&g_MpQuickTeamWeaponsMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG, + L_MPMENU_024, // "Limits" + 0, + (void *)&g_MpLimitsMenuDialog, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + menuhandlerQuickTeamSeparator, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MISC_449, // "Player 1 Team" + 0, + menuhandlerPlayerTeam, + }, + { + MENUITEMTYPE_DROPDOWN, + 1, + 0, + L_MISC_450, // "Player 2 Team" + 0, + menuhandlerPlayerTeam, + }, + { + MENUITEMTYPE_DROPDOWN, + 2, + 0, + L_MISC_451, // "Player 3 Team" + 0, + menuhandlerPlayerTeam, + }, + { + MENUITEMTYPE_DROPDOWN, + 3, + 0, + L_MISC_452, // "Player 4 Team" + 0, + menuhandlerPlayerTeam, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MISC_453, // "Number Of Simulants" + 0, + menuhandlerMpNumberOfSimulants, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MISC_454, // "Simulants Per Team" + 0, + menuhandlerMpSimulantsPerTeam, + }, + { + MENUITEMTYPE_DROPDOWN, + 0, + 0, + L_MISC_455, // "Simulant Difficulty" + 0, + mpQuickTeamSimulantDifficultyHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + 0, + L_MISC_448, // "Finished Setup" + 0, + menuhandlerMpFinishedSetup, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_LOCKABLEMINOR | MENUITEMFLAG_LOCKABLEMAJOR, + L_MPMENU_026, // "Save Settings" + 0, + menuhandlerMpSaveSettings, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickTeamGameSetupMenuDialog = { @@ -3897,13 +5725,55 @@ struct menudialogdef g_MpQuickTeamGameSetupMenuDialog = { }; struct menuitem g_MpQuickTeamMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC_463, 0x00000000, menuhandlerMpQuickTeamOption }, // "Players Only" - { MENUITEMTYPE_SELECTABLE, 1, 0x00400000, L_MISC_464, 0x00000000, menuhandlerMpQuickTeamOption }, // "Players and Simulants" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000082, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 2, 0x00400000, L_MISC_465, 0x00000000, menuhandlerMpQuickTeamOption }, // "Player Teams" - { MENUITEMTYPE_SELECTABLE, 3, 0x00400000, L_MISC_466, 0x00000000, menuhandlerMpQuickTeamOption }, // "Players vs. Simulants" - { MENUITEMTYPE_SELECTABLE, 4, 0x00400000, L_MISC_467, 0x00000000, menuhandlerMpQuickTeamOption }, // "Player-Simulant Teams" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_BIGFONT, + L_MISC_463, // "Players Only" + 0, + menuhandlerMpQuickTeamOption, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + MENUITEMFLAG_BIGFONT, + L_MISC_464, // "Players and Simulants" + 0, + menuhandlerMpQuickTeamOption, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0x00000082, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + MENUITEMFLAG_BIGFONT, + L_MISC_465, // "Player Teams" + 0, + menuhandlerMpQuickTeamOption, + }, + { + MENUITEMTYPE_SELECTABLE, + 3, + MENUITEMFLAG_BIGFONT, + L_MISC_466, // "Players vs. Simulants" + 0, + menuhandlerMpQuickTeamOption, + }, + { + MENUITEMTYPE_SELECTABLE, + 4, + MENUITEMFLAG_BIGFONT, + L_MISC_467, // "Player-Simulant Teams" + 0, + menuhandlerMpQuickTeamOption, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_MpQuickTeamMenuDialog = { @@ -3916,11 +5786,39 @@ struct menudialogdef g_MpQuickTeamMenuDialog = { }; struct menuitem g_CombatSimulatorMenuItems[] = { - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_441, 0x00000000, (void *)&g_MpChallengesMenuDialog }, // "Challenges" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_442, 0x00000001, (void *)&g_MpLoadPresetMenuDialog }, // "Load/Preset Games" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400004, L_MISC_443, 0x00000002, (void *)&g_MpQuickTeamMenuDialog }, // "Quick Start" - { MENUITEMTYPE_SELECTABLE, 0, 0x00400000, L_MISC_444, 0x00000003, menuhandlerMpAdvancedSetup }, // "Advanced Setup" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_441, // "Challenges" + 0, + (void *)&g_MpChallengesMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_442, // "Load/Preset Games" + 0x00000001, + (void *)&g_MpLoadPresetMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_OPENSDIALOG | MENUITEMFLAG_BIGFONT, + L_MISC_443, // "Quick Start" + 0x00000002, + (void *)&g_MpQuickTeamMenuDialog, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_BIGFONT, + L_MISC_444, // "Advanced Setup" + 0x00000003, + menuhandlerMpAdvancedSetup, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_CombatSimulatorMenuDialog = { diff --git a/src/game/trainingmenus.c b/src/game/trainingmenus.c index 1686a836e..7804af417 100644 --- a/src/game/trainingmenus.c +++ b/src/game/trainingmenus.c @@ -895,13 +895,55 @@ s32 menuhandlerFrFailedContinue(s32 operation, struct menuitem *item, union hand #endif struct menuitem g_FrDifficultyMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000012, L_MPMENU_444, L_MPMENU_445, NULL }, // "Select Difficulty:" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPMENU_439, L_OPTIONS_003, frDifficultyMenuHandler }, // "Bronze" - { MENUITEMTYPE_SELECTABLE, 1, 0x00000020, L_MPMENU_440, L_OPTIONS_003, frDifficultyMenuHandler }, // "Silver" - { MENUITEMTYPE_SELECTABLE, 2, 0x00000020, L_MPMENU_441, L_OPTIONS_003, frDifficultyMenuHandler }, // "Gold" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_MPMENU_429, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING, + L_MPMENU_444, // "Select Difficulty:" + L_MPMENU_445, // "" + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_439, // "Bronze" + L_OPTIONS_003, // "" + frDifficultyMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 1, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_440, // "Silver" + L_OPTIONS_003, // "" + frDifficultyMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 2, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_441, // "Gold" + L_OPTIONS_003, // "" + frDifficultyMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_429, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrDifficultyMenuDialog = { @@ -914,8 +956,15 @@ struct menudialogdef g_FrDifficultyMenuDialog = { }; struct menuitem g_FrWeaponListMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00200008, 0x000000aa, 0x00000000, frWeaponListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000aa, + 0, + frWeaponListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrWeaponListMenuDialog = { @@ -928,17 +977,87 @@ struct menudialogdef g_FrWeaponListMenuDialog = { }; struct menuitem g_FrTrainingInfoInGameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_443, (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty" - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextGoalScoreLabel, (u32)&frMenuTextGoalScoreValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextMinAccuracyOrTargetsLabel, (u32)&frMenuTextMinAccuracyOrTargetsValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&frMenuTextTimeLimitValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextAmmoLimitLabel, (u32)&frMenuTextAmmoLimitValue, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, PAL ? 0x69 : 0x5f, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_428, frDetailsOkMenuHandler }, // "", "Resume" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_430, frAbortMenuHandler }, // "", "Abort" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_443, // "Difficulty:" + (u32)&frMenuTextDifficultyName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextGoalScoreLabel, + (u32)&frMenuTextGoalScoreValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextMinAccuracyOrTargetsLabel, + (u32)&frMenuTextMinAccuracyOrTargetsValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextTimeLimitLabel, + (u32)&frMenuTextTimeLimitValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextAmmoLimitLabel, + (u32)&frMenuTextAmmoLimitValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_FRWEAPON, + MENUITEMFLAG_DARKERBG, + 0x0000010e, + PAL ? 0x69 : 0x5f, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_003, // "" + L_MPMENU_428, // "Resume" + frDetailsOkMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_003, // "" + L_MPMENU_430, // "Abort" + frAbortMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrTrainingInfoInGameMenuDialog = { @@ -951,17 +1070,87 @@ struct menudialogdef g_FrTrainingInfoInGameMenuDialog = { }; struct menuitem g_FrTrainingInfoPreGameMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_443, (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextGoalScoreLabel, (u32)&frMenuTextGoalScoreValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextMinAccuracyOrTargetsLabel, (u32)&frMenuTextMinAccuracyOrTargetsValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextTimeLimitLabel, (u32)&frMenuTextTimeLimitValue, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, (u32)&frMenuTextAmmoLimitLabel, (u32)&frMenuTextAmmoLimitValue, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_FRWEAPON, 0x00004000, 0x0000010e, PAL ? 0x69 : 0x5f, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_427, frDetailsOkMenuHandler }, // "", "Ok" - { MENUITEMTYPE_SELECTABLE, 0, 0x00000028, L_OPTIONS_003, L_MPMENU_429, frAbortMenuHandler }, // "", "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_443, // "Difficulty:" + (u32)&frMenuTextDifficultyName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextGoalScoreLabel, + (u32)&frMenuTextGoalScoreValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextMinAccuracyOrTargetsLabel, + (u32)&frMenuTextMinAccuracyOrTargetsValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextTimeLimitLabel, + (u32)&frMenuTextTimeLimitValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + (u32)&frMenuTextAmmoLimitLabel, + (u32)&frMenuTextAmmoLimitValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_FRWEAPON, + MENUITEMFLAG_DARKERBG, + 0x0000010e, + PAL ? 0x69 : 0x5f, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_003, // "" + L_MPMENU_427, // "Ok" + frDetailsOkMenuHandler, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG | MENUITEMFLAG_SELECTABLE_CENTRE, + L_OPTIONS_003, // "" + L_MPMENU_429, // "Cancel" + frAbortMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrTrainingInfoPreGameMenuDialog = { @@ -974,24 +1163,115 @@ struct menudialogdef g_FrTrainingInfoPreGameMenuDialog = { }; struct menuitem g_FrCompletedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000020, L_MPMENU_449, 0x00000000, NULL }, // "Completed!" + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_449, // "Completed!" + 0, + NULL, + }, #if VERSION < VERSION_NTSC_1_0 - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, #endif - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_450, (u32)&frMenuTextScoreValue, NULL }, // "Score:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_451, (u32)&frMenuTextTargetsDestroyedValue, NULL }, // "Targets Destroyed:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_452, (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_453, (u32)&frMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_454, (u32)&frMenuTextWeaponName, NULL }, // "Weapon:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_455, (u32)&frMenuTextAccuracyValue, NULL }, // "Accuracy:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00200002, 0x000000d2, 0x00000050, frScoringMenuHandler }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_450, // "Score:" + (u32)&frMenuTextScoreValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_451, // "Targets Destroyed:" + (u32)&frMenuTextTargetsDestroyedValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_452, // "Difficulty:" + (u32)&frMenuTextDifficultyName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_453, // "Time Taken:" + (u32)&frMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_454, // "Weapon:" + (u32)&frMenuTextWeaponName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_455, // "Accuracy:" + (u32)&frMenuTextAccuracyValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000d2, + 0x00000050, + frScoringMenuHandler, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_252, 0x00000000, menuhandlerFrFailedContinue }, // "Continue" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_252, // "Continue" + 0, + menuhandlerFrFailedContinue, + }, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrCompletedMenuDialog = { @@ -1009,24 +1289,115 @@ struct menudialogdef g_FrCompletedMenuDialog = { }; struct menuitem g_FrFailedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000020, (u32)&frMenuTextFailReason, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + (u32)&frMenuTextFailReason, + 0, + NULL, + }, #if VERSION < VERSION_NTSC_1_0 - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, #endif - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_450, (u32)&frMenuTextScoreValue, NULL }, // "Score:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_451, (u32)&frMenuTextTargetsDestroyedValue, NULL }, // "Targets Destroyed:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_452, (u32)&frMenuTextDifficultyName, NULL }, // "Difficulty:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_453, (u32)&frMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_454, (u32)&frMenuTextWeaponName, NULL }, // "Weapon:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_455, (u32)&frMenuTextAccuracyValue, NULL }, // "Accuracy:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00200002, 0x000000d2, 0x00000050, frScoringMenuHandler }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_450, // "Score:" + (u32)&frMenuTextScoreValue, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_451, // "Targets Destroyed:" + (u32)&frMenuTextTargetsDestroyedValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_452, // "Difficulty:" + (u32)&frMenuTextDifficultyName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_453, // "Time Taken:" + (u32)&frMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_454, // "Weapon:" + (u32)&frMenuTextWeaponName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_455, // "Accuracy:" + (u32)&frMenuTextAccuracyValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x000000d2, + 0x00000050, + frScoringMenuHandler, + }, #if VERSION >= VERSION_NTSC_1_0 - { MENUITEMTYPE_SELECTABLE, 0, 0x00000020, L_MPWEAPONS_252, 0x00000000, menuhandlerFrFailedContinue }, // "Continue" + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPWEAPONS_252, // "Continue" + 0, + menuhandlerFrFailedContinue, + }, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_FrFailedMenuDialog = { @@ -1095,8 +1466,15 @@ s32 ciOfficeInformationMenuHandler(s32 operation, struct menuitem *item, union h } struct menuitem g_BioListMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000008, 0x000000c8, 0x00000000, ciOfficeInformationMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + 0x000000c8, + 0, + ciOfficeInformationMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_BioListMenuDialog = { @@ -1109,10 +1487,31 @@ struct menudialogdef g_BioListMenuDialog = { }; struct menuitem g_NowSafeMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000020, L_MPMENU_437, 0x00000000, NULL }, // "It is now safe to turn off your computer" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU_438, 0x00000000, NULL }, // "Cancel" - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_437, // "It is now safe to turn off your computer." + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + 0, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + L_MPMENU_438, // "Cancel" + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_NowSafeMenuDialog = { @@ -1338,15 +1737,71 @@ s32 menuhandler001a6514(s32 operation, struct menuitem *item, union handlerdata } struct menuitem g_BioProfileMenuItems[] = { - { MENUITEMTYPE_MODEL, 0, 0x00000002, 0x00000046, 0x00000096, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000003, L_MPMENU_432, (u32)&ciMenuTextChrBioName, NULL }, // "Name:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_433, (u32)&ciMenuTextChrBioAge, NULL }, // "Age:" - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_434, (u32)&ciMenuTextChrBioRace, NULL }, // "Race:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_CHRBIO, 0x00000000, 0x000000b4, 0x00000064, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000022, L_MPMENU_435, 0x00000000, NULL }, // "Press the B Button to go back." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002, + 0x00000046, + 0x00000096, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_NEWCOLUMN | MENUITEMFLAG_00000002, + L_MPMENU_432, // "Name:" + (u32)&ciMenuTextChrBioName, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_433, // "Age:" + (u32)&ciMenuTextChrBioAge, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_434, // "Race:" + (u32)&ciMenuTextChrBioRace, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_CHRBIO, + 0, + 0x000000b4, + 0x00000064, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_435, // "Press the B Button to go back." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_BioProfileMenuDialog = { @@ -1359,10 +1814,31 @@ struct menudialogdef g_BioProfileMenuDialog = { }; struct menuitem g_BioTextMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_MISCBIO, 0x00000000, 0x000000c8, 0x00000096, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000022, L_MPMENU_414, 0x00000000, NULL }, // "Press the B Button to go back." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_MISCBIO, + 0, + 0x000000c8, + 0x00000096, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_414, // "Press the B Button to go back." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_BioTextMenuDialog = { @@ -1375,8 +1851,15 @@ struct menudialogdef g_BioTextMenuDialog = { }; struct menuitem g_DtListMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000008, 0x000000a0, 0x00000000, dtDeviceListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + 0x000000a0, + 0, + dtDeviceListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_DtListMenuDialog = { @@ -1659,12 +2142,47 @@ char *ciMenuTextHangarBioSubheading(struct menuitem *item) } struct menuitem g_DtDetailsMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETRAINING, 0x00000000, 0x000000aa, PAL ? 0xd6 : 0xbe, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00000003, 0x0000008c, PAL ? 0xb4 : 0x9c, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&dtMenuTextOkOrResume, 0x00000000, menuhandlerDtOkOrResume }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&dtMenuTextCancelOrAbort, 0x00000000, menuhandler001a6514 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_DEVICETRAINING, + 0, + 0x000000aa, + PAL ? 0xd6 : 0xbe, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_NEWCOLUMN | MENUITEMFLAG_00000002, + 0x0000008c, + PAL ? 0xb4 : 0x9c, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + (u32)&dtMenuTextOkOrResume, + 0, + menuhandlerDtOkOrResume, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + (u32)&dtMenuTextCancelOrAbort, + 0, + menuhandler001a6514, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_DtDetailsMenuDialog = { @@ -1677,12 +2195,47 @@ struct menudialogdef g_DtDetailsMenuDialog = { }; struct menuitem g_DtFailedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU_426, 0x00000000, NULL }, // "Failed!" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP1, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_426, // "Failed!" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_424, // "Time Taken:" + (u32)&dtMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_DEVICETIP1, + 0, + 0x00000082, + PAL ? 110 : 100, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_DtFailedMenuDialog = { @@ -1695,12 +2248,47 @@ struct menudialogdef g_DtFailedMenuDialog = { }; struct menuitem g_DtCompletedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU_425, 0x00000000, NULL }, // "Completed!" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&dtMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_DEVICETIP2, 0x00000000, 0x00000082, PAL ? 110 : 100, NULL }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_425, // "Completed!" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_424, // "Time Taken:" + (u32)&dtMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_DEVICETIP2, + 0, + 0x00000082, + PAL ? 110 : 100, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_DtCompletedMenuDialog = { @@ -1713,8 +2301,15 @@ struct menudialogdef g_DtCompletedMenuDialog = { }; struct menuitem g_HtListMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000008, 0x000000a0, 0x00000000, htHoloListMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + 0x000000a0, + 0, + htHoloListMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtListMenuDialog = { @@ -1727,12 +2322,47 @@ struct menudialogdef g_HtListMenuDialog = { }; struct menuitem g_HtDetailsMenuItems[] = { - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTRAINING, 0x00000000, 0x000000aa, 0x000000be, NULL }, - { MENUITEMTYPE_MODEL, 0, 0x00000003, 0x0000008c, 0x0000009c, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&htMenuTextOkOrResume, 0x00000000, menuhandler001a6a34 }, - { MENUITEMTYPE_SELECTABLE, 0, 0x00000008, (u32)&htMenuTextCancelOrAbort, 0x00000000, menuhandler001a6a70 }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_HOLOTRAINING, + 0, + 0x000000aa, + 0x000000be, + NULL, + }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_NEWCOLUMN | MENUITEMFLAG_00000002, + 0x0000008c, + 0x0000009c, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + (u32)&htMenuTextOkOrResume, + 0, + menuhandler001a6a34, + }, + { + MENUITEMTYPE_SELECTABLE, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + (u32)&htMenuTextCancelOrAbort, + 0, + menuhandler001a6a70, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtDetailsMenuDialog = { @@ -1745,18 +2375,53 @@ struct menudialogdef g_HtDetailsMenuDialog = { }; struct menuitem g_HtFailedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU_426, 0x00000000, NULL }, // "Failed!" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&htMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_426, // "Failed!" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_424, // "Time Taken:" + (u32)&htMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_HOLOTIP1, + 0, + 0x00000082, #if VERSION >= VERSION_JPN_FINAL - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP1, 0x00000000, 0x00000082, 120, NULL }, + 120, #elif PAL - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP1, 0x00000000, 0x00000082, 110, NULL }, + 110, #else - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP1, 0x00000000, 0x00000082, 100, NULL }, + 100, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtFailedMenuDialog = { @@ -1769,18 +2434,53 @@ struct menudialogdef g_HtFailedMenuDialog = { }; struct menuitem g_HtCompletedMenuItems[] = { - { MENUITEMTYPE_LABEL, 0, 0x00000032, L_MPMENU_425, 0x00000000, NULL }, // "Completed!" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000002, L_MPMENU_424, (u32)&htMenuTextTimeTakenValue, NULL }, // "Time Taken:" - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LESSLEFTPADDING | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_425, // "Completed!" + 0, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002, + L_MPMENU_424, // "Time Taken:" + (u32)&htMenuTextTimeTakenValue, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_HOLOTIP2, + 0, + 0x00000082, #if VERSION >= VERSION_JPN_FINAL - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP2, 0x00000000, 0x00000082, 120, NULL }, + 120, #elif PAL - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP2, 0x00000000, 0x00000082, 110, NULL }, + 110, #else - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HOLOTIP2, 0x00000000, 0x00000082, 100, NULL }, + 100, #endif - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HtCompletedMenuDialog = { @@ -2537,19 +3237,75 @@ struct menudialogdef *ciGetFrWeaponListMenuDialog(void) } struct menuitem g_HangarDetailsMenuItems[] = { - { MENUITEMTYPE_MODEL, 0, 0x00200002, 0x00000104, 0x0000002c, ciHangarTitleMenuHandler }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_SCROLLABLE, DESCRIPTION_HANGARBIO, 0x00000000, 0x00000104, 0x0000005a, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000022, L_MPMENU_414, 0x00000000, NULL }, // "Press the B Button to go back." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_LIST_CUSTOMRENDER, + 0x00000104, + 0x0000002c, + ciHangarTitleMenuHandler, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_SCROLLABLE, + DESCRIPTION_HANGARBIO, + 0, + 0x00000104, + 0x0000005a, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_414, // "Press the B Button to go back." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menuitem g_HangarVehicleHolographMenuItems[] = { - { MENUITEMTYPE_MODEL, 0, 0x00000002, 0x00000104, 0x0000006e, NULL }, - { MENUITEMTYPE_SEPARATOR, 0, 0x00000002, 0x00000000, 0x00000000, NULL }, - { MENUITEMTYPE_LABEL, 0, 0x00000022, L_MPMENU_414, 0x00000000, NULL }, // "Press the B Button to go back." - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_MODEL, + 0, + MENUITEMFLAG_00000002, + 0x00000104, + 0x0000006e, + NULL, + }, + { + MENUITEMTYPE_SEPARATOR, + 0, + MENUITEMFLAG_00000002, + 0, + 0, + NULL, + }, + { + MENUITEMTYPE_LABEL, + 0, + MENUITEMFLAG_00000002 | MENUITEMFLAG_SELECTABLE_CENTRE, + L_MPMENU_414, // "Press the B Button to go back." + 0, + NULL, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HangarVehicleHolographMenuDialog = { @@ -2580,8 +3336,15 @@ struct menudialogdef g_HangarLocationDetailsMenuDialog = { }; struct menuitem g_HangarListMenuItems[] = { - { MENUITEMTYPE_LIST, 0, 0x00000008, 0x000000a0, 0x00000000, ciHangarInformationMenuHandler }, - { MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL }, + { + MENUITEMTYPE_LIST, + 0, + MENUITEMFLAG_SELECTABLE_CLOSESDIALOG, + 0x000000a0, + 0, + ciHangarInformationMenuHandler, + }, + { MENUITEMTYPE_END }, }; struct menudialogdef g_HangarListMenuDialog = { diff --git a/src/include/constants.h b/src/include/constants.h index 980599e9a..1b79bf2d3 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -1539,32 +1539,34 @@ #define MENUDIALOGTYPE_4 4 #define MENUDIALOGTYPE_WHITE 5 -#define MENUITEMFLAG_00000001 0x00000001 -#define MENUITEMFLAG_00000004 0x00000004 -#define MENUITEMFLAG_00000008 0x00000008 -#define MENUITEMFLAG_00000010 0x00000010 -#define MENUITEMFLAG_00000020 0x00000020 -#define MENUITEMFLAG_00000040 0x00000040 -#define MENUITEMFLAG_00000080 0x00000080 -#define MENUITEMFLAG_00000100 0x00000100 -#define MENUITEMFLAG_00000200 0x00000200 -#define MENUITEMFLAG_00000400 0x00000400 -#define MENUITEMFLAG_00000800 0x00000800 -#define MENUITEMFLAG_00001000 0x00001000 -#define MENUITEMFLAG_00002000 0x00002000 -#define MENUITEMFLAG_00004000 0x00004000 -#define MENUITEMFLAG_00008000 0x00008000 -#define MENUITEMFLAG_00010000 0x00010000 -#define MENUITEMFLAG_00020000 0x00020000 -#define MENUITEMFLAG_00040000 0x00040000 -#define MENUITEMFLAG_00080000 0x00080000 -#define MENUITEMFLAG_00100000 0x00100000 -#define MENUITEMFLAG_00200000 0x00200000 -#define MENUITEMFLAG_00400000 0x00400000 -#define MENUITEMFLAG_00800000 0x00800000 -#define MENUITEMFLAG_01000000 0x01000000 -#define MENUITEMFLAG_02000000 0x02000000 -#define MENUITEMFLAG_04000000 0x04000000 +#define MENUITEMFLAG_NEWCOLUMN 0x00000001 +#define MENUITEMFLAG_00000002 0x00000002 +#define MENUITEMFLAG_SELECTABLE_OPENSDIALOG 0x00000004 +#define MENUITEMFLAG_SELECTABLE_CLOSESDIALOG 0x00000008 +#define MENUITEMFLAG_LESSLEFTPADDING 0x00000010 +#define MENUITEMFLAG_SELECTABLE_CENTRE 0x00000020 +#define MENUITEMFLAG_LIST_WIDE 0x00000040 +#define MENUITEMFLAG_DROPDOWN_BELOW 0x00000080 +#define MENUITEMFLAG_LABEL_ALTCOLOUR 0x00000100 +#define MENUITEMFLAG_SMALLFONT 0x00000200 +#define MENUITEMFLAG_ALWAYSDISABLED 0x00000400 +#define MENUITEMFLAG_MARQUEE_FADEBOTHSIDES 0x00000800 +#define MENUITEMFLAG_SLIDER_FAST 0x00000800 +#define MENUITEMFLAG_ADJUSTWIDTH 0x00001000 +#define MENUITEMFLAG_SLIDER_HIDEVALUE 0x00002000 +#define MENUITEMFLAG_DARKERBG 0x00004000 +#define MENUITEMFLAG_LABEL_HASRIGHTTEXT 0x00008000 +#define MENUITEMFLAG_00010000 0x00010000 +#define MENUITEMFLAG_LOCKABLEMINOR 0x00020000 +#define MENUITEMFLAG_LOCKABLEMAJOR 0x00040000 +#define MENUITEMFLAG_MPWEAPONSLOT 0x00080000 +#define MENUITEMFLAG_SLIDER_ALTSIZE 0x00100000 +#define MENUITEMFLAG_LIST_CUSTOMRENDER 0x00200000 +#define MENUITEMFLAG_BIGFONT 0x00400000 +#define MENUITEMFLAG_LIST_AUTOWIDTH 0x00800000 +#define MENUITEMFLAG_LABEL_CUSTOMCOLOUR 0x01000000 +#define MENUITEMFLAG_LESSHEIGHT 0x02000000 +#define MENUITEMFLAG_CAROUSEL_04000000 0x04000000 #define MENUITEMTYPE_LABEL 0x01 #define MENUITEMTYPE_LIST 0x02