diff --git a/constants.asm b/constants.asm index 4e52c9e42..3f93ccf24 100644 --- a/constants.asm +++ b/constants.asm @@ -49,3 +49,4 @@ INCLUDE "constants/battle_tower_constants.asm" INCLUDE "constants/cry_constants.asm" INCLUDE "constants/audio_constants.asm" INCLUDE "constants/printer_constants.asm" +INCLUDE "constants/menu_constants.asm" diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm new file mode 100644 index 000000000..9174159ea --- /dev/null +++ b/constants/menu_constants.asm @@ -0,0 +1,33 @@ +; MenuDataHeader flags + const_def + shift_const MENU_RESTORE_TILES ; Will be set if MENU_BACKUP_TILES(_2) is set. + shift_const MENU_UNUSED_1 + shift_const MENU_UNUSED_2 + shift_const MENU_NO_CLICK_SFX + shift_const MENU_SPRITE_ANIMS + shift_const MENU_UNUSED_3 + shift_const MENU_BACKUP_TILES + shift_const MENU_BACKUP_TILES_2 + +; VerticalMenu/DoNthMenu/SetUpMenu/_2DMenu MenuDataHeader2 flags +; Per flag the comment specifies which menus actually implement it + const_def + shift_const STATICMENU_DISABLE_B ; VerticalMenu/_2DMenu + shift_const STATICMENU_ENABLE_SELECT ; VerticalMenu/_2DMenu + shift_const STATICMENU_ENABLE_LEFT_RIGHT ; DoNthMenu/SetUpMenu + shift_const STATICMENU_ENABLE_START ; DoNthMenu/SetUpMenu + shift_const STATICMENU_PLACE_TITLE ; VerticalMenu + shift_const STATICMENU_WRAP ; All + shift_const STATICMENU_NO_TOP_SPACING ; VerticalMenu/_2DMenu + shift_const STATICMENU_CURSOR ; VerticalMenu/_2DMenu + +; ScrollingMenu MenuDataHeader2 flags + const_def + shift_const SCROLLINGMENU_CALL_FUNCTION1_CANCEL + shift_const SCROLLINGMENU_CALL_FUNCTION3_NO_SWITCH + shift_const SCROLLINGMENU_ENABLE_LEFT + shift_const SCROLLINGMENU_ENABLE_RIGHT + shift_const SCROLLINGMENU_DISPLAY_ARROWS + shift_const SCROLLINGMENU_ENABLE_FUNCTION3 + shift_const SCROLLINGMENU_ENABLE_START + shift_const SCROLLINGMENU_ENABLE_SELECT diff --git a/data/player_names.asm b/data/player_names.asm index 47aa17529..3c5a34c77 100644 --- a/data/player_names.asm +++ b/data/player_names.asm @@ -1,12 +1,12 @@ ChrisNameMenuHeader: ; 882b5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 10, TEXTBOX_Y - 1 dw .MaleNames db 1 ; ???? db 0 ; default option .MaleNames: ; 882be - db $91 ; flags + db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B ; flags db 5 ; items db "NEW NAME@" MalePlayerNameArray: ; 882c9 @@ -18,14 +18,14 @@ MalePlayerNameArray: ; 882c9 db " NAME @" ; title KrisNameMenuHeader: ; 882e5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 10, TEXTBOX_Y - 1 dw .FemaleNames db 1 ; ???? db 0 ; default option .FemaleNames: ; 882ee - db $91 ; flags + db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B ; flags db 5 ; items db "NEW NAME@" FemalePlayerNameArray: ; 882f9 diff --git a/data/unown_walls.asm b/data/unown_walls.asm index 4a7b985c7..eae376730 100644 --- a/data/unown_walls.asm +++ b/data/unown_walls.asm @@ -40,15 +40,15 @@ UnownWalls: ; 8aebc MenuDataHeaders_UnownWalls: ; 0x8aed5 ; UNOWNWORDS_ESCAPE - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 3, 4, 16, 9 ; UNOWNWORDS_LIGHT - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 4, 4, 15, 9 ; UNOWNWORDS_WATER - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 4, 4, 15, 9 ; UNOWNWORDS_HO_OH - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 4, 4, 15, 9 ; 8aee9 diff --git a/docs/menu.md b/docs/menu.md new file mode 100644 index 000000000..b8bb6fddf --- /dev/null +++ b/docs/menu.md @@ -0,0 +1,269 @@ +### Everything you've ever wanted to know about menus* + +##### *but were afraid to ask + +## Contents + +- [ScrollingMenu](#scrollingmenu) +- [\_2DMenu](#_2dmenu) +- [DoNthMenu/SetUpMenu](#donthmenusetupmenu) +- [VerticalMenu](#verticalmenu) +- [Misc/Generic](#miscgeneric) + +## ScrollingMenu + +This is the only menu that does scrolling. It doesn't draw any TextBox around the menu. + +Structure: +``` +.MenuDataHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 2, 4, SCREEN_WIDTH - 1, 13 + dw .MenuData2 + db 1 ; default option + +.MenuData2: + db 0 ; flags + db 5, 0 ; rows, columns + db 1 ; horizontal spacing + dba Items + dba Function1 + dba Function2 + dba Function3 +``` + +wMenuData2Flags: +``` +7: Select is functional +6: Start is functional +5: Call Function3 +4: Show arrows on the right-hand side +3: D-Left is functional +2: D-Right is functional +1: Call Function3 only if [wSwitchItem] is 0 +0: Call Function1 to display the cancel entry +``` + +If the columns entry in MenuDataHeader2 of a scrolling menu is 0, Function2 isn't called either. It doesn't affect the position of the arrows. + +Call state for functions in MenuDataHeader2 of ScrollingMenu: +``` +All of them: +[MenuSelection] = Current item. -1 is the CANCEL item. +[MenuSelectionQuantity] = Quantity of the current item. + +Function1: Called to display a menu entry. +de = Cursor position in TileMap + +Function2: Called to display the quantity of a menu entry. +de = Cursor position in TileMap + columns + +Function3: Called to display anything else, whenever the cursor is moved. +``` +There is no register of importance that should be preserved in any of these functions. + +The `; horizontal spacing` item in each MenuData2 is a misnomer. It changes how the Items struct looks. +If it's 1: +``` +db entries not including cancel +db entry1 +db entry2 +db -1 ; cancel +... +``` +If it's 2: +``` +db entries not including cancel +db entry1, quantity1 +db entry2, quantity2 +db -1 ; cancel +... +``` +In case it's 1, [MenuSelectionQuantity] will simply contain the next entry. + +## \_2DMenu + +This, like is implied by the name, is a 2-dimensional menu, where you can move your cursor in all 4 directions. It's only used for the battle menus as well as earl's academy. + +Structure: +``` +.MenuDataHeader: + db MENU_BACKUP_TILES ; flags + db 12, 08 ; start coords + db 17, 19 ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2: + db STATICMENU_CURSOR ; flags + dn 2, 2 ; rows, columns + db 6 ; spacing + dba Strings + dba Function +``` + +wMenuData2Flags: +``` +7: Leave one tile of spacing between the left textbox border and the text, enabling the cursor. +6: Don't leave one tile of spacing between the top textbox border and the text +5: Set bits 4 and 5 in w2DMenuFlags1 (Wrap around horizontally and vertically) +4: Unused +3: Unused +2: Unused +1: Select is functional +0: Disable B button +``` + +The bank for the Strings is generated when you call `_2DMenu`, and as such it doesn't really matter what bank you specify there (unless you callba `_2DMenu_` directly, of course). +`; spacing` is not a misnomer here, it's used to define how much space there is between columns. +`Function` is called after printing all the strings. `hl` will be pointed at the row below the last in the menu in TileMap. We don't know of its purpose, since it's never actually used anywhere. Only the bank number is always set to the same bank as the menu, but not used otherwise, since the address is 0. + +## DoNthMenu/SetUpMenu + +These are like the regular VerticalMenu, except they allow for creating slightly more "dynamic" menus, where the options aren't predefined, much like the ScrollingMenu. + +Structure: +``` +.MenuDataHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 0, 10, 7 + dw .MenuData2 + db 1 ; default option + +.MenuData2: + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags + db 0 ; items + dw Items + dw DisplayFunction + dw StringPointers +``` + +wMenuData2Flags: +``` +7: Unused +6: Unused +5: Set bit 5 in w2DMenuFlags1 (Wrap around vertically) +4: Unused +3: Start is functional +2: D-left and D-right are functional +1: Unused +0: Unused +``` + +The `; items` entry should be left empty, as it's autogenerated with the `Items` array in `GetMenuIndexSet`. +The bottom coord (`07` in the example) is autogenerated regardless of what you specify when building the MenuBox in `AutomaticGetMenuBottomCoord`, which also calculates the `bc` passed to MenuBox, which is useless because it's calculated again by MenuBox in `GetMenuBoxDims`. +[wWhichIndexSet] decides which menu is used through `GetMenuIndexSet`. You can define multiple menus at the Items pointer as such: +``` +Items: +db entries not including cancel +db entry1, entry2, entry3 +db -1 ; cancel +db entries not including cancel for 2nd menu +db entry1, entry2, entry3, entry4 +db -1 ; cancel +``` +This is actively used in MainMenu. + +StringPointers isn't handled by DoNthMenu internally. It's handled by different `DisplayFunction`s. +A custom one could choose to completely ignore it. + +StringPointers struct handled through `PlaceNthMenuStrings` as DisplayFunction and `MenuJumptable`: +``` +StringPointers: +dw FunctionToCall, PointerToString ; index 1 +dw FunctionToCall, PointerToString ; index 2 +... +``` + +StringPointers struct handled through `PlaceMenuStrings`: +``` +StringPointers: +db "STRING1@" +db "STRING2@" +... +``` + +Call state for DisplayFunction: +``` +[MenuSelection] = Current item. -1 is the CANCEL item. +de = Cursor position in TileMap +``` + +## VerticalMenu + +This is the simplest menu. Like, the most boring. Nothing special. Just normal. ...nooooooormal... + +Structure: +``` +.MenuDataHeader: + db MENU_SPRITE_ANIMS | MENU_BACKUP_TILES ; flags + menu_coords 12, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 + dw .MenuData2 + db 1 ; default option + +.MenuData2: + db STATICMENU_CURSOR ; flags + db 2 ; # items + db "GIVE@" + db "TAKE@" +``` + +wMenuData2Flags: +``` +7: Leave one tile of spacing between the left textbox border and the text +6: Don't leave one tile of spacing between the top textbox border and the text +5: Set bit 5 in w2DMenuFlags1 (Wrap around vertically) +4: Place menubox "title". See notes. +3: Unused +2: Unused +1: Select is functional +0: Disable B button +``` + +If bit 4 is set, a string at the end of the items array will be put at an offset from the start coord of the menu box. This string is defined like this: +``` + db 2 ; # items + db "GIVE@" + db "TAKE@" + db 2 ; x offset + db "TEST@" +``` +This is used in the menu for selecting the character's name. + +## Misc/Generic + +MenuDataHeader flags (wMenuFlags): +``` +7: Save a backup of the tiles +6: Save a backup of the tiles +5: Unused +4: Set bit 6 in w2DMenuFlags1 (Enable sprite animations) +3: Disable click sound +2: Unused +1: Unused +0: Call RestoreTileBackup when exiting the menu. This bit depends on whether bit 6 or 7 are set. +``` + +w2DMenuFlags1: +``` +7: Disable checking of wMenuJoypadFilter +6: Enable sprite animations +5: Wrap around vertically +4: Wrap around horizontally +3: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far down +2: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far up +1: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far left +0: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far right +``` + +w2DMenuFlags2: +``` +7: ????? +6: ????? +5: ????? +4: ????? +3: ????? +2: ????? +1: ????? +0: ????? +``` diff --git a/engine/battle/menu.asm b/engine/battle/menu.asm index e44d92f83..dd3d4ef07 100755 --- a/engine/battle/menu.asm +++ b/engine/battle/menu.asm @@ -33,14 +33,14 @@ Function24f19: ; 24f19 ; 24f2c BattleMenuDataHeader: ; 24f2c - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 8, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw MenuData_0x24f34 db 1 ; default option ; 24f34 MenuData_0x24f34: ; 0x24f34 - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags dn 2, 2 ; rows, columns db 6 ; spacing dba Strings24f3d @@ -55,14 +55,14 @@ Strings24f3d: ; 0x24f3d ; 24f4e MenuDataHeader_0x24f4e: ; 24f4e - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw MenuData_0x24f56 db 1 ; default option ; 24f56 MenuData_0x24f56: ; 24f56 - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags dn 2, 2 ; rows, columns db 11 ; spacing dba Strings24f5f @@ -85,14 +85,14 @@ Function24f7c: ; 24f7c ; 24f89 MenuDataHeader_0x24f89: ; 24f89 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 2, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw MenuData_0x24f91 db 1 ; default option ; 24f91 MenuData_0x24f91: ; 24f91 - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags dn 2, 2 ; rows, columns db 12 ; spacing dba Strings24f9a diff --git a/engine/billspc.asm b/engine/billspc.asm index 996509beb..596679118 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -229,14 +229,14 @@ BillsPCDepositFuncCancel: ; e2537 (38:6537) ; e253d (38:653d) BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 9, 4, SCREEN_WIDTH - 1, 13 dw .MenuData2 db 1 ; default option ; 0xe2545 .MenuData2: ; 0xe2545 (38:6545) - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "DEPOSIT@" db "STATS@" @@ -488,14 +488,14 @@ BillsPC_Withdraw: ; e2675 (38:6675) ; e2731 (38:6731) .MenuDataHeader: ; 0xe2731 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 9, 4, SCREEN_WIDTH - 1, 13 dw .MenuData db 1 ; default option ; 0xe2739 .MenuData: ; 0xe2739 - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "WITHDRAW@" db "STATS@" @@ -711,14 +711,14 @@ _MovePKMNWithoutMail: ; e2759 ; e28c3 .MenuDataHeader: ; 0xe28c3 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 9, 4, SCREEN_WIDTH - 1, 13 dw .MenuData2 db 1 ; default option ; 0xe28cb .MenuData2: ; 0xe28cb - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db "MOVE@" db "STATS@" @@ -2329,14 +2329,14 @@ BillsPC_ClearTilemap: ; e35e2 (38:75e2) ; e35f1 (38:75f1) _ChangeBox_menudataheader: ; 0xe35f1 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 5, 9, 12 dw .menudata2 db 1 ; default option ; 0xe35f9 .menudata2 ; 0xe35f9 - db $22 ; flags + db MENU_UNUSED_1 | MENU_UNUSED_3 ; flags db 4, 0 db 1 dba .boxes @@ -2557,14 +2557,14 @@ BillsPC_ChangeBoxSubmenu: ; e36f9 (38:76f9) hlcoord 11, 7 ; unused .MenuDataHeader: ; 0xe377b - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 4, SCREEN_WIDTH - 1, 13 dw .MenuData2 db 1 ; default option ; 0xe3783 .MenuData2: ; 0xe3783 - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "SWITCH@" db "NAME@" diff --git a/engine/billspctop.asm b/engine/billspctop.asm index 9bbb513a7..ac70082d6 100755 --- a/engine/billspctop.asm +++ b/engine/billspctop.asm @@ -69,13 +69,13 @@ _BillsPC: ; e3fd ret .MenuDataHeader: ; 0xe46f - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData2 db 1 ; default option .MenuData2: ; 0xe477 - db $80 ; flags + db STATICMENU_CURSOR ; flags db 0 ; items dw .items dw PlaceMenuStrings diff --git a/engine/buy_sell_toss.asm b/engine/buy_sell_toss.asm index b46fc1c27..ff2bd2967 100755 --- a/engine/buy_sell_toss.asm +++ b/engine/buy_sell_toss.asm @@ -214,21 +214,21 @@ BuySell_DisplaySubtotal: ; 250d1 ; 250ed TossItem_MenuDataHeader: ; 0x250ed - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 15, 9, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw ret_25097 db 0 ; default option ; 0x250f5 BuyItem_MenuDataHeader: ; 0x250f5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 15, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw DisplayPurchasePrice db -1 ; default option ; 0x250fd SellItem_MenuDataHeader: ; 0x250fd - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 15, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw DisplaySellingPrice db 0 ; default option diff --git a/engine/decorations.asm b/engine/decorations.asm index 0598d8c34..413a049a2 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -37,14 +37,14 @@ _KrisDecorationMenu: ; 0x2675c ; 0x2679a .MenuDataHeader: ; 0x2679a - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 5, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData2 db 1 ; default option ; 0x267a2 .MenuData2: ; 0x267a2 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 0 ; items dw wd002 dw PlaceNthMenuStrings @@ -422,14 +422,14 @@ PopulateDecoCategoryMenu: ; 2695b ; 0x269b5 .NonscrollingMenuDataHeader: ; 0x269b5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .NonscrollingMenuData2 db 1 ; default option ; 0x269bd .NonscrollingMenuData2: ; 0x269bd - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 0 ; items dw wd002 dw DecorationMenuFunction @@ -437,14 +437,14 @@ PopulateDecoCategoryMenu: ; 2695b ; 0x269c5 .ScrollingMenuDataHeader: ; 0x269c5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 1, SCREEN_WIDTH - 2, SCREEN_HEIGHT - 2 dw .ScrollingMenuData2 db 1 ; default option ; 0x269cd .ScrollingMenuData2: ; 0x269cd - db $10 ; flags + db SCROLLINGMENU_DISPLAY_ARROWS ; flags db 8, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, wd002 ; text pointer @@ -948,14 +948,14 @@ QueryWhichSide: ; 26e9a ; 26eab MenuDataHeader_0x26eab: ; 0x26eab - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 13, 7 dw MenuData2_0x26eb3 db 1 ; default option ; 0x26eb3 MenuData2_0x26eb3: ; 0x26eb3 - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db "RIGHT SIDE@" db "LEFT SIDE@" diff --git a/engine/delete_save_change_clock.asm b/engine/delete_save_change_clock.asm index 6e9a37b71..8a711cc5e 100755 --- a/engine/delete_save_change_clock.asm +++ b/engine/delete_save_change_clock.asm @@ -47,13 +47,13 @@ _ResetClock: ; 4d3b1 db "@" .NoYes_MenuDataHeader: ; 0x4d40d - db $00 ; flags + db 0 ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .NoYes_MenuData2 db 1 ; default option .NoYes_MenuData2: ; 0x4d415 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "NO@" db "YES@" @@ -284,13 +284,13 @@ _DeleteSaveData: ; 4d54c db "@" .NoYesMenuDataHeader: ; 0x4d585 - db $00 ; flags + db 0 ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: ; 0x4d58d - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "NO@" db "YES@" diff --git a/engine/events/buena.asm b/engine/events/buena.asm index 014c6b7a7..cd0ecc98d 100644 --- a/engine/events/buena.asm +++ b/engine/events/buena.asm @@ -29,7 +29,7 @@ Special_BuenasPassword: ; 8af6b ; 8afa9 .MenuDataHeader: ; 0x8afa9 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 10, 7 dw .MenuData2 db 1 ; default option @@ -38,7 +38,7 @@ Special_BuenasPassword: ; 8af6b db 0 .MenuData2: ; 0x8afb2 - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 0 ; items dw .PasswordIndices dw .PlacePasswordChoices @@ -46,7 +46,11 @@ Special_BuenasPassword: ; 8af6b .PasswordIndices: ; 8afb8 db NUM_PASSWORDS_PER_CATEGORY - db 0, 1, 2 +x = 0 +rept NUM_PASSWORDS_PER_CATEGORY + db x +x = x + 1 +endr db -1 .PlacePasswordChoices: ; 8afbd @@ -224,7 +228,7 @@ PrintBlueCardBalance: ; 8b097 ; 8b0d1 BlueCardBalanceMenuDataHeader: ; 0x8b0d1 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 11, 11, 13 ; 8b0d6 @@ -235,7 +239,7 @@ Buena_PlacePrizeMenuBox: ; 8b0d6 ; 8b0dd .menudataheader ; 0x8b0dd - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 17, TEXTBOX_Y - 1 ; 8b0e2 @@ -267,7 +271,7 @@ Buena_PrizeMenu: ; 8b0e2 ; 8b113 .MenuDataHeader: ; 0x8b113 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 1, 16, 9 dw .MenuData2 db 1 ; default option @@ -276,7 +280,7 @@ Buena_PrizeMenu: ; 8b0e2 db 0 .MenuData2: ; 0x8b11c - db $10 ; flags + db SCROLLINGMENU_DISPLAY_ARROWS ; flags db 4, 13 ; rows, columns db 1 ; spacing dba .indices diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm index 77e74b11e..e0426c5bd 100755 --- a/engine/events/elevator.asm +++ b/engine/events/elevator.asm @@ -188,14 +188,14 @@ Elevator_GetCurrentFloorString: ; 1353f ; 13550 Elevator_MenuDataHeader: ; 0x13550 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 12, 1, 18, 9 dw Elevator_MenuData2 db 1 ; default option ; 0x13558 Elevator_MenuData2: ; 0x13558 - db $10 ; flags + db SCROLLINGMENU_DISPLAY_ARROWS ; flags db 4, 0 ; rows, columns db 1 ; horizontal spacing dbw 0, CurElevator diff --git a/engine/events/kurt.asm b/engine/events/kurt.asm index be395b9d8..13bde6f7e 100644 --- a/engine/events/kurt.asm +++ b/engine/events/kurt.asm @@ -84,7 +84,7 @@ Kurt_SelectApricorn: ; 88055 ; 88086 .MenuDataHeader: ; 0x88086 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 1, 13, 10 dw .MenuData2 db 1 ; default option @@ -93,7 +93,7 @@ Kurt_SelectApricorn: ; 88055 db 0 ; XXX .MenuData2: ; 0x8808f - db $10 ; flags + db SCROLLINGMENU_DISPLAY_ARROWS ; flags db 4, 7 db 1 dbw 0, Buffer1 @@ -158,12 +158,10 @@ Kurt_SelectQuantity: ; 880c2 ; 8810d .MenuDataHeader: ; 0x8810d - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 6, 9, SCREEN_WIDTH - 1, 12 - - ; unused - dw 0 - db -1 + dw NULL + db -1 ; default option db 0 .PlaceApricornName: ; 88116 diff --git a/engine/events/mom.asm b/engine/events/mom.asm index 8a61a57d8..c7e1cd6e9 100644 --- a/engine/events/mom.asm +++ b/engine/events/mom.asm @@ -728,14 +728,14 @@ Mom_HeldString: ; 166b0 ; 166b5 MenuDataHeader_0x166b5: ; 0x166b5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 10, 10 dw MenuData2_0x166bd db 1 ; default option ; 0x166bd MenuData2_0x166bd: ; 0x166bd - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "GET@" db "SAVE@" diff --git a/engine/events/move_tutor.asm b/engine/events/move_tutor.asm index 3a7272538..8bb29f9ae 100644 --- a/engine/events/move_tutor.asm +++ b/engine/events/move_tutor.asm @@ -99,5 +99,5 @@ CheckCanLearnMoveTutorMove: ; 492b9 ret .MenuDataHeader: ; 0x4930a - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm index efb5d8ad1..61d7346df 100755 --- a/engine/events/pokecenter_pc.asm +++ b/engine/events/pokecenter_pc.asm @@ -27,13 +27,13 @@ Special_PokemonCenterPC: ; 1559a ret .TopMenu: - db $48 ; flags + db MENU_BACKUP_TILES | MENU_NO_CLICK_SFX ; flags menu_coords 0, 0, 15, 12 dw .MenuData2 db 1 ; default option .MenuData2: - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 0 ; items dw .WhichPC dw PlaceNthMenuStrings @@ -231,14 +231,14 @@ Function15715: ; 15715 ; 15736 KrissPCMenuData: ; 0x15736 - db %01000000 + db MENU_BACKUP_TILES ; flags db 0, 0 ; top left corner coords (y, x) db 12, 15 ; bottom right corner coords (y, x) dw .KrissPCMenuData2 db 1 ; default selected option .KrissPCMenuData2: - db %10100000 ; bit7 + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 0 ; # items? dw .KrissPCMenuList1 dw PlaceNthMenuStrings @@ -619,13 +619,13 @@ PCItemsJoypad: ; 0x15985 ret .PCItemsMenuData: - db %01000000 + db MENU_BACKUP_TILES ; flags menu_coords 4, 1, 18, 10 dw .MenuData2 db 1 ; default option .MenuData2: - db %10110000 + db SCROLLINGMENU_ENABLE_SELECT | SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS ; flags db 4, 8 ; rows/cols? db 2 ; horizontal spacing? dbw 0, PCItems diff --git a/engine/events/pokepic.asm b/engine/events/pokepic.asm index a2f0c0725..1a433cb25 100755 --- a/engine/events/pokepic.asm +++ b/engine/events/pokepic.asm @@ -42,7 +42,7 @@ ClosePokepic:: ; 24528 ret PokepicMenuDataHeader: ; 0x24547 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 6, 4, 14, 13 dw NULL db 1 ; default option diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm index 8855555a7..216ce0058 100644 --- a/engine/events/std_scripts.asm +++ b/engine/events/std_scripts.asm @@ -1870,13 +1870,13 @@ CoinVendor_IntroScript: ; 0xbcde0 .MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 4, 15, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db " 50 : ¥1000@" db "500 : ¥10000@" diff --git a/engine/init_gender.asm b/engine/init_gender.asm index 0fb094ba8..540a0b63f 100755 --- a/engine/init_gender.asm +++ b/engine/init_gender.asm @@ -44,14 +44,14 @@ InitGender: ; 48dcb (12:4dcb) ; 48dfc (12:4dfc) .MenuDataHeader: ; 0x48dfc - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 6, 4, 12, 9 dw .MenuData2 db 1 ; default option ; 0x48e04 .MenuData2: ; 0x48e04 - db $a1 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_DISABLE_B ; flags db 2 ; items db "Boy@" db "Girl@" diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index d897617fb..fa9cd1a92 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -553,14 +553,14 @@ Continue_LoadMenuHeader: ; 5ebf ; 5ed9 .MenuDataHeader_Dex: ; 5ed9 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 15, 9 dw .MenuData2_Dex db 1 ; default option ; 5ee1 .MenuData2_Dex: ; 5ee1 - db $00 ; flags + db 0 ; flags db 4 ; items db "PLAYER@" db "BADGES@" @@ -569,14 +569,14 @@ Continue_LoadMenuHeader: ; 5ebf ; 5efb .MenuDataHeader_NoDex: ; 5efb - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 15, 9 dw .MenuData2_NoDex db 1 ; default option ; 5f03 .MenuData2_NoDex: ; 5f03 - db $00 ; flags + db 0 ; flags db 4 ; items db "PLAYER @" db "BADGES@" diff --git a/engine/mail.asm b/engine/mail.asm index c2ecb7548..68b16fd10 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -558,13 +558,13 @@ MailboxPC: ; 0x44806 ret .TopMenuDataHeader: ; 0x4494c - db %01000000 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 8, 1, SCREEN_WIDTH - 2, 10 dw .TopMenuData2 db 1 ; default option .TopMenuData2: - db %00010000 ; flags + db SCROLLINGMENU_DISPLAY_ARROWS ; flags db 4, 0 ; rows/columns? db 1 ; horizontal spacing? dbw 0, wMailboxCount ; text pointer @@ -573,13 +573,13 @@ MailboxPC: ; 0x44806 dba NULL .SubMenuDataHeader: ; 0x44964 - db %01000000 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 13, 9 dw .SubMenuData2 db 1 ; default option .SubMenuData2: - db %10000000 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "READ MAIL@" db "PUT IN PACK@" diff --git a/engine/main_menu.asm b/engine/main_menu.asm index fe0dd6b2a..f82c6072a 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -30,14 +30,14 @@ MainMenu: ; 49cdc ; 49d14 .MenuDataHeader: ; 49d14 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 16, 7 dw .MenuData2 db 1 ; default option ; 49d1c .MenuData2: ; 49d1c - db $80 ; flags + db STATICMENU_CURSOR ; flags db 0 ; items dw MainMenuItems dw PlaceMenuStrings diff --git a/engine/mart.asm b/engine/mart.asm index 07d385f6d..2f1b9c6a6 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -617,14 +617,14 @@ Text_Mart_CostsThisMuch: ; 0x15e13 ; 0x15e18 MenuDataHeader_Buy: ; 0x15e18 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 3, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .menudata2 db 1 ; default option ; 0x15e20 .menudata2 ; 0x15e20 - db $30 ; pointers + db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_FUNCTION3 ; flags db 4, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, CurMart @@ -901,14 +901,14 @@ Text_Mart_HowMayIHelpYou: ; 0x15f83 ; 0x15f88 MenuDataHeader_BuySell: ; 0x15f88 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 7, 8 dw .menudata2 db 1 ; default option ; 0x15f90 .menudata2 ; 0x15f90 - db $80 ; strings + db STATICMENU_CURSOR ; strings db 3 ; items db "BUY@" db "SELL@" diff --git a/engine/menu.asm b/engine/menu.asm index 8059d5b30..802bece08 100755 --- a/engine/menu.asm +++ b/engine/menu.asm @@ -110,14 +110,14 @@ Mobile_GetMenuSelection: ; 24098 ret ; 240cd -GetMenuNumberOfColumns: ; 240cd - ld a, [wMenuData2Items] +Get2DMenuNumberOfColumns: ; 240cd + ld a, [wMenuData2_2DMenuDimensions] and $f ret ; 240d3 -GetMenuNumberOfRows: ; 240d3 - ld a, [wMenuData2Items] +Get2DMenuNumberOfRows: ; 240d3 + ld a, [wMenuData2_2DMenuDimensions] swap a and $f ret @@ -130,19 +130,19 @@ Place2DMenuItemStrings: ; 240db ld d, [hl] call GetMenuTextStartCoord call Coord2Tile - call GetMenuNumberOfRows + call Get2DMenuNumberOfRows ld b, a .row push bc push hl - call GetMenuNumberOfColumns + call Get2DMenuNumberOfColumns ld c, a .col push bc ld a, [wMenuData2_2DMenuItemStringsBank] call Place2DMenuItemName inc de - ld a, [wMenuData2Spacing] + ld a, [wMenuData2_2DMenuSpacing] ld c, a ld b, 0 add hl, bc @@ -174,9 +174,9 @@ Init2DMenuCursorPosition: ; 2411a (9:411a) dec c ld a, c ld [w2DMenuCursorInitX], a - call GetMenuNumberOfRows + call Get2DMenuNumberOfRows ld [w2DMenuNumRows], a - call GetMenuNumberOfColumns + call Get2DMenuNumberOfColumns ld [w2DMenuNumCols], a call .InitFlags_a call .InitFlags_b @@ -238,7 +238,7 @@ Init2DMenuCursorPosition: ; 2411a (9:411a) ; 2418a .InitFlags_b: ; 2418a - ld a, [wMenuData2Spacing] + ld a, [wMenuData2_2DMenuSpacing] or $20 ld [w2DMenuCursorOffsets], a ret diff --git a/engine/menu_2.asm b/engine/menu_2.asm index 122a1ac62..94be32eab 100644 --- a/engine/menu_2.asm +++ b/engine/menu_2.asm @@ -53,13 +53,13 @@ PlaceMoneyDataHeader: ; 24b01 ret MenuDataHeader_0x24b15: ; 0x24b15 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 0, SCREEN_WIDTH - 1, 2 dw NULL db 1 ; default option MenuDataHeader_0x24b1d: ; 0x24b1d - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 11, 8, 13 dw NULL db 1 ; default option diff --git a/engine/mon_menu.asm b/engine/mon_menu.asm index 7dc2a2393..d7e8446d0 100755 --- a/engine/mon_menu.asm +++ b/engine/mon_menu.asm @@ -55,7 +55,7 @@ MonSubmenu: ; 24d19 ; 24d3f .MenuDataHeader: ; 24d3f - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 6, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw 0 db 1 ; default option @@ -77,7 +77,7 @@ MonSubmenu: ; 24d19 MonMenuLoop: ; 24d59 .loop - ld a, $a0 ; flags + ld a, MENU_UNUSED_3 | MENU_BACKUP_TILES_2 ; flags ld [wMenuData2Flags], a ld a, [Buffer1] ; items ld [wMenuData2Items], a @@ -324,14 +324,14 @@ BattleMonMenu: ; 24e99 ; 24ed4 MenuDataHeader_0x24ed4: ; 24ed4 - db $00 ; flags + db 0 ; flags menu_coords 11, 11, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw MenuData2_0x24edc db 1 ; default option ; 24edc MenuData2_0x24edc: ; 24edc - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 ; items db "SWITCH@" db "STATS@" diff --git a/engine/pack.asm b/engine/pack.asm index e4d9eea4d..c013994a0 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -162,14 +162,14 @@ Pack: ; 10000 ; 10124 (4:4124) .MenuDataHeader1: ; 0x10124 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2_1 db 1 ; default option ; 0x1012c .MenuData2_1: ; 0x1012c - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "USE@" db "QUIT@" @@ -182,14 +182,14 @@ Pack: ; 10000 ; 1013b .MenuDataHeader2: ; 0x1013b - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 5, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2_2 db 1 ; default option ; 0x10143 .MenuData2_2: ; 0x10143 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 ; items db "USE@" db "GIVE@" @@ -321,14 +321,14 @@ Pack: ; 10000 ; 10249 (4:4249) MenuDataHeader_UsableKeyItem: ; 0x10249 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10251 .MenuData2: ; 0x10251 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 5 ; items db "USE@" db "GIVE@" @@ -346,14 +346,14 @@ Jumptable_UseGiveTossRegisterQuit: ; 1026a ; 10274 MenuDataHeader_UsableItem: ; 0x10274 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 3, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x1027c .MenuData2: ; 0x1027c - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 4 ; items db "USE@" db "GIVE@" @@ -369,14 +369,14 @@ Jumptable_UseGiveTossQuit: ; 10291 ; 10299 MenuDataHeader_UnusableItem: ; 0x10299 - db %01000000 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x102a1 .MenuData2: ; 0x102a1 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "USE@" db "QUIT@" @@ -388,14 +388,14 @@ Jumptable_UseQuit: ; 102ac ; 102b0 MenuDataHeader_UnusableKeyItem: ; 0x102b0 - db %01000000 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 5, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x102b8 .MenuData2: ; 0x102b8 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 ; items db "USE@" db "SEL@" @@ -409,14 +409,14 @@ Jumptable_UseRegisterQuit: ; 102c7 ; 102cd MenuDataHeader_HoldableKeyItem: ; 0x102cd - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 3, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x102d5 .MenuData2: ; 0x102d5 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 4 ; items db "GIVE@" db "TOSS@" @@ -432,14 +432,14 @@ Jumptable_GiveTossRegisterQuit: ; 102ea ; 102f2 MenuDataHeader_HoldableItem: ; 0x102f2 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 5, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x102fa .MenuData2: ; 0x102fa - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 ; items db "GIVE@" db "TOSS@" @@ -848,14 +848,14 @@ TMHMSubmenu: ; 105dc (4:45dc) ; 10601 (4:4601) .UsableMenuDataHeader: ; 0x10601 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .UsableMenuData2 db 1 ; default option ; 0x10609 .UsableMenuData2: ; 0x10609 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "USE@" db "QUIT@" @@ -867,14 +867,14 @@ TMHMSubmenu: ; 105dc (4:45dc) ; 10618 .UnusableMenuDataHeader: ; 0x10618 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 9, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .UnusableMenuData2 db 1 ; default option ; 0x10620 .UnusableMenuData2: ; 0x10620 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 1 ; items db "QUIT@" ; 0x10627 @@ -1158,14 +1158,14 @@ TutorialPack: ; 107bb ; 107ef (4:47ef) .ItemsMenuDataHeader: ; 0x107ef - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .ItemsMenuData2 db 1 ; default option ; 0x107f7 .ItemsMenuData2: ; 0x107f7 - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, wDudeNumItems @@ -1181,14 +1181,14 @@ TutorialPack: ; 107bb ; 1080e (4:480e) .KeyItemsMenuDataHeader: ; 0x1080e - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .KeyItemsMenuData2 db 1 ; default option ; 0x10816 .KeyItemsMenuData2: ; 0x10816 - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, wDudeNumKeyItems @@ -1213,14 +1213,14 @@ TutorialPack: ; 107bb ; 10842 (4:4842) .BallsMenuDataHeader: ; 0x10842 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .BallsMenuData2 db 1 ; default option ; 0x1084a .BallsMenuData2: ; 0x1084a - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, wDudeNumBalls @@ -1537,14 +1537,14 @@ Pack_InitColors: ; 10a40 ; 10a4f ItemsPocketMenuDataHeader: ; 0x10a4f - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10a57 .MenuData2: ; 0x10a57 - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumItems @@ -1554,14 +1554,14 @@ ItemsPocketMenuDataHeader: ; 0x10a4f ; 10a67 PC_Mart_ItemsPocketMenuDataHeader: ; 0x10a67 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10a6f .MenuData2: ; 0x10a6f - db $2e ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumItems @@ -1571,14 +1571,14 @@ PC_Mart_ItemsPocketMenuDataHeader: ; 0x10a67 ; 10a7f KeyItemsPocketMenuDataHeader: ; 0x10a7f - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10a87 .MenuData2: ; 0x10a87 - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, NumKeyItems @@ -1588,14 +1588,14 @@ KeyItemsPocketMenuDataHeader: ; 0x10a7f ; 10a97 PC_Mart_KeyItemsPocketMenuDataHeader: ; 0x10a97 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10a9f .MenuData2: ; 0x10a9f - db $2e ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, NumKeyItems @@ -1605,14 +1605,14 @@ PC_Mart_KeyItemsPocketMenuDataHeader: ; 0x10a97 ; 10aaf BallsPocketMenuDataHeader: ; 0x10aaf - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10ab7 .MenuData2: ; 0x10ab7 - db $ae ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumBalls @@ -1622,14 +1622,14 @@ BallsPocketMenuDataHeader: ; 0x10aaf ; 10ac7 PC_Mart_BallsPocketMenuDataHeader: ; 0x10ac7 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 7, 1, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option ; 0x10acf .MenuData2: ; 0x10acf - db $2e ; flags + db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumBalls diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 98f8dd21d..cfec11091 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1868,14 +1868,14 @@ Slots_AskBet: ; 9307c (24:707c) ; 0x930d6 .MenuDataHeader: ; 0x930d6 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 10, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData2 db 1 ; default option ; 0x930de .MenuData2: ; 0x930de - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db " 3@" db " 2@" diff --git a/engine/start_menu.asm b/engine/start_menu.asm index e5d69cbb4..78de950b8 100755 --- a/engine/start_menu.asm +++ b/engine/start_menu.asm @@ -152,19 +152,19 @@ StartMenu:: ; 125cd .MenuDataHeader: - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 10, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData db 1 ; default selection .ContestMenuDataHeader: - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 10, 2, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData db 1 ; default selection .MenuData: - db %10101000 ; x padding, wrap around, start can close + db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_ENABLE_START ; flags dn 0, 0 ; rows, columns dw MenuItemsList dw .MenuString @@ -974,13 +974,13 @@ TakePartyItem: ; 12c60 GiveTakeItemMenuData: ; 12c9b - db %01010000 + db MENU_SPRITE_ANIMS | MENU_BACKUP_TILES ; flags menu_coords 12, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .Items db 1 ; default option .Items: - db %10000000 ; x padding + db STATICMENU_CURSOR ; flags db 2 ; # items db "GIVE@" db "TAKE@" @@ -1162,14 +1162,14 @@ MonMailAction: ; 12d45 .MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 12, 10, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw .MenuData2 db 1 ; default option ; 0x12dd1 .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db "READ@" db "TAKE@" diff --git a/home/menu.asm b/home/menu.asm index b2ab0feb0..f8ade3f58 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -39,7 +39,7 @@ LoadMenuTextBox:: ; 1d58 ; 1d5f .MenuDataHeader: ; 1d5f - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw vTiles0 db 0 ; default option @@ -58,7 +58,7 @@ LoadStandardMenuDataHeader:: ; 1d6e ; 1d75 .MenuDataHeader: ; 1d75 - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw 0 db 1 ; default option @@ -180,14 +180,14 @@ InterpretTwoOptionMenu:: ; 1dfe ; 1e1d YesNoMenuDataHeader:: ; 1e1d - db $40 ; tile backup + db MENU_BACKUP_TILES ; flags menu_coords 10, 5, 15, 9 dw .MenuData2 db 1 ; default option ; 1e25 .MenuData2: ; 1e25 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 db "YES@" db "NO@" diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index c5474c9b5..50a581c91 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -80,13 +80,13 @@ CeladonDeptStore6FVendingMachine: jump .Start .MenuData: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "FRESH WATER ¥200@" db "SODA POP ¥300@" diff --git a/maps/CeladonGameCornerPrizeRoom.asm b/maps/CeladonGameCornerPrizeRoom.asm index 07728ca97..3407943be 100644 --- a/maps/CeladonGameCornerPrizeRoom.asm +++ b/maps/CeladonGameCornerPrizeRoom.asm @@ -103,13 +103,13 @@ CeladonPrizeRoom_NoCoinCase: end CeladonPrizeRoom_TMMenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 15, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "TM32 1500@" db "TM29 3500@" @@ -189,13 +189,13 @@ CeladonGameCornerPrizeRoomPokemonVendor: jump .loop .MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 17, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "PIKACHU 2222@" db "PORYGON 5555@" diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index 29da128d4..6bdd57bfa 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -266,65 +266,65 @@ DragonShrineElder3Script: end DragonShrineQuestion1_MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 8, 4, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 3 ; items db "Pal@" db "Underling@" db "Friend@" DragonShrineQuestion2_MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 9, 4, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 3 ; items db "Strategy@" db "Raising@" db "Cheating@" DragonShrineQuestion3_MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 5, 4, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 3 ; items db "Weak person@" db "Tough person@" db "Anybody@" DragonShrineQuestion4_MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 8, 4, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 3 ; items db "Love@" db "Violence@" db "Knowledge@" DragonShrineQuestion5_MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 12, 4, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $81 ; flags + db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags db 3 ; items db "Tough@" db "Both@" diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm index cad836b6d..8f39eb85f 100644 --- a/maps/EarlsPokemonAcademy.asm +++ b/maps/EarlsPokemonAcademy.asm @@ -103,13 +103,13 @@ AcademyBlackboard: jump .Loop .BlackboardMenuData: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 11, 8 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags dn 3, 2 ; rows, columns db 5 ; spacing dba .Text diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index 8d3a91f2d..dcc29b99a 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -95,13 +95,13 @@ MoveTutor: jump .Incompatible .MoveMenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 15, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "FLAMETHROWER@" db "THUNDERBOLT@" diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index d26c539d1..b224ce74c 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -69,13 +69,13 @@ GoldenrodVendingMachine: jump .Start .MenuData: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "FRESH WATER ¥200@" db "SODA POP ¥300@" diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index b1a911a85..6db56d9bd 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -139,13 +139,13 @@ GoldenrodGameCornerPrizeVendor_NoCoinCaseScript: end GoldenrodGameCornerTMVendorMenuData: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 15, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "TM25 5500@" db "TM14 5500@" @@ -225,13 +225,13 @@ GoldenrodGameCornerPrizeMonVendorScript: jump .loop .MenuDataHeader: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 17, TEXTBOX_Y - 1 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 4 ; items db "ABRA 100@" db "CUBONE 800@" diff --git a/maps/GoldenrodPokeComCenter2FMobile.asm b/maps/GoldenrodPokeComCenter2FMobile.asm index 1042bf28e..3405df60a 100644 --- a/maps/GoldenrodPokeComCenter2FMobile.asm +++ b/maps/GoldenrodPokeComCenter2FMobile.asm @@ -49,13 +49,13 @@ UnknownScript_0x62600: end MenuDataHeader_0x62602: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 15, 8 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db "# つうしん クラブ@" ; # COM CLUB db "モバイルセンター@" ; MOBILE CENTER @@ -91,13 +91,13 @@ UnknownScript_0x6264a: end MenuDataHeader_0x6264c: - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 15, 8 dw .MenuData2 db 1 ; default option .MenuData2: - db $80 ; flags + db STATICMENU_CURSOR ; flags db 3 ; items db "でんわ", $1f,"つかうとき@" ; Use phone db "でんわ", $4a,"つながらないとき@" ; Don't use phone diff --git a/mobile/mobile_12.asm b/mobile/mobile_12.asm index e8c89ce9c..934afb457 100755 --- a/mobile/mobile_12.asm +++ b/mobile/mobile_12.asm @@ -563,14 +563,14 @@ MobileDesc_ZipCode: db "Your zip code?@" ; 484f1 MenuDataHeader_0x484f1: ; 0x484f1 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 2, SCREEN_WIDTH - 1, 7 dw MenuData2_0x484f9 db 1 ; default option ; 0x484f9 MenuData2_0x484f9: ; 0x484f9 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 2 ; items Strings_484fb: String_484fb: db "Boy@" @@ -578,26 +578,26 @@ String_484ff: db "Girl@" ; 0x48504 MenuDataHeader_0x48504: ; 0x48504 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 MenuDataHeader_0x48509: ; 0x48509 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 5, SCREEN_WIDTH - 1, 7 MenuDataHeader_0x4850e: ; 0x4850e - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 9, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 MenuDataHeader_0x48513: ; 0x48513 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 1, 18, 12 dw MenuData2_0x4851b db 1 ; default option ; 0x4851b MenuData2_0x4851b: ; 0x4851b - db $1d ; flags + db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_CALL_FUNCTION1_CANCEL ; flags db 6 ; items Unknown_4851d: ; 4851d @@ -723,7 +723,7 @@ Function486bf: ; 486bf (12:46bf) .got_num_rows_2 ld a, 1 ld [hli], a ; num cols - ld [hl], $0 ; flags 1 + ld [hl], 0 ; flags 1 set 5, [hl] inc hl xor a @@ -789,7 +789,7 @@ Function4873c: ; 4873c (12:473c) ld [hli], a ; num rows ld a, 1 ld [hli], a ; num cols - ld [hl], $0 ; flags 1 + ld [hl], 0 ; flags 1 set 5, [hl] inc hl xor a @@ -1272,7 +1272,7 @@ Function48a9a: ; 48a9a (12:4a9a) ; 48a9c (12:4a9c) MenuDataHeader_0x48a9c: ; 0x48a9c - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 8, SCREEN_WIDTH - 1, 13 String_48aa1: ; 48aa1 diff --git a/mobile/mobile_12_2.asm b/mobile/mobile_12_2.asm index 19fcb16aa..5553d66fb 100755 --- a/mobile/mobile_12_2.asm +++ b/mobile/mobile_12_2.asm @@ -715,7 +715,7 @@ Function4ac58: ; 4ac58 ; 4aca2 MenuDataHeader_0x4aca2: ; 0x4aca2 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 9, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 1 ; default option diff --git a/mobile/mobile_22.asm b/mobile/mobile_22.asm index 8f88299d8..9c8eeab7d 100644 --- a/mobile/mobile_22.asm +++ b/mobile/mobile_22.asm @@ -277,14 +277,14 @@ Function89261: ; 89261 ; 892a3 MenuDataHeader_0x892a3: ; 0x892a3 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 5, 15, 9 dw MenuData2_0x892ab db 1 ; default option ; 0x892ab MenuData2_0x892ab: ; 0x892ab - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 ; items db "はい@" db "いいえ@" @@ -2831,7 +2831,7 @@ Function8a116: ; 8a116 (22:6116) ; 8a176 (22:6176) MenuDataHeader_0x8a176: ; 0x8a176 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 0, SCREEN_WIDTH - 1, 6 ; 8a17b @@ -2853,14 +2853,14 @@ Function8a17b: ; 8a17b (22:617b) ; 8a19a (22:619a) MenuDataHeader_0x8a19a: ; 0x8a19a - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 0, SCREEN_WIDTH - 1, 6 dw MenuData2_0x8a1a2 db 1 ; default option ; 0x8a1a2 MenuData2_0x8a1a2: ; 0x8a1a2 - db $e0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags db 3 ; items db "ひらく@" db "すてる@" @@ -3012,7 +3012,7 @@ Function8a2aa: ; 8a2aa (22:62aa) ; 8a2ef (22:62ef) MenuDataHeader_0x8a2ef: ; 0x8a2ef - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 ; 8a2f4 @@ -3173,14 +3173,14 @@ Unknown_8a408: db 1, 2, -1 Unknown_8a40b: db 1, 2, 3, -1 MenuDataHeader_0x8a40f: ; 0x8a40f - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 10, TEXTBOX_Y - 1 dw MenuData2_0x8a417 db 1 ; default option ; 0x8a417 MenuData2_0x8a417: ; 0x8a417 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 4 ; items db "めいしりスト@" db "じぶんの めいし@" @@ -3189,14 +3189,14 @@ MenuData2_0x8a417: ; 0x8a417 ; 0x8a435 MenuDataHeader_0x8a435: ; 0x8a435 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 2, 10, 9 dw MenuData2_0x8a43d db 1 ; default option ; 0x8a43d MenuData2_0x8a43d: ; 0x8a43d - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 3 ; items db "めいしりスト@" db "じぶんの めいし@" @@ -3914,7 +3914,7 @@ Jumptable_8a9c5: ; 8a9c5 (22:69c5) ; 8a9c9 (22:69c9) MenuDataHeader_0x8a9c9: ; 0x8a9c9 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 4, 18, TEXTBOX_Y - 1 ; 8a9ce @@ -3943,14 +3943,14 @@ Function8a9ce: ; 8a9ce (22:69ce) ; 8a9f2 (22:69f2) MenuDataHeader_0x8a9f2: ; 0x8a9f2 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 4, 18, TEXTBOX_Y - 1 dw MenuData2_0x8a9fa db 1 ; default option ; 0x8a9fa MenuData2_0x8a9fa: ; 0x8a9fa - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 3 ; items db "へんしゅう@" db "みる@" diff --git a/mobile/mobile_22_2.asm b/mobile/mobile_22_2.asm index 9deb9b261..d428f2547 100644 --- a/mobile/mobile_22_2.asm +++ b/mobile/mobile_22_2.asm @@ -910,7 +910,7 @@ Function8b855: ; 8b855 ; 8b867 MenuDataHeader_0x8b867: ; 0x8b867 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 1, 3, 18, 13 dw MenuData2_0x8b870 db 1 ; default option @@ -919,7 +919,7 @@ MenuDataHeader_0x8b867: ; 0x8b867 db 0 MenuData2_0x8b870: ; 0x8b870 - db $3c ; flags + db SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT ; flags db 5 ; items db 3, 1 dbw 0, wd002 @@ -1082,18 +1082,18 @@ Function8b9ab: ; 8b9ab ; 8b9ac MenuDataHeader_0x8b9ac: ; 0x8b9ac - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 0, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 MenuDataHeader_0x8b9b1: ; 0x8b9b1 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 0, SCREEN_WIDTH - 1, 7 dw MenuData2_0x8b9b9 db 1 ; default option ; 0x8b9b9 MenuData2_0x8b9b9: ; 0x8b9b9 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 3 ; items db "へんしゅう@" ; EDIT db "いれかえ@" ; REPLACE @@ -1101,14 +1101,14 @@ MenuData2_0x8b9b9: ; 0x8b9b9 ; 0x8b9ca MenuDataHeader_0x8b9ca: ; 0x8b9ca - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 11, 0, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw MenuData2_0x8b9d2 db 1 ; default option ; 0x8b9d2 MenuData2_0x8b9d2: ; 0x8b9d2 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 5 ; items db "みる@" ; VIEW db "へんしゅう@" ; EDIT diff --git a/mobile/mobile_40.asm b/mobile/mobile_40.asm index d0a857b91..3a7f7c641 100644 --- a/mobile/mobile_40.asm +++ b/mobile/mobile_40.asm @@ -924,14 +924,14 @@ Function100597: ; 100597 ; 1005b2 MenuDataHeader_1005b2: ; 1005b2 - db $40 ; flags + db MENU_BACKUP_TILES ; flags db 6, 14 db 10, 19 dw MenuData2_1005ba db 1 ; default option MenuData2_1005ba: - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 db "はい@" db "いいえ@" @@ -975,14 +975,14 @@ Function1005e1: ; 1005e1 ; 1005fc MenuDataHeader_1005fc: ; 1005fc - db $40 ; flags + db MENU_BACKUP_TILES ; flags db 6, 14 db 10, 19 dw MenuData2_100604 db 1 ; default option MenuData2_100604: ; 100604 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 2 db "かける@" db "まつ@" @@ -2125,7 +2125,7 @@ Function100d67: ; 100d67 db 1 ; default option .MenuData2: ; 100d90 - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 db "いれかえる@" ; TRADE db "つよさをみる@" ; STATS @@ -6286,7 +6286,7 @@ Function1029af: ; 1029af ; 1029bb MenuDataHeader_1029bb: ; 1029bb - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 3, 10, 15, 12 dw NULL db 1 ; default option @@ -7783,13 +7783,13 @@ Special_AskMobileOrCable: ; 103612 ; 103640 MenuDataHeader_103640: ; 103640 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 6, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw MenuData2_103648 db 1 ; default option MenuData2_103648: ; 103648 - db $80 ; flags + db STATICMENU_CURSOR ; flags db 2 db "モバイル@" db "ケーブル@" @@ -7937,13 +7937,13 @@ Function103700: ; 103700 ; 103747 MenuDataHeader_103747: ; 103747 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 13, 5, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw MenuData2_10374f db 1 ; default option MenuData2_10374f: ; 10374f - db $c0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags db 3 db "はい@" db "やめる@" diff --git a/mobile/mobile_45.asm b/mobile/mobile_45.asm index 920ef5cd7..fb9c12c13 100644 --- a/mobile/mobile_45.asm +++ b/mobile/mobile_45.asm @@ -7298,14 +7298,14 @@ Function1179a7: ; 1179a7 (45:79a7) ; 1179b5 (45:79b5) MenuDataHeader_1179b5: ; 1179b5 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option ; 1179bd MenuDataHeader_1179bd: ; 1179bd - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 0 ; default option @@ -7657,13 +7657,13 @@ Function117c89: ret MenuDataHeader_117cbc: ; 0x117cbc - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option MenuDataHeader_117cc4: ; 0x117cc4 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 0 ; default item diff --git a/mobile/mobile_45_sprite_engine.asm b/mobile/mobile_45_sprite_engine.asm index d77a8836f..8f66da8cd 100755 --- a/mobile/mobile_45_sprite_engine.asm +++ b/mobile/mobile_45_sprite_engine.asm @@ -507,7 +507,7 @@ Function1161d5: ; 1161d5 ; 11628c MenuDataHeader_11628c: ; 11628c - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 6, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm index b956a7224..45a20d3fe 100755 --- a/mobile/mobile_46.asm +++ b/mobile/mobile_46.asm @@ -3954,14 +3954,14 @@ BattleTowerRoomMenu_UpdateYesNoMenu: ; 119cf7 MenuDataHeader_119cf7: ; 119cf7 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 12, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 0 ; default option ; 119cff MenuData_119cff: ; 119cff - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 15, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 0 ; default option @@ -4754,14 +4754,14 @@ String_11a2d3: ; 11a2d3 ; 11a2d6 MenuDataHeader_11a2d6: ; 11a2d6 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 6, SCREEN_WIDTH - 1, 10 dw NULL db 0 ; default option ; 11a2de MenuDataHeader_11a2de: ; 11a2de - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 0 ; default option @@ -5324,7 +5324,7 @@ String_11a7f4: ; 11a7f4 ; 11a804 MenuDataHeader_11a804: ; 11a804 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, SCREEN_WIDTH - 1, 5 dw NULL db 0 ; default option @@ -5995,7 +5995,7 @@ Function11adc4: ; 11ae38 MenuDataHeader_11ae38: ; 11ae38 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 10, 10, 17, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option @@ -6241,7 +6241,7 @@ Function11afd6: ; 11afd6 ; 11afe8 MenuDataHeader_11afe8: ; 11afe8 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 9, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option @@ -6258,7 +6258,7 @@ String_11b003: ; 11b003 ; 11b013 MenuDataHeader_11b013: ; 11b013 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw NULL db 1 ; default option diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm index 12bd893e0..993105f63 100755 --- a/mobile/mobile_5c.asm +++ b/mobile/mobile_5c.asm @@ -672,7 +672,7 @@ Function171c66: ; 171c66 (5c:5c66) ; 171c6b (5c:5c6b) MenuDataHeader_171c6b: ; 171c6b - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1 dw NULL db 0 ; default option diff --git a/mobile/mobile_5f.asm b/mobile/mobile_5f.asm index 6074b6799..2652b6f10 100644 --- a/mobile/mobile_5f.asm +++ b/mobile/mobile_5f.asm @@ -483,13 +483,13 @@ Function17d246: ; 17d246 ; 17d26a MenuDataHeader_17d26a: ; 17d26a - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 14, 9 dw MenuData2_17d272 db 1 ; default option MenuData2_17d272: ; 17d272 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 4 db "ニュース¯よみこむ@" db "ニュース¯みる@" @@ -498,13 +498,13 @@ MenuData2_17d272: ; 17d272 ; 17d28f MenuDataHeader_ChallengeExplanationCancel: ; 17d28f - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 0, 0, 14, 7 dw MenuData2_ChallengeExplanationCancel db 1 ; default option MenuData2_ChallengeExplanationCancel: ; 17d297 - db $a0 ; flags + db STATICMENU_CURSOR | STATICMENU_WRAP ; flags db 3 db "Challenge@" db "Explanation@" @@ -1941,7 +1941,7 @@ Function17dc1f: ; 17dc1f ; 17dc96 MenuData2_17dc96: - db $e0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags db 2 db "はい@" db "いいえ@" diff --git a/mobile/mobile_menu.asm b/mobile/mobile_menu.asm index 2485410d4..a131e197b 100755 --- a/mobile/mobile_menu.asm +++ b/mobile/mobile_menu.asm @@ -461,7 +461,7 @@ Function4a28a: ; 4a28a (12:628a) ; 4a346 (12:6346) MenuDataHeader_0x4a346: ; 0x4a346 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 12, 0, SCREEN_WIDTH - 1, 6 String_4a34b: ; 4a34b @@ -483,14 +483,14 @@ UnknownText_0x4a35d: ; 0x4a35d ; 0x4a362 DeletePassword_YesNo_MenuDataHeader: ; 0x4a362 - db $40 ; flags + db MENU_BACKUP_TILES ; flags menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1 dw MenuData2_0x4a36a db 2 ; default option ; 0x4a36a MenuData2_0x4a36a: ; 0x4a36a - db $e0 ; flags + db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags db 2 ; items db "はい@" db "いいえ@" diff --git a/wram.asm b/wram.asm index acc78b66b..3bae9f683 100644 --- a/wram.asm +++ b/wram.asm @@ -1418,37 +1418,28 @@ wMenuDataBank:: db wMenuDataHeaderEnd:: wMenuData2:: -UNION ; cf91 ; MenuData2 -wMenuData2Flags:: ; cf91 -; bit 7: When set, start printing text one tile to the right of the border -; In scrolling menus, SELECT is functional -; bit 6: When set, start printing text one tile below the border -; In scrolling menus, START is functional -; bit 5: ???? -; bit 4: ???? -; bit 3: ???? -; bit 2: ???? -; bit 1: Enable Select button -; bit 0: Disable B button - db + +wMenuData2Flags:: db ; cf91 + +UNION ; cf92 +; Vertical Menu/DoNthMenu/SetUpMenu wMenuData2Items:: db ; cf92 wMenuData2IndicesPointer:: dw ; cf94 wMenuData2DisplayFunctionPointer:: dw ; cf96 wMenuData2PointerTableAddr:: dw ; cf97 -NEXTU ; cf91 -; 2D menu - ds 2 ; cf91 -wMenuData2Spacing:: db ; cf93 +NEXTU ; cf92 +; 2D Menu +wMenuData2_2DMenuDimensions:: db ; cf92 +wMenuData2_2DMenuSpacing:: db ; cf93 wMenuData2_2DMenuItemStringsBank:: db ; cf94 wMenuData2_2DMenuItemStringsAddr:: dw ; cf96 wMenuData2_2DMenuFunctionBank:: db ; cf97 wMenuData2_2DMenuFunctionAddr:: dw ; cf98 -NEXTU ; cf91 -; scrolling menu - ds 1 ; cf91 +NEXTU ; cf92 +; Scrolling Menu wMenuData2_ScrollingMenuHeight:: db ; cf92 wMenuData2_ScrollingMenuWidth:: db ; cf93 wMenuData2_ScrollingMenuSpacing:: db ; cf94 @@ -1465,7 +1456,16 @@ w2DMenuCursorInitY:: db ; cfa1 w2DMenuCursorInitX:: db ; cfa2 w2DMenuNumRows:: db ; cfa3 w2DMenuNumCols:: db ; cfa4 -w2DMenuFlags1:: db ; cfa5 +w2DMenuFlags1:: ; cfa5 +; bit 7: Disable checking of wMenuJoypadFilter +; bit 6: Enable sprite animations +; bit 5: Wrap around vertically +; bit 4: Wrap around horizontally +; bit 3: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far down +; bit 2: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far up +; bit 1: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far left +; bit 0: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far right + db w2DMenuFlags2:: db ; cfa6 w2DMenuCursorOffsets:: db ; cfa7 wMenuJoypadFilter:: db ; cfa8