shithub: pokecrystal

Download patch

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