shithub: pokecrystal

Download patch

ref: 11d67567d2c0182864a755a7bebcff0f29e877d6
parent: 066cc91b136b7266288b832bfa212123400ed758
author: mid-kid <esteve.varela@gmail.com>
date: Sun Jan 14 06:59:56 EST 2018

Use constants for menu flags

Added a bunch of constants for the bitflags of each kind of menu. Some
are slightly vague or too long, but I'm not sure how to else name them.

--- a/constants.asm
+++ b/constants.asm
@@ -47,3 +47,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/default_names.asm
+++ b/data/default_names.asm
@@ -1,5 +1,5 @@
 ChrisNameMenuHeader: ; 882b5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 11, 10 ; end coords
 	dw .MaleNames
@@ -7,7 +7,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
@@ -19,7 +19,7 @@
 	db " NAME @" ; title
 
 KrisNameMenuHeader: ; 882e5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 11, 10 ; end coords
 	dw .FemaleNames
@@ -27,7 +27,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/engine/battle/menu.asm
+++ b/engine/battle/menu.asm
@@ -33,7 +33,7 @@
 ; 24f2c
 
 BattleMenuDataHeader: ; 24f2c
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12, 08 ; start coords
 	db 17, 19 ; end coords
 	dw MenuData_0x24f34
@@ -41,7 +41,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
@@ -56,7 +56,7 @@
 ; 24f4e
 
 MenuDataHeader_0x24f4e: ; 24f4e
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12, 00 ; start coords
 	db 17, 19 ; end coords
 	dw MenuData_0x24f56
@@ -64,7 +64,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
@@ -87,7 +87,7 @@
 ; 24f89
 
 MenuDataHeader_0x24f89: ; 24f89
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12, 02 ; start coords
 	db 17, 19 ; end coords
 	dw MenuData_0x24f91
@@ -95,7 +95,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
 	db 04, 09 ; start coords
 	db 13, 19 ; end coords
 	dw .MenuData2
@@ -237,7 +237,7 @@
 ; 0xe2545
 
 .MenuData2: ; 0xe2545 (38:6545)
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 4 ; items
 	db "DEPOSIT@"
 	db "STATS@"
@@ -490,7 +490,7 @@
 ; e2731 (38:6731)
 
 .MenuDataHeader: ; 0xe2731
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 09 ; start coords
 	db 13, 19 ; end coords
 	dw .MenuData
@@ -498,7 +498,7 @@
 ; 0xe2739
 
 .MenuData: ; 0xe2739
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 4 ; items
 	db "WITHDRAW@"
 	db "STATS@"
@@ -714,7 +714,7 @@
 ; e28c3
 
 .MenuDataHeader: ; 0xe28c3
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 09 ; start coords
 	db 13, 19 ; end coords
 	dw .MenuData2
@@ -722,7 +722,7 @@
 ; 0xe28cb
 
 .MenuData2: ; 0xe28cb
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 3 ; items
 	db "MOVE@"
 	db "STATS@"
@@ -2562,7 +2562,7 @@
 	hlcoord 11, 7 ; XXX
 
 .MenuDataHeader: ; 0xe377b
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 11 ; start coords
 	db 13, 19 ; end coords
 	dw .MenuData2
@@ -2570,7 +2570,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,7 +69,7 @@
 	ret
 
 .MenuDataHeader: ; 0xe46f
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData2
@@ -76,7 +76,7 @@
 	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
 	db 09, 15 ; start coords
 	db 11, 19 ; end coords
 	dw ret_25097
@@ -222,7 +222,7 @@
 ; 0x250f5
 
 BuyItem_MenuDataHeader: ; 0x250f5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 15, 07 ; start coords
 	db 17, 19 ; end coords
 	dw DisplayPurchasePrice
@@ -230,7 +230,7 @@
 ; 0x250fd
 
 SellItem_MenuDataHeader: ; 0x250fd
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 15, 07 ; start coords
 	db 17, 19 ; end coords
 	dw DisplaySellingPrice
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -37,7 +37,7 @@
 ; 0x2679a
 
 .MenuDataHeader: ; 0x2679a
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 05 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData2
@@ -45,7 +45,7 @@
 ; 0x267a2
 
 .MenuData2: ; 0x267a2
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 0 ; items
 	dw wd002
 	dw PlaceNthMenuStrings
@@ -423,7 +423,7 @@
 ; 0x269b5
 
 .NonscrollingMenuDataHeader: ; 0x269b5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 17, 19 ; end coords
 	dw .NonscrollingMenuData2
@@ -431,7 +431,7 @@
 ; 0x269bd
 
 .NonscrollingMenuData2: ; 0x269bd
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 0 ; items
 	dw wd002
 	dw DecorationMenuFunction
@@ -439,7 +439,7 @@
 ; 0x269c5
 
 .ScrollingMenuDataHeader: ; 0x269c5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 01, 01 ; start coords
 	db 16, 18 ; end coords
 	dw .ScrollingMenuData2
@@ -447,7 +447,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
@@ -951,7 +951,7 @@
 ; 26eab
 
 MenuDataHeader_0x26eab: ; 0x26eab
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 07, 13 ; end coords
 	dw MenuData2_0x26eb3
@@ -959,7 +959,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,7 +47,7 @@
 	db "@"
 
 .NoYes_MenuDataHeader: ; 0x4d40d
-	db $00 ; flags
+	db 0 ; flags
 	db 07, 14 ; start coords
 	db 11, 19 ; end coords
 	dw .NoYes_MenuData2
@@ -54,7 +54,7 @@
 	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@"
@@ -285,7 +285,7 @@
 	db "@"
 
 .NoYesMenuDataHeader: ; 0x4d585
-	db $00 ; flags
+	db 0 ; flags
 	db 07, 14 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -292,7 +292,7 @@
 	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
 	db 00, 00 ; start coords
 	db 07, 10 ; end coords
 	dw .MenuData2
@@ -39,7 +39,7 @@
 	db 0
 
 .MenuData2: ; 0x8afb2
-	db $81 ; flags
+	db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
 	db 0 ; items
 	dw .PasswordIndices
 	dw .PlacePasswordChoices
@@ -225,7 +225,7 @@
 ; 8b0d1
 
 BlueCardBalanceMenuDataHeader: ; 0x8b0d1
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 11, 00 ; start coords
 	db 13, 11 ; end coords
 ; 8b0d6
@@ -237,7 +237,7 @@
 ; 8b0dd
 
 .menudataheader ; 0x8b0dd
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 11, 17 ; end coords
 ; 8b0e2
@@ -270,7 +270,7 @@
 ; 8b113
 
 .MenuDataHeader: ; 0x8b113
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 01, 01 ; start coords
 	db 09, 16 ; end coords
 	dw .MenuData2
@@ -280,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/crystal_unown.asm
+++ b/engine/events/crystal_unown.asm
@@ -195,19 +195,19 @@
 
 .MenuDataHeaders_UnownWalls: ; 0x8aed5
 ;.MenuDataHeader_Escape:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 03 ; start coords
 	db 09, 16 ; end coords
 ;.MenuDataHeader_Light:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 04 ; start coords
 	db 09, 15 ; end coords
 ;.MenuDataHeader_Water:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 04 ; start coords
 	db 09, 15 ; end coords
 ;.MenuDataHeader_Ho_Oh:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 04 ; start coords
 	db 09, 15 ; end coords
 ; 8aee9
--- 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
 	db 01, 12 ; start coords
 	db 09, 18 ; end coords
 	dw Elevator_MenuData2
@@ -196,7 +196,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
 	db 01, 01 ; start coords
 	db 10, 13 ; end coords
 	dw .MenuData2
@@ -94,7 +94,7 @@
 	db 0
 
 .MenuData2: ; 0x8808f
-	db $10 ; flags
+	db SCROLLINGMENU_DISPLAY_ARROWS ; flags
 	db 4, 7
 	db 1
 	dbw 0, Buffer1
@@ -159,11 +159,12 @@
 ; 8810d
 
 .MenuDataHeader: ; 0x8810d
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 09, 06 ; start coords
 	db 12, 19 ; end coords
-
-	db 0, 0, -1, 0 ; XXX
+	dw NULL
+	db -1 ; default option
+	db 0
 
 .PlaceApricornName: ; 88116
 	call MenuBoxCoord2Tile
--- 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
 	db 00, 00 ; start coords
 	db 10, 10 ; end coords
 	dw MenuData2_0x166bd
@@ -736,7 +736,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
@@ -98,6 +98,6 @@
 	ret
 
 .MenuDataHeader: ; 0x4930a
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12, 00 ; start coords
 	db 17, 19 ; end coords
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -27,7 +27,7 @@
 	ret
 
 .TopMenu:
-	db $48 ; flags
+	db MENU_BACKUP_TILES | MENU_NO_CLICK_SFX ; flags
 	db 00, 00 ; start coords
 	db 12, 15 ; end coords
 	dw .MenuData2
@@ -34,7 +34,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 0 ; items
 	dw .WhichPC
 	dw PlaceNthMenuStrings
@@ -232,7 +232,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
@@ -239,7 +239,7 @@
 	db 1 ; default selected option
 
 .KrissPCMenuData2:
-	db %10100000 ; bit7
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 0 ; # items?
 	dw .KrissPCMenuList1
 	dw PlaceNthMenuStrings
@@ -620,7 +620,7 @@
 	ret
 
 .PCItemsMenuData:
-	db %01000000
+	db MENU_BACKUP_TILES
 	db  1,  4 ; start coords
 	db 10, 18 ; end coords
 	dw .MenuData2
@@ -627,7 +627,7 @@
 	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
 	db 04, 06 ; start coords
 	db 13, 14 ; end coords
 	dw NULL
--- a/engine/events/std_scripts.asm
+++ b/engine/events/std_scripts.asm
@@ -1868,7 +1868,7 @@
 
 
 .MenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 00 ; start coords
 	db 11, 15 ; end coords
 	dw .MenuData2
@@ -1875,7 +1875,7 @@
 	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
 	db 04, 06 ; start coords
 	db 09, 12 ; end coords
 	dw .MenuData2
@@ -52,7 +52,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
 	db 00, 00 ; start coords
 	db 09, 15 ; end coords
 	dw .MenuData2_Dex
@@ -561,7 +561,7 @@
 ; 5ee1
 
 .MenuData2_Dex: ; 5ee1
-	db $00 ; flags
+	db 0 ; flags
 	db 4 ; items
 	db "PLAYER@"
 	db "BADGES@"
@@ -570,7 +570,7 @@
 ; 5efb
 
 .MenuDataHeader_NoDex: ; 5efb
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 09, 15 ; end coords
 	dw .MenuData2_NoDex
@@ -578,7 +578,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,7 +558,7 @@
 	ret
 
 .TopMenuDataHeader: ; 0x4494c
-	db %01000000 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 1, 8 ; start coords
 	db 10, 18 ; end coords
 	dw .TopMenuData2
@@ -565,7 +565,7 @@
 	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
@@ -574,7 +574,7 @@
 	dba NULL
 
 .SubMenuDataHeader: ; 0x44964
-	db %01000000 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 0,  0 ; start coords
 	db 9, 13 ; end coords
 	dw .SubMenuData2
@@ -581,7 +581,7 @@
 	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
 	db 00, 00 ; start coords
 	db 07, 16 ; end coords
 	dw .MenuData2
@@ -38,7 +38,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
 	db 03, 01 ; start coords
 	db 11, 19 ; end coords
 	dw .menudata2
@@ -625,7 +625,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
@@ -902,7 +902,7 @@
 ; 0x15f88
 
 MenuDataHeader_BuySell: ; 0x15f88
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 08, 07 ; end coords
 	dw .menudata2
@@ -910,7 +910,7 @@
 ; 0x15f90
 
 .menudata2 ; 0x15f90
-	db $80 ; strings
+	db STATICMENU_CURSOR ; strings
 	db 3 ; items
 	db "BUY@"
 	db "SELL@"
--- a/engine/menu_2.asm
+++ b/engine/menu_2.asm
@@ -53,7 +53,7 @@
 	ret
 
 MenuDataHeader_0x24b15: ; 0x24b15
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 11 ; start coords
 	db 02, 19 ; end coords
 	dw NULL
@@ -60,7 +60,7 @@
 	db 1 ; default option
 
 MenuDataHeader_0x24b1d: ; 0x24b1d
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 11, 00 ; start coords
 	db 13, 08 ; end coords
 	dw NULL
--- 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 ; tile backup
 	db 00, 06 ; start coords
 	db 17, 19 ; end coords
 	dw 0
@@ -325,7 +325,7 @@
 ; 24ed4
 
 MenuDataHeader_0x24ed4: ; 24ed4
-	db $00 ; flags
+	db 0 ; flags
 	db 11, 11 ; start coords
 	db 17, 19 ; end coords
 	dw MenuData2_0x24edc
@@ -333,7 +333,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
@@ -147,7 +147,7 @@
 
 ; 10124 (4:4124)
 .MenuDataHeader1: ; 0x10124
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 07, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2_1
@@ -155,7 +155,7 @@
 ; 0x1012c
 
 .MenuData2_1: ; 0x1012c
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 2 ; items
 	db "USE@"
 	db "QUIT@"
@@ -169,7 +169,7 @@
 ; 1013b
 
 .MenuDataHeader2: ; 0x1013b
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 05, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2_2
@@ -177,7 +177,7 @@
 ; 0x10143
 
 .MenuData2_2: ; 0x10143
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 3 ; items
 	db "USE@"
 	db "GIVE@"
@@ -309,7 +309,7 @@
 
 ; 10249 (4:4249)
 MenuDataHeader_UsableKeyItem: ; 0x10249
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 01, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -317,7 +317,7 @@
 ; 0x10251
 
 .MenuData2: ; 0x10251
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 5 ; items
 	db "USE@"
 	db "GIVE@"
@@ -336,7 +336,7 @@
 ; 10274
 
 MenuDataHeader_UsableItem: ; 0x10274
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 03, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -344,7 +344,7 @@
 ; 0x1027c
 
 .MenuData2: ; 0x1027c
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 4 ; items
 	db "USE@"
 	db "GIVE@"
@@ -361,7 +361,7 @@
 ; 10299
 
 MenuDataHeader_UnusableItem: ; 0x10299
-	db %01000000 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 07, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -369,7 +369,7 @@
 ; 0x102a1
 
 .MenuData2: ; 0x102a1
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 2 ; items
 	db "USE@"
 	db "QUIT@"
@@ -382,7 +382,7 @@
 ; 102b0
 
 MenuDataHeader_UnusableKeyItem: ; 0x102b0
-	db %01000000 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 05, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -390,7 +390,7 @@
 ; 0x102b8
 
 .MenuData2: ; 0x102b8
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 3 ; items
 	db "USE@"
 	db "SEL@"
@@ -405,7 +405,7 @@
 ; 102cd
 
 MenuDataHeader_HoldableKeyItem: ; 0x102cd
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 03, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -413,7 +413,7 @@
 ; 0x102d5
 
 .MenuData2: ; 0x102d5
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 4 ; items
 	db "GIVE@"
 	db "TOSS@"
@@ -430,7 +430,7 @@
 ; 102f2
 
 MenuDataHeader_HoldableItem: ; 0x102f2
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 05, 13 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -438,7 +438,7 @@
 ; 0x102fa
 
 .MenuData2: ; 0x102fa
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 3 ; items
 	db "GIVE@"
 	db "TOSS@"
--- 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
 	db 10, 14 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData2
@@ -1876,7 +1876,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,7 +152,7 @@
 
 
 .MenuDataHeader:
-	db $40 ; tile backup
+	db MENU_BACKUP_TILES ; flags
 	db 0, 10 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData
@@ -159,7 +159,7 @@
 	db 1 ; default selection
 
 .ContestMenuDataHeader:
-	db $40 ; tile backup
+	db MENU_BACKUP_TILES ; flags
 	db 2, 10 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData
@@ -166,7 +166,7 @@
 	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
@@ -1165,7 +1165,7 @@
 
 
 .MenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 10, 12 ; start coords
 	db 17, 19 ; end coords
 	dw .MenuData2
@@ -1173,7 +1173,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
@@ -40,7 +40,7 @@
 ; 1d5f
 
 .MenuDataHeader: ; 1d5f
-	db $40 ; tile backup
+	db MENU_BACKUP_TILES ; flags
 	db 12, 0 ; start coords
 	db 17, 19 ; end coords
 	dw vTiles0
@@ -60,7 +60,7 @@
 ; 1d75
 
 .MenuDataHeader: ; 1d75
-	db $40 ; tile backup
+	db MENU_BACKUP_TILES ; flags
 	db 0, 0 ; start coords
 	db 17, 19 ; end coords
 	dw 0
@@ -183,7 +183,7 @@
 ; 1e1d
 
 YesNoMenuDataHeader:: ; 1e1d
-	db $40 ; tile backup
+	db MENU_BACKUP_TILES ; flags
 	db 5, 10 ; start coords
 	db 9, 15 ; end coords
 	dw .MenuData2
@@ -191,7 +191,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,7 +80,7 @@
 	jump .Start
 
 .MenuData:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -87,7 +87,7 @@
 	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
@@ -104,7 +104,7 @@
 
 
 CeladonPrizeRoom_TMMenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
 	dw .MenuData2
@@ -111,7 +111,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 4 ; items
 	db "TM32    1500@"
 	db "TM29    3500@"
@@ -193,7 +193,7 @@
 
 
 .MenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 17 ; end coords
 	dw .MenuData2
@@ -200,7 +200,7 @@
 	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
@@ -267,7 +267,7 @@
 
 
 MenuDataHeader_0x18d215:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 08 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -274,7 +274,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $81 ; flags
+	db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
 	db 3 ; items
 	db "Pal@"
 	db "Underling@"
@@ -282,7 +282,7 @@
 
 
 MenuDataHeader_0x18d234:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 09 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -289,7 +289,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $81 ; flags
+	db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
 	db 3 ; items
 	db "Strategy@"
 	db "Raising@"
@@ -297,7 +297,7 @@
 
 
 MenuDataHeader_0x18d258:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 05 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -304,7 +304,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $81 ; flags
+	db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
 	db 3 ; items
 	db "Weak person@"
 	db "Tough person@"
@@ -312,7 +312,7 @@
 
 
 MenuDataHeader_0x18d283:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 08 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -319,7 +319,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $81 ; flags
+	db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
 	db 3 ; items
 	db "Love@"
 	db "Violence@"
@@ -327,7 +327,7 @@
 
 
 MenuDataHeader_0x18d2a5:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 12 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -334,7 +334,7 @@
 	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,7 +103,7 @@
 	jump .Loop
 
 .BlackboardMenuData:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 08, 11 ; end coords
 	dw .MenuData2
@@ -110,7 +110,7 @@
 	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
@@ -96,7 +96,7 @@
 
 
 .MoveMenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
 	dw .MenuData2
@@ -103,7 +103,7 @@
 	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,7 +69,7 @@
 	jump .Start
 
 .MenuData:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 19 ; end coords
 	dw .MenuData2
@@ -76,7 +76,7 @@
 	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
@@ -140,7 +140,7 @@
 
 
 GoldenrodGameCornerTMVendorMenuData:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 15 ; end coords
 	dw .MenuData2
@@ -147,7 +147,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 4 ; items
 	db "TM25    5500@"
 	db "TM14    5500@"
@@ -229,7 +229,7 @@
 
 
 .MenuDataHeader:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 17 ; end coords
 	dw .MenuData2
@@ -236,7 +236,7 @@
 	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
@@ -50,7 +50,7 @@
 
 
 MenuDataHeader_0x62602:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 08, 15 ; end coords
 	dw .MenuData2
@@ -57,7 +57,7 @@
 	db 1 ; default option
 
 .MenuData2:
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 3 ; items
 	db "# つうしん クラブ@" ; # COM CLUB
 	db "モバイルセンター@" ; MOBILE CENTER
@@ -95,7 +95,7 @@
 
 
 MenuDataHeader_0x6264c:
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 00 ; start coords
 	db 08, 15 ; end coords
 	dw .MenuData2
@@ -102,7 +102,7 @@
 	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
 	db 02, 11 ; start coords
 	db 07, 19 ; end coords
 	dw MenuData2_0x484f9
@@ -571,7 +571,7 @@
 ; 0x484f9
 
 MenuData2_0x484f9: ; 0x484f9
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 2 ; items
 Strings_484fb:
 String_484fb: db "Boy@"
@@ -579,22 +579,22 @@
 ; 0x48504
 
 MenuDataHeader_0x48504: ; 0x48504
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 10 ; start coords
 	db 17, 19 ; end coords
 
 MenuDataHeader_0x48509: ; 0x48509
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 05, 10 ; start coords
 	db 07, 19 ; end coords
 
 MenuDataHeader_0x4850e: ; 0x4850e
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 09, 10 ; start coords
 	db 11, 19 ; end coords
 
 MenuDataHeader_0x48513: ; 0x48513
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 01, 11 ; start coords
 	db 12, 18 ; end coords
 	dw MenuData2_0x4851b
@@ -602,7 +602,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
@@ -1277,7 +1277,7 @@
 ; 48a9c (12:4a9c)
 
 MenuDataHeader_0x48a9c: ; 0x48a9c
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 08, 10 ; start coords
 	db 13, 19 ; end coord
 
--- 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
 	db 09, 11 ; start coords
 	db 17, 19 ; end coords
 	dw NULL
--- 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
 	db 05, 10 ; start coords
 	db 09, 15 ; end coords
 	dw MenuData2_0x892ab
@@ -285,7 +285,7 @@
 ; 0x892ab
 
 MenuData2_0x892ab: ; 0x892ab
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 2 ; items
 	db "はい@"
 	db "いいえ@"
@@ -2832,7 +2832,7 @@
 ; 8a176 (22:6176)
 
 MenuDataHeader_0x8a176: ; 0x8a176
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 14 ; start coords
 	db 06, 19 ; end coords
 ; 8a17b
@@ -2855,7 +2855,7 @@
 ; 8a19a (22:619a)
 
 MenuDataHeader_0x8a19a: ; 0x8a19a
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 14 ; start coords
 	db 06, 19 ; end coords
 	dw MenuData2_0x8a1a2
@@ -2863,7 +2863,7 @@
 ; 0x8a1a2
 
 MenuData2_0x8a1a2: ; 0x8a1a2
-	db $e0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags
 	db 3 ; items
 	db "ひらく@"
 	db "すてる@"
@@ -3015,7 +3015,7 @@
 ; 8a2ef (22:62ef)
 
 MenuDataHeader_0x8a2ef: ; 0x8a2ef
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12, 00 ; start coords
 	db 17, 19 ; end coords
 ; 8a2f4
@@ -3177,7 +3177,7 @@
 Unknown_8a40b: db 1, 2, 3, -1
 
 MenuDataHeader_0x8a40f: ; 0x8a40f
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 11, 10 ; end coords
 	dw MenuData2_0x8a417
@@ -3185,7 +3185,7 @@
 ; 0x8a417
 
 MenuData2_0x8a417: ; 0x8a417
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 4 ; items
 	db "めいしりスト@"
 	db "じぶんの めいし@"
@@ -3194,7 +3194,7 @@
 ; 0x8a435
 
 MenuDataHeader_0x8a435: ; 0x8a435
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 02, 00 ; start coords
 	db 09, 10 ; end coords
 	dw MenuData2_0x8a43d
@@ -3202,7 +3202,7 @@
 ; 0x8a43d
 
 MenuData2_0x8a43d: ; 0x8a43d
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 3 ; items
 	db "めいしりスト@"
 	db "じぶんの めいし@"
@@ -3920,7 +3920,7 @@
 ; 8a9c9 (22:69c9)
 
 MenuDataHeader_0x8a9c9: ; 0x8a9c9
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 11 ; start coords
 	db 11, 18 ; end coords
 ; 8a9ce
@@ -3950,7 +3950,7 @@
 ; 8a9f2 (22:69f2)
 
 MenuDataHeader_0x8a9f2: ; 0x8a9f2
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 04, 11 ; start coords
 	db 11, 18 ; end coords
 	dw MenuData2_0x8a9fa
@@ -3958,7 +3958,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
 	db 03, 01 ; start coords
 	db 13, 18 ; end coords
 	dw MenuData2_0x8b870
@@ -920,7 +920,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
@@ -1083,12 +1083,12 @@
 ; 8b9ac
 
 MenuDataHeader_0x8b9ac: ; 0x8b9ac
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 11 ; start coords
 	db 11, 19 ; end coords
 
 MenuDataHeader_0x8b9b1: ; 0x8b9b1
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 11 ; start coords
 	db 07, 19 ; end coords
 	dw MenuData2_0x8b9b9
@@ -1096,7 +1096,7 @@
 ; 0x8b9b9
 
 MenuData2_0x8b9b9: ; 0x8b9b9
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 3 ; items
 	db "へんしゅう@" ; EDIT
 	db "いれかえ@"   ; REPLACE
@@ -1104,7 +1104,7 @@
 ; 0x8b9ca
 
 MenuDataHeader_0x8b9ca: ; 0x8b9ca
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 00, 11 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x8b9d2
@@ -1112,7 +1112,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 "まつ@"
@@ -2126,7 +2126,7 @@
 	db 1 ; default option
 
 .MenuData2: ; 100d90
-	db $c0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
 	db 3
 	db "いれかえる@"  ; TRADE
 	db "つよさをみる@" ; STATS
@@ -6287,7 +6287,7 @@
 ; 1029bb
 
 MenuDataHeader_1029bb: ; 1029bb
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 10, 3 ; start coords
 	db 12, 15 ; end coords
 	dw NULL
@@ -7785,7 +7785,7 @@
 ; 103640
 
 MenuDataHeader_103640: ; 103640
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  6, 13 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_103648
@@ -7792,7 +7792,7 @@
 	db 1 ; default option
 
 MenuData2_103648: ; 103648
-	db $80 ; flags
+	db STATICMENU_CURSOR ; flags
 	db 2
 	db "モバイル@"
 	db "ケーブル@"
@@ -7940,7 +7940,7 @@
 ; 103747
 
 MenuDataHeader_103747: ; 103747
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  5, 13 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_10374f
@@ -7947,7 +7947,7 @@
 	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
@@ -7297,7 +7297,7 @@
 ; 1179b5 (45:79b5)
 
 MenuDataHeader_1179b5: ; 1179b5
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12,  0 ; start coords
 	db 17, 19 ; end coords
 	dw NULL
@@ -7305,7 +7305,7 @@
 ; 1179bd
 
 MenuDataHeader_1179bd: ; 1179bd
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 14 ; start coords
 	db 11, 19 ; end coords
 	dw NULL
@@ -7658,7 +7658,7 @@
 	ret
 
 MenuDataHeader_117cbc: ; 0x117cbc
-	db $40    ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12,  0 ; start coords
 	db 17, 19 ; end coords
 	dw NULL   ; menu data 2
@@ -7665,7 +7665,7 @@
 	db 0      ; default option
 
 MenuDataHeader_117cc4: ; 0x117cc4
-	db $40    ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 14 ; start coords
 	db 11, 19 ; end coords
 	dw NULL   ; menu data 2
--- 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
 	db  6,  0 ; start coords
 	db 17, 19 ; end coords
 	dw NULL
--- a/mobile/mobile_46.asm
+++ b/mobile/mobile_46.asm
@@ -3955,7 +3955,7 @@
 ; 119cf7
 
 MenuDataHeader_119cf7: ; 119cf7
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 12 ; start coords
 	db 11, 19 ; end coords
 	dw NULL
@@ -3963,7 +3963,7 @@
 ; 119cff
 
 MenuData_119cff: ; 119cff
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 15 ; start coords
 	db 11, 19 ; end coords
 	dw NULL
@@ -4757,7 +4757,7 @@
 ; 11a2d6
 
 MenuDataHeader_11a2d6: ; 11a2d6
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  6, 14 ; start coords
 	db 10, 19 ; end coords
 	dw NULL
@@ -4765,7 +4765,7 @@
 ; 11a2de
 
 MenuDataHeader_11a2de: ; 11a2de
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 14 ; start coords
 	db 11, 19 ; end coords
 	dw NULL
@@ -5329,7 +5329,7 @@
 ; 11a804
 
 MenuDataHeader_11a804: ; 11a804
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  0,  0 ; start coords
 	db  5, 19 ; end coords
 	dw NULL
@@ -6001,7 +6001,7 @@
 ; 11ae38
 
 MenuDataHeader_11ae38: ; 11ae38
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 10, 10 ; start coords
 	db 17, 17 ; end coords
 	dw NULL
@@ -6248,7 +6248,7 @@
 ; 11afe8
 
 MenuDataHeader_11afe8: ; 11afe8
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 12,  9 ; start coords
 	db 17, 19 ; end coords
 	dw NULL
@@ -6266,7 +6266,7 @@
 ; 11b013
 
 MenuDataHeader_11b013: ; 11b013
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  7, 14 ; start coords
 	db 11, 19 ; end coords
 	dw NULL
--- 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
 	db 12,  0 ; start coords
 	db 17, 19 ; end coords
 	dw NULL
--- a/mobile/mobile_5f.asm
+++ b/mobile/mobile_5f.asm
@@ -483,7 +483,7 @@
 ; 17d26a
 
 MenuDataHeader_17d26a: ; 17d26a
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  0,  0 ; start coords
 	db  9, 14 ; end coords
 	dw MenuData2_17d272
@@ -490,7 +490,7 @@
 	db 1 ; default option
 
 MenuData2_17d272: ; 17d272
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 4
 	db "ニュース¯よみこむ@"
 	db "ニュース¯みる@"
@@ -499,7 +499,7 @@
 ; 17d28f
 
 MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db  0,  0 ; start coords
 	db  7, 14 ; end coords
 	dw MenuData2_ChallengeExplanationCancel
@@ -506,7 +506,7 @@
 	db 1 ; default option
 
 MenuData2_ChallengeExplanationCancel: ; 17d297
-	db $a0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
 	db 3
 	db "Challenge@"
 	db "Explanation@"
@@ -1943,7 +1943,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
 	db 00, 12 ; start coords
 	db 06, 19 ; end coords
 
@@ -484,7 +484,7 @@
 ; 0x4a362
 
 DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
-	db $40 ; flags
+	db MENU_BACKUP_TILES ; flags
 	db 07, 14 ; start coords
 	db 11, 19 ; end coords
 	dw MenuData2_0x4a36a
@@ -492,7 +492,7 @@
 ; 0x4a36a
 
 MenuData2_0x4a36a: ; 0x4a36a
-	db $e0 ; flags
+	db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING | STATICMENU_WRAP ; flags
 	db 2 ; items
 	db "はい@"
 	db "いいえ@"