ref: c048b24d255f5f5ac71f5e9d2f4d4864a06edeaf
parent: 6b3735340604670d5fe1bfe4a31e59ad5c7bfb02
author: mid-kid <esteve.varela@gmail.com>
date: Sat Jun 8 22:31:24 EDT 2019
Create constants for ScrollingMenu item formats ...I should've done this quite a while ago.
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -32,6 +32,11 @@
shift_const SCROLLINGMENU_ENABLE_START
shift_const SCROLLINGMENU_ENABLE_SELECT
+; ScrollingMenu items structure format
+ const_def 1
+ const SCROLLINGMENU_ITEMS_NORMAL
+ const SCROLLINGMENU_ITEMS_QUANTITY
+
; MonMenuOptions indexes (see data/mon_menu.asm)
; used by PokemonActionSubmenu (see engine/pokemon/mon_menu.asm)
const_def 1
--- a/docs/menus.md
+++ b/docs/menus.md
@@ -26,7 +26,7 @@
.MenuData:
db 0 ; flags
db 5, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba Items
dba Function1
dba Function2
@@ -66,9 +66,9 @@
There is no register of importance that should be preserved in any of these functions.
-The `; horizontal spacing` item in each `MenuData` is a misnomer. It changes how the `Items` struct looks.
+The `; item format` entry in each `MenuData` changes how the `Items` struct looks.
-If it's 1:
+If it's `SCROLLINGMENU_ITEMS_NORMAL` (1):
```
db entries not including cancel
@@ -78,7 +78,7 @@
...
```
-If it's 2:
+If it's `SCROLLINGMENU_ITEMS_QUANTITY` (2):
```
db entries not including cancel
--- a/engine/events/buena.asm
+++ b/engine/events/buena.asm
@@ -263,7 +263,7 @@
.MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 13 ; rows, columns
- db 1 ; spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba .indices
dba .prizeitem
dba .prizepoints
--- a/engine/events/elevator.asm
+++ b/engine/events/elevator.asm
@@ -184,7 +184,7 @@
Elevator_MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 4, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wCurElevator
dba GetElevatorFloorStrings
dba NULL
--- a/engine/events/kurt.asm
+++ b/engine/events/kurt.asm
@@ -87,8 +87,8 @@
.MenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 7
- db 1
+ db 4, 7 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wBuffer1
dba .Name
dba .Quantity
--- a/engine/events/pokecenter_pc.asm
+++ b/engine/events/pokecenter_pc.asm
@@ -625,8 +625,8 @@
.MenuData:
db SCROLLINGMENU_ENABLE_SELECT | SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 8 ; rows/cols?
- db 2 ; horizontal spacing?
+ db 4, 8 ; rows, columns
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumPCItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
--- a/engine/items/mart.asm
+++ b/engine/items/mart.asm
@@ -600,7 +600,7 @@
.MenuData
db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_FUNCTION3 ; flags
db 4, 8 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wCurMart
dba PlaceMenuItemName
dba .PrintBCDPrices
--- a/engine/items/pack.asm
+++ b/engine/items/pack.asm
@@ -1465,7 +1465,7 @@
.MenuData:
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
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1480,7 +1480,7 @@
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1495,7 +1495,7 @@
.MenuData:
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
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wNumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1510,7 +1510,7 @@
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wNumKeyItems
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1525,7 +1525,7 @@
.MenuData:
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
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
@@ -1540,7 +1540,7 @@
.MenuData:
db STATICMENU_ENABLE_SELECT | STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP ; flags
db 5, 8 ; rows, columns
- db 2 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_QUANTITY ; item format
dbw 0, wNumBalls
dba PlaceMenuItemName
dba PlaceMenuItemQuantity
--- a/engine/items/switch_items.asm
+++ b/engine/items/switch_items.asm
@@ -48,7 +48,7 @@
call ItemSwitch_GetNthItem
dec hl
push hl
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
add hl, bc
ld d, h
ld e, l
@@ -74,7 +74,7 @@
call ItemSwitch_GetNthItem
ld d, h
ld e, l
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
add hl, bc
pop bc
call CopyBytes
@@ -162,7 +162,7 @@
.asm_24a25
dec [hl]
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
push bc
ld a, [wSwitchItem]
call ItemSwitch_GetNthItem
@@ -183,7 +183,7 @@
Function24a40:
call ItemSwitch_GetNthItem
ld de, wd002
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
call CopyBytes
ret
@@ -192,13 +192,13 @@
ld d, h
ld e, l
ld hl, wd002
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
call CopyBytes
ret
ItemSwitch_GetNthItem:
push af
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld hl, wMenuData_ItemsPointerAddr
ld a, [hli]
ld h, [hl]
@@ -210,7 +210,7 @@
Function24a6c:
push hl
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld a, d
sub e
jr nc, .dont_negate
@@ -224,13 +224,13 @@
pop hl
ret
-ItemSwitch_ConvertSpacingToDW:
+ItemSwitch_ConvertItemFormatToDW:
; This function is absolutely idiotic.
push hl
- ld a, [wMenuData_ScrollingMenuSpacing]
+ ld a, [wMenuData_ScrollingMenuItemFormat]
ld c, a
ld b, 0
- ld hl, .spacing_dws
+ ld hl, .format_dws
add hl, bc
add hl, bc
ld c, [hl]
@@ -239,12 +239,14 @@
pop hl
ret
-.spacing_dws
- dw 0, 1, 2
+.format_dws
+ dw 0
+ dw 1
+ dw 2
Function24a97:
push af
- call ItemSwitch_ConvertSpacingToDW
+ call ItemSwitch_ConvertItemFormatToDW
ld a, c
cp 2
jr nz, .not_2
--- a/engine/menus/scrolling_menu.asm
+++ b/engine/menus/scrolling_menu.asm
@@ -497,10 +497,10 @@
ld h, [hl]
ld l, a
inc hl ; items
- ld a, [wMenuData_ScrollingMenuSpacing]
- cp 1
+ ld a, [wMenuData_ScrollingMenuItemFormat]
+ cp SCROLLINGMENU_ITEMS_NORMAL
jr z, .got_spacing
- cp 2
+ cp SCROLLINGMENU_ITEMS_QUANTITY
jr z, .pointless_jump
.pointless_jump
add hl, de
--- a/engine/overworld/decorations.asm
+++ b/engine/overworld/decorations.asm
@@ -409,7 +409,7 @@
.ScrollingMenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
db 8, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wd002 ; text pointer
dba DecorationMenuFunction
dbw 0, 0
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -2269,9 +2269,9 @@
db 1 ; default option
.MenuData
- db MENU_UNUSED_1 | MENU_UNUSED_3 ; flags
- db 4, 0
- db 1
+ db SCROLLINGMENU_CALL_FUNCTION3_NO_SWITCH | SCROLLINGMENU_ENABLE_FUNCTION3 ; flags
+ db 4, 0 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba .boxes
dba .boxnames
dba NULL
--- a/engine/pokemon/mail.asm
+++ b/engine/pokemon/mail.asm
@@ -543,8 +543,8 @@
.TopMenuData:
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
- db 4, 0 ; rows/columns?
- db 1 ; horizontal spacing?
+ db 4, 0 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wMailboxCount ; text pointer
dba MailboxPC_PrintMailAuthor
dba NULL
--- a/mobile/mobile_12.asm
+++ b/mobile/mobile_12.asm
@@ -585,7 +585,7 @@
MenuData_0x4851b:
db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_CALL_FUNCTION1_CANCEL ; flags
db 6, 0 ; rows, columns
- db 1 ; horizontal spacing
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dba .Items
dba Function483e8
dba NULL
--- a/mobile/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
@@ -883,8 +883,8 @@
MenuData_0x8b870:
db SCROLLINGMENU_ENABLE_FUNCTION3 | SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT ; flags
- db 5 ; items
- db 3, 1
+ db 5, 3 ; rows, columns
+ db SCROLLINGMENU_ITEMS_NORMAL ; item format
dbw 0, wd002
dba Function8b880
dba Function8b88c
--- a/wram.asm
+++ b/wram.asm
@@ -1481,7 +1481,7 @@
; Scrolling Menu
wMenuData_ScrollingMenuHeight:: db ; cf92
wMenuData_ScrollingMenuWidth:: db ; cf93
-wMenuData_ScrollingMenuSpacing:: db ; cf94
+wMenuData_ScrollingMenuItemFormat:: db ; cf94
wMenuData_ItemsPointerBank:: db ; cf95
wMenuData_ItemsPointerAddr:: dw ; cf97
wMenuData_ScrollingMenuFunction1:: ds 3 ; cf98