ref: 14c8cf5b4817d1cb5446349bd04949186f73093c
parent: dfcca93b451cecb6857f8b6bc6b9f67e997b09c9
parent: d38ed29a4679936cb97bd95833e49700fee80030
author: Remy Oukaour <[email protected]>
date: Sun Jan 14 18:43:51 EST 2018
Merge branch 'master' of https://github.com/mid-kid/pokecrystal (resolve PR #452) # Conflicts: # data/player_names.asm # engine/battle/menu.asm # engine/billspc.asm # engine/billspctop.asm # engine/buy_sell_toss.asm # engine/decorations.asm # engine/delete_save_change_clock.asm # engine/events/buena.asm # engine/events/elevator.asm # engine/events/kurt.asm # engine/events/mom.asm # engine/events/move_tutor.asm # engine/events/pokecenter_pc.asm # engine/events/pokepic.asm # engine/events/std_scripts.asm # engine/events/unown_walls.asm # engine/init_gender.asm # engine/intro_menu.asm # engine/mail.asm # engine/main_menu.asm # engine/mart.asm # engine/menu_2.asm # engine/mon_menu.asm # engine/pack.asm # engine/slot_machine.asm # engine/start_menu.asm # home/menu.asm # maps/CeladonDeptStore6F.asm # maps/CeladonGameCornerPrizeRoom.asm # maps/DragonShrine.asm # maps/EarlsPokemonAcademy.asm # maps/GoldenrodCity.asm # maps/GoldenrodDeptStore6F.asm # maps/GoldenrodGameCorner.asm # maps/GoldenrodPokeComCenter2FMobile.asm # mobile/mobile_12.asm # mobile/mobile_12_2.asm # mobile/mobile_22.asm # mobile/mobile_22_2.asm # mobile/mobile_40.asm # mobile/mobile_45.asm # mobile/mobile_45_sprite_engine.asm # mobile/mobile_46.asm # mobile/mobile_5c.asm # mobile/mobile_5f.asm # mobile/mobile_menu.asm
--- a/constants.asm
+++ b/constants.asm
@@ -49,3 +49,4 @@
INCLUDE "constants/cry_constants.asm"
INCLUDE "constants/audio_constants.asm"
INCLUDE "constants/printer_constants.asm"
+INCLUDE "constants/menu_constants.asm"
--- /dev/null
+++ b/constants/menu_constants.asm
@@ -1,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
--- a/data/player_names.asm
+++ b/data/player_names.asm
@@ -1,5 +1,5 @@
ChrisNameMenuHeader: ; 882b5
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, 10, TEXTBOX_Y - 1
dw .MaleNames
db 1 ; ????
@@ -6,7 +6,7 @@
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,7 +18,7 @@
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 ; ????
@@ -25,7 +25,7 @@
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
--- a/data/unown_walls.asm
+++ b/data/unown_walls.asm
@@ -40,15 +40,15 @@
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
--- /dev/null
+++ b/docs/menu.md
@@ -1,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: ?????
+```
--- a/engine/battle/menu.asm
+++ b/engine/battle/menu.asm
@@ -33,7 +33,7 @@
; 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
@@ -40,7 +40,7 @@
; 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,7 +55,7 @@
; 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
@@ -62,7 +62,7 @@
; 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,7 +85,7 @@
; 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
@@ -92,7 +92,7 @@
; 24f91
MenuData_0x24f91: ; 24f91
- db $81 ; flags
+ db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
dn 2, 2 ; rows, columns
db 12 ; spacing
dba Strings24f9a
--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -229,7 +229,7 @@
; 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
@@ -236,7 +236,7 @@
; 0xe2545
.MenuData2: ; 0xe2545 (38:6545)
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 4 ; items
db "DEPOSIT@"
db "STATS@"
@@ -488,7 +488,7 @@
; 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
@@ -495,7 +495,7 @@
; 0xe2739
.MenuData: ; 0xe2739
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 4 ; items
db "WITHDRAW@"
db "STATS@"
@@ -711,7 +711,7 @@
; 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
@@ -718,7 +718,7 @@
; 0xe28cb
.MenuData2: ; 0xe28cb
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 3 ; items
db "MOVE@"
db "STATS@"
@@ -2329,7 +2329,7 @@
; 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
@@ -2336,7 +2336,7 @@
; 0xe35f9
.menudata2 ; 0xe35f9
- db $22 ; flags
+ db MENU_UNUSED_1 | MENU_UNUSED_3 ; flags
db 4, 0
db 1
dba .boxes
@@ -2557,7 +2557,7 @@
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
@@ -2564,7 +2564,7 @@
; 0xe3783
.MenuData2: ; 0xe3783
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 4 ; items
db "SWITCH@"
db "NAME@"
--- a/engine/billspctop.asm
+++ b/engine/billspctop.asm
@@ -69,13 +69,13 @@
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
--- a/engine/buy_sell_toss.asm
+++ b/engine/buy_sell_toss.asm
@@ -214,7 +214,7 @@
; 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
@@ -221,7 +221,7 @@
; 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
@@ -228,7 +228,7 @@
; 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
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -37,7 +37,7 @@
; 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
@@ -44,7 +44,7 @@
; 0x267a2
.MenuData2: ; 0x267a2
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 0 ; items
dw wd002
dw PlaceNthMenuStrings
@@ -422,7 +422,7 @@
; 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
@@ -429,7 +429,7 @@
; 0x269bd
.NonscrollingMenuData2: ; 0x269bd
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 0 ; items
dw wd002
dw DecorationMenuFunction
@@ -437,7 +437,7 @@
; 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
@@ -444,7 +444,7 @@
; 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,7 +948,7 @@
; 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
@@ -955,7 +955,7 @@
; 0x26eb3
MenuData2_0x26eb3: ; 0x26eb3
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 3 ; items
db "RIGHT SIDE@"
db "LEFT SIDE@"
--- a/engine/delete_save_change_clock.asm
+++ b/engine/delete_save_change_clock.asm
@@ -47,13 +47,13 @@
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 @@
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@"
--- a/engine/events/buena.asm
+++ b/engine/events/buena.asm
@@ -29,7 +29,7 @@
; 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 @@
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 @@
.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 @@
; 8b0d1
BlueCardBalanceMenuDataHeader: ; 0x8b0d1
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 11, 11, 13
; 8b0d6
@@ -235,7 +239,7 @@
; 8b0dd
.menudataheader ; 0x8b0dd
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, 17, TEXTBOX_Y - 1
; 8b0e2
@@ -267,7 +271,7 @@
; 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 @@
db 0
.MenuData2: ; 0x8b11c
- db $10 ; flags
+ db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 13 ; rows, columns
db 1 ; spacing
dba .indices
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -188,7 +188,7 @@
; 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
@@ -195,7 +195,7 @@
; 0x13558
Elevator_MenuData2: ; 0x13558
- db $10 ; flags
+ db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 0 ; rows, columns
db 1 ; horizontal spacing
dbw 0, CurElevator
--- a/engine/events/kurt.asm
+++ b/engine/events/kurt.asm
@@ -84,7 +84,7 @@
; 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 @@
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 @@
; 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
--- a/engine/events/mom.asm
+++ b/engine/events/mom.asm
@@ -728,7 +728,7 @@
; 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
@@ -735,7 +735,7 @@
; 0x166bd
MenuData2_0x166bd: ; 0x166bd
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 4 ; items
db "GET@"
db "SAVE@"
--- a/engine/events/move_tutor.asm
+++ b/engine/events/move_tutor.asm
@@ -99,5 +99,5 @@
ret
.MenuDataHeader: ; 0x4930a
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -27,13 +27,13 @@
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,7 +231,7 @@
; 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
@@ -238,7 +238,7 @@
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 @@
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
--- a/engine/events/pokepic.asm
+++ b/engine/events/pokepic.asm
@@ -42,7 +42,7 @@
ret
PokepicMenuDataHeader: ; 0x24547
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 6, 4, 14, 13
dw NULL
db 1 ; default option
--- a/engine/events/std_scripts.asm
+++ b/engine/events/std_scripts.asm
@@ -1870,13 +1870,13 @@
.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@"
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -44,7 +44,7 @@
; 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
@@ -51,7 +51,7 @@
; 0x48e04
.MenuData2: ; 0x48e04
- db $a1 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_DISABLE_B ; flags
db 2 ; items
db "Boy@"
db "Girl@"
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -553,7 +553,7 @@
; 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
@@ -560,7 +560,7 @@
; 5ee1
.MenuData2_Dex: ; 5ee1
- db $00 ; flags
+ db 0 ; flags
db 4 ; items
db "PLAYER@"
db "BADGES@"
@@ -569,7 +569,7 @@
; 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
@@ -576,7 +576,7 @@
; 5f03
.MenuData2_NoDex: ; 5f03
- db $00 ; flags
+ db 0 ; flags
db 4 ; items
db "PLAYER <PLAYER>@"
db "BADGES@"
--- a/engine/mail.asm
+++ b/engine/mail.asm
@@ -558,13 +558,13 @@
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 @@
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@"
--- a/engine/main_menu.asm
+++ b/engine/main_menu.asm
@@ -30,7 +30,7 @@
; 49d14
.MenuDataHeader: ; 49d14
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, 16, 7
dw .MenuData2
db 1 ; default option
@@ -37,7 +37,7 @@
; 49d1c
.MenuData2: ; 49d1c
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 0 ; items
dw MainMenuItems
dw PlaceMenuStrings
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -617,7 +617,7 @@
; 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
@@ -624,7 +624,7 @@
; 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,7 +901,7 @@
; 0x15f88
MenuDataHeader_BuySell: ; 0x15f88
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, 7, 8
dw .menudata2
db 1 ; default option
@@ -908,7 +908,7 @@
; 0x15f90
.menudata2 ; 0x15f90
- db $80 ; strings
+ db STATICMENU_CURSOR ; strings
db 3 ; items
db "BUY@"
db "SELL@"
--- a/engine/menu.asm
+++ b/engine/menu.asm
@@ -110,14 +110,14 @@
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,12 +130,12 @@
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
@@ -142,7 +142,7 @@
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 @@
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 @@
; 2418a
.InitFlags_b: ; 2418a
- ld a, [wMenuData2Spacing]
+ ld a, [wMenuData2_2DMenuSpacing]
or $20
ld [w2DMenuCursorOffsets], a
ret
--- a/engine/menu_2.asm
+++ b/engine/menu_2.asm
@@ -53,13 +53,13 @@
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
--- a/engine/mon_menu.asm
+++ b/engine/mon_menu.asm
@@ -55,7 +55,7 @@
; 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 @@
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,7 +324,7 @@
; 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
@@ -331,7 +331,7 @@
; 24edc
MenuData2_0x24edc: ; 24edc
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 3 ; items
db "SWITCH@"
db "STATS@"
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -162,7 +162,7 @@
; 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
@@ -169,7 +169,7 @@
; 0x1012c
.MenuData2_1: ; 0x1012c
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2 ; items
db "USE@"
db "QUIT@"
@@ -182,7 +182,7 @@
; 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
@@ -189,7 +189,7 @@
; 0x10143
.MenuData2_2: ; 0x10143
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 3 ; items
db "USE@"
db "GIVE@"
@@ -321,7 +321,7 @@
; 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
@@ -328,7 +328,7 @@
; 0x10251
.MenuData2: ; 0x10251
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 5 ; items
db "USE@"
db "GIVE@"
@@ -346,7 +346,7 @@
; 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
@@ -353,7 +353,7 @@
; 0x1027c
.MenuData2: ; 0x1027c
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 4 ; items
db "USE@"
db "GIVE@"
@@ -369,7 +369,7 @@
; 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
@@ -376,7 +376,7 @@
; 0x102a1
.MenuData2: ; 0x102a1
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2 ; items
db "USE@"
db "QUIT@"
@@ -388,7 +388,7 @@
; 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
@@ -395,7 +395,7 @@
; 0x102b8
.MenuData2: ; 0x102b8
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 3 ; items
db "USE@"
db "SEL@"
@@ -409,7 +409,7 @@
; 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
@@ -416,7 +416,7 @@
; 0x102d5
.MenuData2: ; 0x102d5
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 4 ; items
db "GIVE@"
db "TOSS@"
@@ -432,7 +432,7 @@
; 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
@@ -439,7 +439,7 @@
; 0x102fa
.MenuData2: ; 0x102fa
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 3 ; items
db "GIVE@"
db "TOSS@"
@@ -848,7 +848,7 @@
; 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
@@ -855,7 +855,7 @@
; 0x10609
.UsableMenuData2: ; 0x10609
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2 ; items
db "USE@"
db "QUIT@"
@@ -867,7 +867,7 @@
; 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
@@ -874,7 +874,7 @@
; 0x10620
.UnusableMenuData2: ; 0x10620
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 1 ; items
db "QUIT@"
; 0x10627
@@ -1158,7 +1158,7 @@
; 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
@@ -1165,7 +1165,7 @@
; 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,7 +1181,7 @@
; 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
@@ -1188,7 +1188,7 @@
; 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,7 +1213,7 @@
; 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
@@ -1220,7 +1220,7 @@
; 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,7 +1537,7 @@
; 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
@@ -1544,7 +1544,7 @@
; 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,7 +1554,7 @@
; 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
@@ -1561,7 +1561,7 @@
; 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,7 +1571,7 @@
; 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
@@ -1578,7 +1578,7 @@
; 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,7 +1588,7 @@
; 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
@@ -1595,7 +1595,7 @@
; 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,7 +1605,7 @@
; 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
@@ -1612,7 +1612,7 @@
; 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,7 +1622,7 @@
; 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
@@ -1629,7 +1629,7 @@
; 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
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1868,7 +1868,7 @@
; 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
@@ -1875,7 +1875,7 @@
; 0x930de
.MenuData2: ; 0x930de
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 3 ; items
db " 3@"
db " 2@"
--- a/engine/start_menu.asm
+++ b/engine/start_menu.asm
@@ -152,19 +152,19 @@
.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 @@
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,7 +1162,7 @@
.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
@@ -1169,7 +1169,7 @@
; 0x12dd1
.MenuData2:
- db $80 ; flags
+ db STATICMENU_CURSOR ; flags
db 3 ; items
db "READ@"
db "TAKE@"
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -39,7 +39,7 @@
; 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 @@
; 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,7 +180,7 @@
; 1e1d
YesNoMenuDataHeader:: ; 1e1d
- db $40 ; tile backup
+ db MENU_BACKUP_TILES ; flags
menu_coords 10, 5, 15, 9
dw .MenuData2
db 1 ; default option
@@ -187,7 +187,7 @@
; 1e25
.MenuData2: ; 1e25
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2
db "YES@"
db "NO@"
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -80,13 +80,13 @@
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@"
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -103,13 +103,13 @@
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 @@
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@"
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -266,13 +266,13 @@
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@"
@@ -279,13 +279,13 @@
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@"
@@ -292,13 +292,13 @@
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@"
@@ -305,13 +305,13 @@
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@"
@@ -318,13 +318,13 @@
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@"
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -103,13 +103,13 @@
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
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -95,13 +95,13 @@
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@"
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -69,13 +69,13 @@
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@"
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -139,13 +139,13 @@
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 @@
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@"
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -49,13 +49,13 @@
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 @@
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
--- a/mobile/mobile_12.asm
+++ b/mobile/mobile_12.asm
@@ -563,7 +563,7 @@
; 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
@@ -570,7 +570,7 @@
; 0x484f9
MenuData2_0x484f9: ; 0x484f9
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 2 ; items
Strings_484fb:
String_484fb: db "Boy@"
@@ -578,19 +578,19 @@
; 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
@@ -597,7 +597,7 @@
; 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 @@
.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 @@
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 @@
; 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
--- a/mobile/mobile_12_2.asm
+++ b/mobile/mobile_12_2.asm
@@ -715,7 +715,7 @@
; 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
--- a/mobile/mobile_22.asm
+++ b/mobile/mobile_22.asm
@@ -277,7 +277,7 @@
; 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
@@ -284,7 +284,7 @@
; 0x892ab
MenuData2_0x892ab: ; 0x892ab
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2 ; items
db "はい@"
db "いいえ@"
@@ -2831,7 +2831,7 @@
; 8a176 (22:6176)
MenuDataHeader_0x8a176: ; 0x8a176
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 14, 0, SCREEN_WIDTH - 1, 6
; 8a17b
@@ -2853,7 +2853,7 @@
; 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
@@ -2860,7 +2860,7 @@
; 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 @@
; 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,7 +3173,7 @@
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
@@ -3180,7 +3180,7 @@
; 0x8a417
MenuData2_0x8a417: ; 0x8a417
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 4 ; items
db "めいしりスト@"
db "じぶんの めいし@"
@@ -3189,7 +3189,7 @@
; 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
@@ -3196,7 +3196,7 @@
; 0x8a43d
MenuData2_0x8a43d: ; 0x8a43d
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 3 ; items
db "めいしりスト@"
db "じぶんの めいし@"
@@ -3914,7 +3914,7 @@
; 8a9c9 (22:69c9)
MenuDataHeader_0x8a9c9: ; 0x8a9c9
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
menu_coords 11, 4, 18, TEXTBOX_Y - 1
; 8a9ce
@@ -3943,7 +3943,7 @@
; 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
@@ -3950,7 +3950,7 @@
; 0x8a9fa
MenuData2_0x8a9fa: ; 0x8a9fa
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 3 ; items
db "へんしゅう@"
db "みる@"
--- a/mobile/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
@@ -910,7 +910,7 @@
; 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 @@
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,11 +1082,11 @@
; 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
@@ -1093,7 +1093,7 @@
; 0x8b9b9
MenuData2_0x8b9b9: ; 0x8b9b9
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 3 ; items
db "へんしゅう@" ; EDIT
db "いれかえ@" ; REPLACE
@@ -1101,7 +1101,7 @@
; 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
@@ -1108,7 +1108,7 @@
; 0x8b9d2
MenuData2_0x8b9d2: ; 0x8b9d2
- db $a0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
db 5 ; items
db "みる@" ; VIEW
db "へんしゅう@" ; EDIT
--- a/mobile/mobile_40.asm
+++ b/mobile/mobile_40.asm
@@ -924,7 +924,7 @@
; 1005b2
MenuDataHeader_1005b2: ; 1005b2
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
db 6, 14
db 10, 19
dw MenuData2_1005ba
@@ -931,7 +931,7 @@
db 1 ; default option
MenuData2_1005ba:
- db $c0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
db 2
db "はい@"
db "いいえ@"
@@ -975,7 +975,7 @@
; 1005fc
MenuDataHeader_1005fc: ; 1005fc
- db $40 ; flags
+ db MENU_BACKUP_TILES ; flags
db 6, 14
db 10, 19
dw MenuData2_100604
@@ -982,7 +982,7 @@
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 @@
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 @@
; 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 @@
; 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 @@
; 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 "やめる@"
--- a/mobile/mobile_45.asm
+++ b/mobile/mobile_45.asm
@@ -7298,7 +7298,7 @@
; 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
@@ -7305,7 +7305,7 @@
; 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 @@
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
--- a/mobile/mobile_45_sprite_engine.asm
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -507,7 +507,7 @@
; 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
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -3954,7 +3954,7 @@
; 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
@@ -3961,7 +3961,7 @@
; 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,7 +4754,7 @@
; 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
@@ -4761,7 +4761,7 @@
; 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 @@
; 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 @@
; 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 @@
; 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 @@
; 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
--- a/mobile/mobile_5c.asm
+++ b/mobile/mobile_5c.asm
@@ -672,7 +672,7 @@
; 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
--- a/mobile/mobile_5f.asm
+++ b/mobile/mobile_5f.asm
@@ -483,13 +483,13 @@
; 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 @@
; 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 @@
; 17dc96
MenuData2_17dc96:
- db $e0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags
db 2
db "はい@"
db "いいえ@"
--- a/mobile/mobile_menu.asm
+++ b/mobile/mobile_menu.asm
@@ -461,7 +461,7 @@
; 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,7 +483,7 @@
; 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
@@ -490,7 +490,7 @@
; 0x4a36a
MenuData2_0x4a36a: ; 0x4a36a
- db $e0 ; flags
+ db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags
db 2 ; items
db "はい@"
db "いいえ@"
--- a/wram.asm
+++ b/wram.asm
@@ -1418,37 +1418,28 @@
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 @@
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