mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Create constants for ScrollingMenu item formats
...I should've done this quite a while ago.
This commit is contained in:
parent
6b37353406
commit
c048b24d25
@ -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
|
||||
|
@ -26,7 +26,7 @@ Structure:
|
||||
.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 @@ 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 `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 @@ db -1 ; cancel
|
||||
...
|
||||
```
|
||||
|
||||
If it's 2:
|
||||
If it's `SCROLLINGMENU_ITEMS_QUANTITY` (2):
|
||||
|
||||
```
|
||||
db entries not including cancel
|
||||
|
@ -263,7 +263,7 @@ Buena_PrizeMenu:
|
||||
.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
|
||||
|
@ -184,7 +184,7 @@ Elevator_MenuHeader:
|
||||
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
|
||||
|
@ -87,8 +87,8 @@ Kurt_SelectApricorn:
|
||||
|
||||
.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
|
||||
|
@ -625,8 +625,8 @@ PCItemsJoypad:
|
||||
|
||||
.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
|
||||
|
@ -600,7 +600,7 @@ MenuHeader_Buy:
|
||||
.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
|
||||
|
@ -1465,7 +1465,7 @@ ItemsPocketMenuHeader:
|
||||
.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 @@ PC_Mart_ItemsPocketMenuHeader:
|
||||
.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 @@ KeyItemsPocketMenuHeader:
|
||||
.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 @@ PC_Mart_KeyItemsPocketMenuHeader:
|
||||
.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 @@ BallsPocketMenuHeader:
|
||||
.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 @@ PC_Mart_BallsPocketMenuHeader:
|
||||
.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
|
||||
|
@ -48,7 +48,7 @@ SwitchItemsInBag:
|
||||
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 @@ SwitchItemsInBag:
|
||||
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 @@ Function249d1:
|
||||
|
||||
.asm_24a25
|
||||
dec [hl]
|
||||
call ItemSwitch_ConvertSpacingToDW
|
||||
call ItemSwitch_ConvertItemFormatToDW
|
||||
push bc
|
||||
ld a, [wSwitchItem]
|
||||
call ItemSwitch_GetNthItem
|
||||
@ -183,7 +183,7 @@ Function249d1:
|
||||
Function24a40:
|
||||
call ItemSwitch_GetNthItem
|
||||
ld de, wd002
|
||||
call ItemSwitch_ConvertSpacingToDW
|
||||
call ItemSwitch_ConvertItemFormatToDW
|
||||
call CopyBytes
|
||||
ret
|
||||
|
||||
@ -192,13 +192,13 @@ Function24a4d:
|
||||
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 @@ ItemSwitch_GetNthItem:
|
||||
|
||||
Function24a6c:
|
||||
push hl
|
||||
call ItemSwitch_ConvertSpacingToDW
|
||||
call ItemSwitch_ConvertItemFormatToDW
|
||||
ld a, d
|
||||
sub e
|
||||
jr nc, .dont_negate
|
||||
@ -224,13 +224,13 @@ Function24a6c:
|
||||
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 @@ ItemSwitch_ConvertSpacingToDW:
|
||||
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
|
||||
|
@ -497,10 +497,10 @@ ScrollingMenu_GetListItemCoordAndFunctionArgs:
|
||||
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
|
||||
|
@ -409,7 +409,7 @@ PopulateDecoCategoryMenu:
|
||||
.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
|
||||
|
@ -2269,9 +2269,9 @@ _ChangeBox_MenuHeader:
|
||||
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
|
||||
|
@ -543,8 +543,8 @@ MailboxPC:
|
||||
|
||||
.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
|
||||
|
@ -585,7 +585,7 @@ MenuHeader_0x48513:
|
||||
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
|
||||
|
@ -883,8 +883,8 @@ MenuHeader_0x8b867:
|
||||
|
||||
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
|
||||
|
2
wram.asm
2
wram.asm
@ -1481,7 +1481,7 @@ NEXTU ; cf92
|
||||
; 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
|
||||
|
Loading…
Reference in New Issue
Block a user