ref: 77ef8404a197d015398674482103afd9651a9f42
parent: efe3462f9af56ce23a1e9c3badd90799204d0725
author: PikalaxALT <PikalaxALT@gmail.com>
date: Tue Dec 15 13:59:49 EST 2015
Menu
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -2871,13 +2871,13 @@
.loop
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
jr c, .pressed_b
and a
ret
.pressed_b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1 ; YES
jr z, .loop
ld hl, PartyMon1Speed
@@ -3698,7 +3698,7 @@
call StdBattleTextBox
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
jr nz, .said_no
call Function3d2f7
@@ -5303,7 +5303,7 @@
.tutorial2
call GetMonFrontpic
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call ExitMenu
call UpdateBattleHUDs
call WaitBGMap
@@ -5343,7 +5343,7 @@
call .GetMenu
jr c, .PressedB
call Function1bee
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1 ; SWITCH
jp z, TryPlayerSwitch
cp $2 ; STATS
@@ -5545,7 +5545,7 @@
call SetPlayerTurn
call SpikesDamage
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
; 3e459
@@ -5575,7 +5575,7 @@
BattleMenu_Run: ; 3e489
call Call_LoadTempTileMapToTileMap
ld a, $3
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, BattleMonSpeed
ld de, EnemyMonSpeed
call TryToRunAwayFromBattle
@@ -5671,9 +5671,9 @@
inc a
.skip_inc
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
ld a, [wNumMoves]
inc a
ld [wcfa3], a
@@ -5726,7 +5726,7 @@
.interpret_joypad
ld a, $1
ld [hBGMapMode], a
- call Function1bd3
+ call ScrollingMenuJoypad
bit D_UP_F, a
jp nz, .pressed_up
bit D_DOWN_F, a
@@ -5738,9 +5738,9 @@
xor a
ld [wMoveSwapBuffer], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld b, a
ld a, [wMoveSelectionMenuType]
dec a
@@ -5763,7 +5763,7 @@
ret nz
ld hl, BattleMonPP
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
ld b, 0
add hl, bc
@@ -5779,7 +5779,7 @@
ld a, [wc6e1]
and a
jr nz, .skip2
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld hl, BattleMonMoves
ld c, a
ld b, 0
@@ -5809,17 +5809,17 @@
; 3e61d
.pressed_up
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
and a
jp nz, .menu_loop
ld a, [wNumMoves]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .menu_loop
; 3e62e
.pressed_down ; 3e62e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [wNumMoves]
rept 2
@@ -5828,7 +5828,7 @@
cp b
jp nz, .menu_loop
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .menu_loop
; 3e643
@@ -5845,7 +5845,7 @@
swap a
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr nz, .not_swapping_disabled_move
ld a, [hl]
@@ -5864,7 +5864,7 @@
ld a, [hl]
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
swap a
add b
ld [hl], a
@@ -5899,7 +5899,7 @@
ld d, h
ld e, l
pop hl
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -5912,7 +5912,7 @@
ret
.start_swap
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMoveSwapBuffer], a
jp MoveSelectionScreen
; 3e6c8
@@ -5934,7 +5934,7 @@
swap a
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr nz, .not_disabled
@@ -5944,11 +5944,11 @@
jr .done
.not_disabled
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
dec [hl]
call SetPlayerTurn
ld hl, BattleMonMoves
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
ld b, 0
add hl, bc
@@ -5961,7 +5961,7 @@
ld [MonType], a
callab GetMaxPPOfMove
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld c, [hl]
inc [hl]
ld b, 0
--- a/battle/menu.asm
+++ b/battle/menu.asm
@@ -3,7 +3,7 @@
call LoadMenuDataHeader
ld a, [wd0d2]
ld [wMenuCursorBuffer], a
- call Function2039
+ call InterpretBattleMenu
ld a, [wMenuCursorBuffer]
ld [wd0d2], a
call ExitMenu
@@ -25,7 +25,7 @@
Function24f19: ; 24f19
ld a, [wd0d2]
ld [wMenuCursorBuffer], a
- call InterpretMenu
+ call _2DMenu
ld a, [wMenuCursorBuffer]
ld [wd0d2], a
call ExitMenu
--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -123,7 +123,7 @@
ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Functione298d
ret
@@ -130,11 +130,11 @@
Functione247d: ; e247d (38:647d)
ld hl, BillsPCDepositMenuDataHeader
call CopyMenuDataHeader
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
call Function1d4b
- call InterpretMenu2
+ call VerticalMenu
jp c, BillsPCDepositFuncCancel
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
and $3
ld e, a
@@ -187,7 +187,7 @@
jr c, BillsPCDepositFuncCancel
call Functione2f5f
jr c, BillsPCDepositFuncCancel
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld de, PCString_ReleasePKMN
call Functione2a6e
@@ -194,7 +194,7 @@
call LoadStandardMenuDataHeader
lb bc, 14, 11
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call ExitMenu
and a
@@ -218,7 +218,7 @@
ld de, PCString_WhatsUp
call Functione2a6e
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
BillsPCDepositFuncCancel: ; e2537 (38:6537)
@@ -388,7 +388,7 @@
ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Functione298d
ret
@@ -395,11 +395,11 @@
BillsPC_Withdraw: ; e2675 (38:6675)
ld hl, .MenuDataHeader
call CopyMenuDataHeader
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
call Function1d4b
- call InterpretMenu2
+ call VerticalMenu
jp c, .cancel
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
and 3
ld e, a
@@ -448,7 +448,7 @@
ret
.release: ; e26d8 (38:66d8)
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
call Functione2f5f
jr c, .FailedRelease
@@ -457,7 +457,7 @@
call LoadStandardMenuDataHeader
lb bc, 14, 11
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call ExitMenu
and a
@@ -481,7 +481,7 @@
ld de, PCString_WhatsUp
call Functione2a6e
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
.cancel: ; e272b (38:672b)
@@ -649,7 +649,7 @@
ld de, PCString_WhatsUp
call Functione2a6e
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Functione298d
ret
; e285d
@@ -657,11 +657,11 @@
Functione285d: ; e285d
ld hl, MenuDataHeader_0xe28c3
call CopyMenuDataHeader
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
call Function1d4b
- call InterpretMenu2
+ call VerticalMenu
jp c, Functione28bd
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
and 3
ld e, a
@@ -1764,11 +1764,11 @@
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
and A_BUTTON | B_BUTTON | D_RIGHT | D_LEFT
- ld [wcf73], a
+ ld [wMenuJoypad], a
jr nz, .pressed_a_b_right_left
ld a, [hl]
and D_DOWN | D_UP
- ld [wcf73], a
+ ld [wMenuJoypad], a
jr nz, .pressed_down_up
jr .pressed_a_b_right_left
@@ -1791,7 +1791,7 @@
.asm_e2fd1
xor a
- ld [wcf73], a
+ ld [wMenuJoypad], a
ret
Functione2fd6: ; e2fd6 (38:6fd6)
@@ -2367,7 +2367,7 @@
lb bc, 8, 9
call TextBox
call HandleScrollingMenu
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .done
call Functione37af
@@ -2549,10 +2549,10 @@
Functione36f9: ; e36f9 (38:76f9)
ld hl, .MenuDataHeader
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .Switch
cp $2
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -19,7 +19,7 @@
ld [wMenuCursorBuffer], a
call .FindCategoriesWithOwnedDecos
call DoNthMenu
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd1ef], a
jr c, .exit_menu
ld a, [MenuSelection]
@@ -401,7 +401,7 @@
xor a
ld [wMenuScrollPosition], a
call HandleScrollingMenu
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp 2
jr z, .no_action_2
call DoDecorationAction2
@@ -1009,7 +1009,7 @@
call ExitMenu
call CopyMenuData2
jr c, .nope
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp 3
jr z, .nope
ld [Buffer2], a
--- a/engine/dummy_game.asm
+++ b/engine/dummy_game.asm
@@ -416,7 +416,7 @@
; e2101
Functione2101: ; e2101
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld l, a
ld h, 0
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -33,9 +33,9 @@
ld hl, .MenuDataHeader
call LoadMenuDataHeader
call WaitBGMap2
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [PlayerGender], a
ld c, 10
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -547,7 +547,7 @@
.pokedex_header
call Function1e35
call MenuBox
- call Function1c89
+ call PlaceVerticalMenuItems
ret
; 5ed9
@@ -783,7 +783,7 @@
NamePlayer: ; 0x6074
callba MovePlayerPicRight
callba ShowPlayerNamingChoices
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
jr z, .NewName
call StorePlayerName
@@ -828,8 +828,8 @@
Function60e9: ; Unreferenced
call LoadMenuDataHeader
- call InterpretMenu2
- ld a, [MenuSelection2]
+ call VerticalMenu
+ ld a, [wMenuCursorY]
dec a
call CopyNameFromMenu
call WriteBackup
--- a/engine/learn.asm
+++ b/engine/learn.asm
@@ -155,8 +155,8 @@
ld [wcfa3], a
ld a, $1
ld [wcfa4], a
- ld [MenuSelection2], a
- ld [wcfaa], a
+ ld [wMenuCursorY], a
+ ld [wMenuCursorX], a
ld a, $3
ld [wcfa8], a
ld a, $20
@@ -165,7 +165,7 @@
ld [wcfa6], a
ld a, $20
ld [wcfa7], a
- call Function1bc9
+ call StaticMenuJoypad
push af
call Call_LoadTempTileMapToTileMap
pop af
@@ -173,7 +173,7 @@
bit 1, a
jr nz, .cancel
push hl
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -1219,7 +1219,7 @@
endr
ld [hl], a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
inc a
ld [wPlayerLinkAction], a
jp Function2888b
@@ -1239,7 +1239,7 @@
ld a, $6
ld [wcfa2], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
ld a, $10
ld [wcfa7], a
ld a, $20
@@ -1264,7 +1264,7 @@
.asm_2885b
bit 6, a
jr z, .asm_28883
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [OTPartyCount]
cp b
@@ -1280,7 +1280,7 @@
pop bc
pop hl
ld a, [PartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jr Function2888b
.asm_28883
@@ -1304,7 +1304,7 @@
ld a, $6
ld [wcfa2], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
ld a, $10
ld [wcfa7], a
ld a, $20
@@ -1328,7 +1328,7 @@
.asm_288d9
bit 7, a
jr z, .asm_288fe
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
jp nz, Function2891c
ld a, $1
@@ -1342,13 +1342,13 @@
pop bc
pop hl
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp Function28803
.asm_288fe
bit 6, a
jr z, Function2891c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [PartyCount]
cp b
@@ -1373,7 +1373,7 @@
Function28926: ; 28926
call LoadTileMapToTempTileMap
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
hlcoord 0, 15
ld b, $1
@@ -1398,14 +1398,14 @@
ld a, $1
ld [wcfa2], a
ld a, $1
- ld [MenuSelection2], a
- ld [wcfaa], a
+ ld [wMenuCursorY], a
+ ld [wMenuCursorX], a
ld a, $20
ld [wcfa7], a
xor a
ld [wcfa5], a
ld [wcfa6], a
- call Function1bd3
+ call ScrollingMenuJoypad
bit 4, a
jr nz, .asm_2898d
bit 1, a
@@ -1412,7 +1412,7 @@
jr z, .asm_289cd
.asm_28983
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Call_LoadTempTileMapToTileMap
jp Function2888b
@@ -1430,14 +1430,14 @@
ld a, $b
ld [wcfa2], a
ld a, $1
- ld [MenuSelection2], a
- ld [wcfaa], a
+ ld [wMenuCursorY], a
+ ld [wMenuCursorX], a
ld a, $20
ld [wcfa7], a
xor a
ld [wcfa5], a
ld [wcfa6], a
- call Function1bd3
+ call ScrollingMenuJoypad
bit 5, a
jp nz, .asm_28946
bit 1, a
@@ -1446,7 +1446,7 @@
.asm_289cd
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $4
ld [wd263], a
callab Function50db9
@@ -1465,7 +1465,7 @@
.asm_289fe
call Function1bee
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
dec a
ld [wd002], a
ld [wPlayerLinkAction], a
@@ -1549,7 +1549,7 @@
Function28ac9: ; 28ac9
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jp nz, Function2891c
call Function1bf7
@@ -1579,12 +1579,12 @@
bit 6, a
jr z, .asm_28b03
ld a, [OTPartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp Function28803
.asm_28b03
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp Function2888b
.asm_28b0b
@@ -1715,10 +1715,10 @@
ld a, $3
ld [wcfa8], a
ld a, $1
- ld [MenuSelection2], a
- ld [wcfaa], a
+ ld [wMenuCursorY], a
+ ld [wMenuCursorX], a
callba Function4d354
- call Function1bd3
+ call ScrollingMenuJoypad
push af
call Call_ExitMenu
call WaitBGMap2
@@ -1725,7 +1725,7 @@
pop af
bit 1, a
jr nz, .asm_28c33
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
jr z, .asm_28c54
--- a/engine/mail.asm
+++ b/engine/mail.asm
@@ -402,10 +402,10 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [OBPals + 8 * 6], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wCurMessageIndex], a
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .exit
call Function4484a
@@ -419,10 +419,10 @@
Function4484a: ; 0x4484a
ld hl, MenuData44964
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
jr c, .exit
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, .JumpTable
rst JumpTable
--- a/engine/main_menu.asm
+++ b/engine/main_menu.asm
@@ -202,7 +202,7 @@
set 5, a
ld [wcfa5], a
call Function1f1a
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_49e07
cp $1
@@ -390,15 +390,15 @@
call PlaceString
call WaitBGMap2
call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
jr .asm_49f5d
.asm_49f55
- call Function1bd3
- ld hl, MenuSelection2
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
@@ -410,7 +410,7 @@
jr .asm_49f97
.asm_49f67
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
cp $1
jp z, Function4a098
@@ -421,7 +421,7 @@
cp $4
jp z, Function4a100
ld a, $1
- call Function1ff8
+ call MenuClickSound
.asm_49f84
pop bc
@@ -434,7 +434,7 @@
ret
.asm_49f97
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
dec a
ld hl, MobileStrings2
@@ -452,7 +452,7 @@
.asm_49fb7
call Function4a071
pop bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hl], b
ld b, $a
ld c, $1
@@ -529,7 +529,7 @@
Function4a098: ; 4a098 (12:6098)
ld a, $2
- call Function1ff8
+ call MenuClickSound
call Function1bee
call WaitBGMap
call LoadStandardMenuDataHeader
@@ -542,13 +542,13 @@
Function4a0b9: ; 4a0b9 (12:60b9)
ld a, $2
- call Function1ff8
+ call MenuClickSound
pop bc
jp Function4a4c4
Function4a0c2: ; 4a0c2 (12:60c2)
ld a, $2
- call Function1ff8
+ call MenuClickSound
ld a, BANK(sPlayerData)
call GetSRAMBank
ld hl, sPlayerData + PlayerName - wPlayerData
@@ -574,7 +574,7 @@
Function4a100: ; 4a100 (12:6100)
ld a, $2
- call Function1ff8
+ call MenuClickSound
call ClearBGPalettes
call Function4a13b
call ClearBGPalettes
@@ -630,7 +630,7 @@
ld b, $4
ld c, $12
call TextBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, Strings_4a23d
call GetNthString
@@ -644,15 +644,15 @@
call PlaceString
callba Function104148
call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
jr asm_4a19d
Function4a195: ; 4a195 (12:6195)
- call Function1bd3
- ld hl, MenuSelection2
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
@@ -663,7 +663,7 @@
jr nz, .asm_4a1ba
jr .asm_4a1bc
.asm_4a1a7
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
cp $1
jp z, Function4a20e
@@ -670,12 +670,12 @@
cp $2
jp z, Function4a221
ld a, $1
- call Function1ff8
+ call MenuClickSound
.asm_4a1ba
pop bc
ret
.asm_4a1bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
dec a
ld hl, Strings_4a23d
@@ -692,7 +692,7 @@
.asm_4a1db
call Function4a373
pop bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hl], b
lb bc, 6, 1
hlcoord 2, 3
@@ -708,7 +708,7 @@
Function4a20e: ; 4a20e (12:620e)
ld a, $1
- call Function1ff8
+ call MenuClickSound
callba Function1719c8
call ClearBGPalettes
call DelayFrame
@@ -716,12 +716,12 @@
Function4a221: ; 4a221 (12:6221)
ld a, $1
- call Function1ff8
+ call MenuClickSound
call Function4a28a
jr c, Function4a239
call Function4a373
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jr .asm_4a235
.asm_4a235
pop bc
@@ -767,13 +767,13 @@
call PlaceString
callba Function104148
call Function4a118
- call Function1bd3
+ call ScrollingMenuJoypad
push af
call PlayClickSFX
pop af
bit 1, a
jr nz, .asm_4a33b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_4a2f0
cp $3
@@ -796,10 +796,10 @@
callba Function104148
ld hl, MenuDataHeader_0x4a362
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
bit 1, a
jr nz, .asm_4a338
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_4a338
ld a, $5
@@ -1073,15 +1073,15 @@
call PlaceString
call WaitBGMap2
call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
jr asm_4a54d
Function4a545: ; 4a545 (12:6545)
- call Function1bd3
- ld hl, MenuSelection2
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
@@ -1092,7 +1092,7 @@
jr nz, .asm_4a574
jr .asm_4a57e
.asm_4a557
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
cp $1
jp z, Function4a6ab
@@ -1103,7 +1103,7 @@
cp $4
jp z, Function4a6ab
ld a, $1
- call Function1ff8
+ call MenuClickSound
.asm_4a574
pop bc
call ClearBGPalettes
@@ -1110,7 +1110,7 @@
call ClearTileMap
jp Function49f0a
.asm_4a57e
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
dec a
add a
@@ -1138,7 +1138,7 @@
Function4a5b0: ; 4a5b0 (12:65b0)
call Function4a680
pop bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hl], b
ld b, $a
ld c, $1
@@ -1206,7 +1206,7 @@
Function4a6ab: ; 4a6ab (12:66ab)
ld a, $2
- call Function1ff8
+ call MenuClickSound
call ClearBGPalettes
ld b, SCGB_08
call GetSGBLayout
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -185,9 +185,9 @@
.TopMenu: ; 15b6e
ld hl, MenuDataHeader_BuySell
call CopyMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
jr c, .quit
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .buy
cp $2
@@ -481,10 +481,10 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wd045 + 1], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd045], a
call SpeechTextBox
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp B_BUTTON
jr z, .set_carry
cp A_BUTTON
--- a/engine/menu.asm
+++ b/engine/menu.asm
@@ -1,54 +1,57 @@
-Function2400e:: ; 2400e
+_2DMenu_:: ; 2400e
ld hl, CopyMenuData2
- ld a, [wcf94]
+ ld a, [wMenuData2_2DMenuItemStringsBank]
rst FarCall
- call Function24085
+
+ call Draw2DMenu
call UpdateSprites
call ApplyTilemap
- call Function2408f
+ call Get2DMenuSelection
ret
; 24022
-Function24022:: ; 24022
+_InterpretBattleMenu:: ; 24022
ld hl, CopyMenuData2
- ld a, [wcf94]
+ ld a, [wMenuData2_2DMenuItemStringsBank]
rst FarCall
- call Function24085
+
+ call Draw2DMenu
callba MobileTextBorder
call UpdateSprites
call ApplyTilemap
- call Function2408f
+ call Get2DMenuSelection
ret
; 2403c
-Function2403c:: ; 2403c
+_InterpretMobileMenu:: ; 2403c
ld hl, CopyMenuData2
- ld a, [wcf94]
+ ld a, [wMenuData2_2DMenuItemStringsBank]
rst FarCall
- call Function24085
+
+ call Draw2DMenu
callba MobileTextBorder
call UpdateSprites
call ApplyTilemap
- call Function2411a
- ld hl, wcfa5
+ call Init2DMenuCursorPosition
+ ld hl, w2DMenuFlags1
set 7, [hl]
-.asm_2405a
+.loop
call DelayFrame
callba Function10032e
ld a, [wcd2b]
and a
- jr nz, .asm_24076
- call Function241ba
- ld a, [wcfa8]
+ jr nz, .quit
+ call MobileMenuJoypad
+ ld a, [w2DMenuFlags4]
and c
- jr z, .asm_2405a
- call Function24098
+ jr z, .loop
+ call Mobile_GetMenuSelection
ret
-.asm_24076
- ld a, [wcfa4]
+.quit
+ ld a, [w2DMenuNumCols]
ld c, a
- ld a, [wcfa3]
+ ld a, [w2DMenuNumRows]
call SimpleMultiply
ld [wMenuCursorBuffer], a
and a
@@ -57,64 +60,63 @@
-Function24085: ; 24085
+Draw2DMenu: ; 24085
xor a
ld [hBGMapMode], a
call MenuBox
- call Function240db
+ call Place2DMenuItemStrings
ret
; 2408f
-Function2408f: ; 2408f
- call Function2411a
- call Function1bc9
- call Function1ff8
-
-Function24098: ; 24098
+Get2DMenuSelection: ; 2408f
+ call Init2DMenuCursorPosition
+ call StaticMenuJoypad
+ call MenuClickSound
+Mobile_GetMenuSelection: ; 24098
ld a, [wMenuData2Flags]
bit 1, a
- jr z, .asm_240a6
- call Function1bdd
- bit 2, a
- jr nz, .asm_240c9
+ jr z, .skip
+ call GetMenuJoypad
+ bit SELECT_F, a
+ jr nz, .quit1
-.asm_240a6
+.skip
ld a, [wMenuData2Flags]
bit 0, a
- jr nz, .asm_240b4
- call Function1bdd
- bit 1, a
- jr nz, .asm_240cb
+ jr nz, .skip2
+ call GetMenuJoypad
+ bit B_BUTTON_F, a
+ jr nz, .quit2
-.asm_240b4
- ld a, [wcfa4]
+.skip2
+ ld a, [w2DMenuNumCols]
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call SimpleMultiply
ld c, a
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
add c
ld [wMenuCursorBuffer], a
and a
ret
-.asm_240c9
+.quit1
scf
ret
-.asm_240cb
+.quit2
scf
ret
; 240cd
-Function240cd: ; 240cd
+GetMenuNumberOfColumns: ; 240cd
ld a, [wMenuData2Items]
and $f
ret
; 240d3
-Function240d3: ; 240d3
+GetMenuNumberOfRows: ; 240d3
ld a, [wMenuData2Items]
swap a
and $f
@@ -121,110 +123,110 @@
ret
; 240db
-Function240db: ; 240db
- ld hl, wcf95
+Place2DMenuItemStrings: ; 240db
+ ld hl, wMenuData2_2DMenuItemStringsAddr
ld e, [hl]
inc hl
ld d, [hl]
call GetMenuTextStartCoord
call Coord2Tile
- call Function240d3
+ call GetMenuNumberOfRows
ld b, a
-.asm_240eb
+.row
push bc
push hl
- call Function240cd
+ call GetMenuNumberOfColumns
ld c, a
-.asm_240f1
+.col
push bc
- ld a, [wcf94]
- call Function201c
+ ld a, [wMenuData2_2DMenuItemStringsBank]
+ call Place2DMenuItemName
inc de
- ld a, [wcf93]
+ ld a, [wMenuData2Spacing]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
pop bc
dec c
- jr nz, .asm_240f1
+ jr nz, .col
pop hl
- ld bc, $28
+ ld bc, 2 * SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_240eb
- ld hl, wcf98
+ jr nz, .row
+ ld hl, wMenuData2_2DMenuFunctionAddr
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
- ld a, [wcf97]
+ ld a, [wMenuData2_2DMenuFunctionBank]
rst FarCall
ret
; 2411a
-Function2411a: ; 2411a (9:411a)
+Init2DMenuCursorPosition: ; 2411a (9:411a)
call GetMenuTextStartCoord
ld a, b
- ld [wcfa1], a
+ ld [w2DMenuCursorInitY], a
dec c
ld a, c
- ld [wcfa2], a
- call Function240d3
- ld [wcfa3], a
- call Function240cd
- ld [wcfa4], a
- call Function24179
- call Function2418a
- call Function24193
- ld a, [wcfa4]
+ ld [w2DMenuCursorInitX], a
+ call GetMenuNumberOfRows
+ ld [w2DMenuNumRows], a
+ call GetMenuNumberOfColumns
+ ld [w2DMenuNumCols], a
+ call .InitFlags_a
+ call .InitFlags_b
+ call .InitFlags_c
+ ld a, [w2DMenuNumCols]
ld e, a
ld a, [wMenuCursorBuffer]
ld b, a
xor a
- ld d, $0
-.asm_24146
+ ld d, 0
+.loop
inc d
add e
cp b
- jr c, .asm_24146
+ jr c, .loop
sub e
ld c, a
ld a, b
sub c
and a
- jr z, .asm_24157
+ jr z, .reset1
cp e
- jr z, .asm_24159
- jr c, .asm_24159
-.asm_24157
- ld a, $1
-.asm_24159
- ld [wcfaa], a
- ld a, [wcfa3]
+ jr z, .okay1
+ jr c, .okay1
+.reset1
+ ld a, 1
+.okay1
+ ld [wMenuCursorX], a
+ ld a, [w2DMenuNumRows]
ld e, a
ld a, d
and a
- jr z, .asm_24169
+ jr z, .reset2
cp e
- jr z, .asm_2416b
- jr c, .asm_2416b
-.asm_24169
- ld a, $1
-.asm_2416b
- ld [MenuSelection2], a
+ jr z, .okay2
+ jr c, .okay2
+.reset2
+ ld a, 1
+.okay2
+ ld [wMenuCursorY], a
xor a
- ld [wcfab], a
- ld [wcfac], a
- ld [wcfad], a
+ ld [wCursorOffCharacter], a
+ ld [wCursorCurrentTile], a
+ ld [wCursorCurrentTile + 1], a
ret
; 24179
-Function24179: ; 24179
+.InitFlags_a: ; 24179
xor a
- ld hl, wcfa5
+ ld hl, w2DMenuFlags1
ld [hli], a
ld [hld], a
ld a, [wMenuData2Flags]
@@ -235,58 +237,55 @@
ret
; 2418a
-Function2418a: ; 2418a
- ld a, [wcf93]
- or $20
- ld [wcfa7], a
+.InitFlags_b: ; 2418a
+ ld a, [wMenuData2Spacing]
+ or %00100000
+ ld [w2DMenuFlags3], a
ret
; 24193
-Function24193: ; 24193
+.InitFlags_c: ; 24193
ld hl, wMenuData2Flags
- ld a, $1
+ ld a, %001
bit 0, [hl]
- jr nz, .asm_2419e
- or $2
-
-.asm_2419e
+ jr nz, .skip
+ or %010
+.skip
bit 1, [hl]
- jr z, .asm_241a4
- or $4
-
-.asm_241a4
- ld [wcfa8], a
+ jr z, .skip2
+ or %100
+.skip2
+ ld [w2DMenuFlags4], a
ret
; 241a8
-Function241a8:: ; 241a8
- call Function24329
-Function241ab:: ; 241ab
- ld hl, wcfa6
+_StaticMenuJoypad:: ; 241a8
+ call Place2DMenuCursor
+_ScrollingMenuJoypad:: ; 241ab
+ ld hl, w2DMenuFlags2
res 7, [hl]
ld a, [hBGMapMode]
push af
- call Function24216
+ call MenuJoypadLoop
pop af
ld [hBGMapMode], a
ret
; 241ba
-Function241ba: ; 241ba
- ld hl, wcfa6
+MobileMenuJoypad: ; 241ba
+ ld hl, w2DMenuFlags2
res 7, [hl]
ld a, [hBGMapMode]
push af
- call Function2431a
- call Function24249
- jr nc, .asm_241cd
- call Function24270
-
-.asm_241cd
+ call Move2DMenuCursor
+ call Do2DMenuRTCJoypad
+ jr nc, .skip_joypad
+ call _2DMenuInterpretJoypad
+.skip_joypad
pop af
ld [hBGMapMode], a
- call Function1bdd
+ call GetMenuJoypad
ld c, a
ret
; 241d5
@@ -293,31 +292,30 @@
Function241d5: ; 241d5
- call Function24329
+; Unreferenced
+ call Place2DMenuCursor
.loop
- call Function2431a
+ call Move2DMenuCursor
call Function10402d ; BUG: This function is in another bank.
; Pointer in current bank (9) is bogus.
- call Function241fa
+ call .loop2
jr nc, .done
- call Function24270
+ call _2DMenuInterpretJoypad
jr c, .done
- ld a, [wcfa5]
+ ld a, [w2DMenuFlags1]
bit 7, a
jr nz, .done
- call Function1bdd
+ call GetMenuJoypad
ld c, a
- ld a, [wcfa8]
+ ld a, [w2DMenuFlags4]
and c
jr z, .loop
.done
ret
-; 241fa
-Function241fa: ; 241fa
-.loop
- call Function24259
+.loop2
+ call Menu_WasButtonPressed
ret c
ld c, 1
ld b, 3
@@ -326,36 +324,36 @@
ret c
callba Function100337
ret c
- ld a, [wcfa5]
+ ld a, [w2DMenuFlags1]
bit 7, a
- jr z, .loop
+ jr z, .loop2
and a
ret
; 24216
-Function24216: ; 24216
-.asm_24216
- call Function2431a
- call Function24238
- call Function24249
- jr nc, .asm_24237
- call Function24270
- jr c, .asm_24237
- ld a, [wcfa5]
+MenuJoypadLoop: ; 24216
+.loop
+ call Move2DMenuCursor
+ call .BGMap_OAM
+ call Do2DMenuRTCJoypad
+ jr nc, .done
+ call _2DMenuInterpretJoypad
+ jr c, .done
+ ld a, [w2DMenuFlags1]
bit 7, a
- jr nz, .asm_24237
- call Function1bdd
+ jr nz, .done
+ call GetMenuJoypad
ld b, a
- ld a, [wcfa8]
+ ld a, [w2DMenuFlags4]
and b
- jr z, .asm_24216
+ jr z, .loop
-.asm_24237
+.done
ret
; 24238
-Function24238: ; 24238
+.BGMap_OAM: ; 24238
ld a, [hOAMUpdate]
push af
ld a, $1
@@ -368,27 +366,27 @@
ret
; 24249
-Function24249: ; 24249
-.asm_24249
+Do2DMenuRTCJoypad: ; 24249
+.loopRTC
call RTC
- call Function24259
+ call Menu_WasButtonPressed
ret c
- ld a, [wcfa5]
+ ld a, [w2DMenuFlags1]
bit 7, a
- jr z, .asm_24249
+ jr z, .loopRTC
and a
ret
; 24259
-Function24259: ; 24259
- ld a, [wcfa5]
+Menu_WasButtonPressed: ; 24259
+ ld a, [w2DMenuFlags1]
bit 6, a
- jr z, .asm_24266
+ jr z, .skip_to_joypad
callab PlaySpriteAnimationsAndDelayFrame
-.asm_24266
+.skip_to_joypad
call JoyTextDelay
- call Function1bdd
+ call GetMenuJoypad
and a
ret z
scf
@@ -395,193 +393,452 @@
ret
; 24270
-Function24270: ; 24270
- call Function1bdd
- bit 0, a
- jp nz, Function24318
- bit 1, a
- jp nz, Function24318
- bit 2, a
- jp nz, Function24318
- bit 3, a
- jp nz, Function24318
- bit 4, a
- jr nz, .asm_242fa
- bit 5, a
- jr nz, .asm_242dc
- bit 6, a
- jr nz, .asm_242be
- bit 7, a
- jr nz, .asm_242a0
+_2DMenuInterpretJoypad: ; 24270
+ call GetMenuJoypad
+ bit A_BUTTON_F, a
+ jp nz, .a_b_start_select
+ bit B_BUTTON_F, a
+ jp nz, .a_b_start_select
+ bit SELECT_F, a
+ jp nz, .a_b_start_select
+ bit START_F, a
+ jp nz, .a_b_start_select
+ bit D_RIGHT_F, a
+ jr nz, .d_right
+ bit D_LEFT_F, a
+ jr nz, .d_left
+ bit D_UP_F, a
+ jr nz, .d_up
+ bit D_DOWN_F, a
+ jr nz, .d_down
and a
ret
-.asm_24299: ; 24299
- ld hl, wcfa6
+.set_bit_7: ; 24299
+ ld hl, w2DMenuFlags2
set 7, [hl]
scf
ret
-.asm_242a0
- ld hl, MenuSelection2
- ld a, [wcfa3]
+.d_down
+ ld hl, wMenuCursorY
+ ld a, [w2DMenuNumRows]
cp [hl]
- jr z, .asm_242ac
+ jr z, .check_wrap_around_down
inc [hl]
xor a
ret
-.asm_242ac
- ld a, [wcfa5]
+.check_wrap_around_down
+ ld a, [w2DMenuFlags1]
bit 5, a
- jr nz, .asm_242ba
+ jr nz, .wrap_around_down
bit 3, a
- jp nz, .asm_24299
+ jp nz, .set_bit_7
xor a
ret
-.asm_242ba
+.wrap_around_down
ld [hl], $1
xor a
ret
-.asm_242be
- ld hl, MenuSelection2
+.d_up
+ ld hl, wMenuCursorY
ld a, [hl]
dec a
- jr z, .asm_242c8
+ jr z, .check_wrap_around_up
ld [hl], a
xor a
ret
-.asm_242c8
- ld a, [wcfa5]
+.check_wrap_around_up
+ ld a, [w2DMenuFlags1]
bit 5, a
- jr nz, .asm_242d6
+ jr nz, .wrap_around_up
bit 2, a
- jp nz, .asm_24299
+ jp nz, .set_bit_7
xor a
ret
-.asm_242d6
- ld a, [wcfa3]
+.wrap_around_up
+ ld a, [w2DMenuNumRows]
ld [hl], a
xor a
ret
-.asm_242dc
- ld hl, wcfaa
+.d_left
+ ld hl, wMenuCursorX
ld a, [hl]
dec a
- jr z, .asm_242e6
+ jr z, .check_wrap_around_left
ld [hl], a
xor a
ret
-.asm_242e6
- ld a, [wcfa5]
+.check_wrap_around_left
+ ld a, [w2DMenuFlags1]
bit 4, a
- jr nz, .asm_242f4
+ jr nz, .wrap_around_left
bit 1, a
- jp nz, .asm_24299
+ jp nz, .set_bit_7
xor a
ret
-.asm_242f4
- ld a, [wcfa4]
+.wrap_around_left
+ ld a, [w2DMenuNumCols]
ld [hl], a
xor a
ret
-.asm_242fa
- ld hl, wcfaa
- ld a, [wcfa4]
+.d_right
+ ld hl, wMenuCursorX
+ ld a, [w2DMenuNumCols]
cp [hl]
- jr z, .asm_24306
+ jr z, .check_wrap_around_right
inc [hl]
xor a
ret
-.asm_24306
- ld a, [wcfa5]
+.check_wrap_around_right
+ ld a, [w2DMenuFlags1]
bit 4, a
- jr nz, .asm_24314
+ jr nz, .wrap_around_right
bit 0, a
- jp nz, .asm_24299
+ jp nz, .set_bit_7
xor a
ret
-.asm_24314
+.wrap_around_right
ld [hl], $1
xor a
ret
; 24318
-Function24318: ; 24318
+.a_b_start_select: ; 24318
xor a
ret
; 2431a
-Function2431a: ; 2431a
- ld hl, wcfac
+Move2DMenuCursor: ; 2431a
+ ld hl, wCursorCurrentTile
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hl]
- cp $ed
- jr nz, Function24329
- ld a, [wcfab]
+ cp "▶"
+ jr nz, Place2DMenuCursor
+ ld a, [wCursorOffCharacter]
ld [hl], a
-
-Function24329: ; 24329
- ld a, [wcfa1]
+Place2DMenuCursor: ; 24329
+ ld a, [w2DMenuCursorInitY]
ld b, a
- ld a, [wcfa2]
+ ld a, [w2DMenuCursorInitX]
ld c, a
call Coord2Tile
- ld a, [wcfa7]
+ ld a, [w2DMenuFlags3]
swap a
and $f
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
xor a
dec b
- jr z, .asm_24348
-.asm_24344
+ jr z, .got_row
+.row_loop
add c
dec b
- jr nz, .asm_24344
+ jr nz, .row_loop
-.asm_24348
- ld c, $14
+.got_row
+ ld c, SCREEN_WIDTH
call AddNTimes
- ld a, [wcfa7]
+ ld a, [w2DMenuFlags3]
and $f
ld c, a
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
ld b, a
xor a
dec b
- jr z, .asm_2435f
-.asm_2435b
+ jr z, .got_col
+.col_loop
add c
dec b
- jr nz, .asm_2435b
+ jr nz, .col_loop
-.asm_2435f
+.got_col
ld c, a
add hl, bc
ld a, [hl]
- cp $ed
- jr z, .asm_2436b
- ld [wcfab], a
- ld [hl], $ed
+ cp "▶"
+ jr z, .cursor_on
+ ld [wCursorOffCharacter], a
+ ld [hl], "▶"
-.asm_2436b
+.cursor_on
ld a, l
- ld [wcfac], a
+ ld [wCursorCurrentTile], a
ld a, h
- ld [wcfad], a
+ ld [wCursorCurrentTile + 1], a
ret
; 24374
+
+_BackUpTiles:: ; 24374
+; Push the window
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+
+ ld hl, wWindowStackPointer
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+
+ ld b, $10
+ ld hl, wMenuFlags
+.loop
+ ld a, [hli]
+ ld [de], a
+ dec de
+ dec b
+ jr nz, .loop
+
+; If bit 6 or 7 of the menu flags is set, set bit 0 of the address
+; at 7:[wWindowStackPointer], and draw the menu using the coordinates from the header.
+; Otherwise, reset bit 0 of 7:[wWindowStackPointer].
+ ld a, [wMenuFlags]
+ bit 6, a
+ jr nz, .bit_6
+ bit 7, a
+ jr z, .not_bit_7
+
+.bit_6
+ ld hl, wWindowStackPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ set 0, [hl]
+ call MenuBoxCoord2Tile
+ call .copy
+ call MenuBoxCoord2Attr
+ call .copy
+ jr .done
+
+.not_bit_7
+ pop hl ; last-pushed register was de
+ push hl
+ ld a, [hld]
+ ld l, [hl]
+ ld h, a
+ res 0, [hl]
+
+.done
+ pop hl
+ call .ret ; empty function
+ ld a, h
+ ld [de], a
+ dec de
+ ld a, l
+ ld [de], a
+ dec de
+ ld hl, wWindowStackPointer
+ ld [hl], e
+ inc hl
+ ld [hl], d
+
+ pop af
+ ld [rSVBK], a
+ ld hl, wWindowStackSize
+ inc [hl]
+ ret
+; 243cd
+
+.copy: ; 243cd
+ call GetMenuBoxDims
+ inc b
+ inc c
+ call .ret ; empty function
+
+.row
+ push bc
+ push hl
+
+.col
+ ld a, [hli]
+ ld [de], a
+ dec de
+ dec c
+ jr nz, .col
+
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+
+ ret
+; 243e7
+
+.ret: ; 243e7
+ ret
+; 243e8
+
+_ExitMenu:: ; 243e8
+ xor a
+ ld [hBGMapMode], a
+
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+
+ call GetWindowStackTop
+ ld a, l
+ or h
+ jp z, Error_Cant_ExitMenu
+ ld a, l
+ ld [wWindowStackPointer], a
+ ld a, h
+ ld [wWindowStackPointer + 1], a
+ call PopWindow
+ ld a, [wMenuFlags]
+ bit 0, a
+ jr z, .next
+ ld d, h
+ ld e, l
+ call RestoreTileBackup
+
+.next
+ call GetWindowStackTop
+ ld a, h
+ or l
+ jr z, .done
+ call PopWindow
+
+.done
+ pop af
+ ld [rSVBK], a
+ ld hl, wWindowStackSize
+ dec [hl]
+ ret
+; 24423
+
+Function24423: ; 24423
+ ld a, [VramState]
+ bit 0, a
+ ret z
+ xor a
+ call GetSRAMBank
+ hlcoord 0, 0
+ ld de, sScratch
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ call CloseSRAM
+ call OverworldTextModeSwitch
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+.asm_2444c
+ ld a, [hl]
+ cp $61
+ jr c, .asm_24452
+ ld [de], a
+
+.asm_24452
+ inc hl
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_2444c
+ call CloseSRAM
+ ret
+; 2445d
+
+Error_Cant_ExitMenu: ; 2445d
+ ld hl, .Text_NoWindowsAvailableForPopping
+ call PrintText
+ call WaitBGMap
+.InfiniteLoop
+ jr .InfiniteLoop
+; 24468
+
+.Text_NoWindowsAvailableForPopping: ; 24468
+ text_jump UnknownText_0x1c46b7
+ db "@"
+; 2446d
+
+_InitVerticalMenuCursor:: ; 2446d
+ ld a, [wMenuData2Flags]
+ ld b, a
+ ld hl, w2DMenuCursorInitY
+ ld a, [wMenuBorderTopCoord]
+ inc a
+ bit 6, b
+ jr nz, .skip_offset
+ inc a
+.skip_offset
+ ld [hli], a
+; w2DMenuCursorInitX
+ ld a, [wMenuBorderLeftCoord]
+ inc a
+ ld [hli], a
+; w2DMenuNumRows
+ ld a, [wMenuData2Items]
+ ld [hli], a
+; w2DMenuNumCols
+ ld a, 1
+ ld [hli], a
+; w2DMenuFlags1
+ ld [hl], $0
+ bit 5, b
+ jr z, .skip_bit_5
+ set 5, [hl]
+.skip_bit_5
+ ld a, [wMenuFlags]
+ bit 4, a
+ jr z, .skip_bit_6
+ set 6, [hl]
+.skip_bit_6
+ inc hl
+; w2DMenuFlags2
+ xor a
+ ld [hli], a
+; w2DMenuFlags3
+ ld a, %00100000
+ ld [hli], a
+; w2DMenuFlags4
+ ld a, %001
+ bit 0, b
+ jr nz, .skip_bit_1
+ add %010
+.skip_bit_1
+ ld [hli], a
+; wMenuCursorY
+ ld a, [wMenuCursorBuffer]
+ and a
+ jr z, .load_at_the_top
+ ld c, a
+ ld a, [wMenuData2Items]
+ cp c
+ jr nc, .load_position
+.load_at_the_top
+ ld c, 1
+.load_position
+ ld [hl], c
+ inc hl
+; wMenuCursorX
+ ld a, 1
+ ld [hli], a
+; wCursorOffCharacter, wCursorCurrentTile
+ xor a
+rept 3
+ ld [hli], a
+endr
+ ret
+; 244c3
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -363,7 +363,7 @@
FreezeMonIcons: ; 8ea4a
ld hl, wSpriteAnimationStructs
ld e, PARTY_LENGTH
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld d, a
.loop
ld a, [hl]
--- a/engine/mon_menu.asm
+++ b/engine/mon_menu.asm
@@ -85,10 +85,10 @@
ld [wMenuData2Flags], a
ld a, [Buffer1] ; items
ld [wMenuData2Items], a
- call Function1c10
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 6, [hl]
- call Function1bc9
+ call StaticMenuJoypad
ld de, SFX_READ_TEXT_2
call PlaySFX
ld a, [hJoyPressed]
@@ -103,7 +103,7 @@
ret
.select
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -301,16 +301,16 @@
ld [hBGMapMode], a
call MenuBox
call UpdateSprites
- call Function1c89
+ call PlaceVerticalMenuItems
call WaitBGMap
call CopyMenuData2
ld a, [wMenuData2Flags]
bit 7, a
jr z, .set_carry
- call Function1c10
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 6, [hl]
- call Function1bc9
+ call StaticMenuJoypad
ld de, SFX_READ_TEXT_2
call PlaySFX
ld a, [hJoyPressed]
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -72,7 +72,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -100,7 +100,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -140,11 +140,11 @@
.load_jump
push de
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
pop hl
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Pack_GetJumptablePointer
jp [hl]
@@ -233,7 +233,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -302,11 +302,11 @@
.build_menu
push de
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
pop hl
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Pack_GetJumptablePointer
jp [hl]
@@ -737,7 +737,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -765,7 +765,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -816,7 +816,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -841,11 +841,11 @@
.proceed
push de
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
pop hl
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Pack_GetJumptablePointer
jp [hl]
@@ -1021,7 +1021,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wItemsPocketCursor], a
ret
@@ -1037,7 +1037,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wKeyItemsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wKeyItemsPocketCursor], a
ret
@@ -1062,7 +1062,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wBallsPocketScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wBallsPocketCursor], a
ret
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -696,7 +696,7 @@
ld a, $1
.done
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, A_BUTTON | B_BUTTON
ld [wcfa8], a
ret
@@ -718,7 +718,7 @@
.skip
ld a, $1
.done
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, A_BUTTON | B_BUTTON
ld [wcfa8], a
ret
@@ -738,12 +738,12 @@
PartyMenuSelect: ; 0x50457
; sets carry if exitted menu.
- call Function1bc9
+ call StaticMenuJoypad
call Function1bee
ld a, [PartyCount]
inc a
ld b, a
- ld a, [MenuSelection2] ; menu selection?
+ ld a, [wMenuCursorY] ; menu selection?
cp b
jr z, .exitmenu ; CANCEL
ld [wPartyMenuCursor], a
@@ -751,7 +751,7 @@
ld b, a
bit 1, b
jr nz, .exitmenu ; B button?
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
ld c, a
--- a/engine/pokecenter_pc.asm
+++ b/engine/pokecenter_pc.asm
@@ -594,7 +594,7 @@
call HandleScrollingMenu
ld a, [wMenuScrollPosition]
ld [wd0dd], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd0d7], a
pop af
ld [wSpriteUpdatesEnabled], a
@@ -601,7 +601,7 @@
ld a, [wd0e3]
and a
jr nz, .asm_159d8
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_15a06
cp $1
@@ -611,7 +611,7 @@
jr .asm_159f8
.asm_159d8
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_159e9
cp $1
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -20,7 +20,7 @@
ld a, [wJumptableIndex]
ld e, a
ld d, 0
- ld hl, Jumptable_84031
+ ld hl, .Jumptable
rept 2
add hl, de
endr
@@ -31,27 +31,28 @@
; 84031
-Jumptable_84031: ; 84031 (21:4031)
- dw Function84077
- dw Function84143
- dw Function84120
- dw Function84099
- dw Function84180
- dw Function8412e
- dw Function840c5
- dw Function84180
- dw Function84120
- dw Function840de
- dw Function84180
- dw Function84120
- dw Function841a1
- dw Function84063
- dw Function8406d
- dw Function84120
- dw Function84103
- dw Function84071
- dw Function841b0
- dw Function841b3
+.Jumptable: ; 84031 (21:4031)
+ jumptable_start
+ jumptable Function84077
+ jumptable Function84143
+ jumptable Function84120
+ jumptable Function84099
+ jumptable Function84180
+ jumptable Function8412e
+ jumptable Function840c5
+ jumptable Function84180
+ jumptable Function84120
+ jumptable Function840de
+ jumptable Function84180
+ jumptable Function84120
+ jumptable Function841a1
+ jumptable Function84063
+ jumptable Function8406d
+ jumptable Function84120
+ jumptable Function84103
+ jumptable Function84071
+ jumptable Function841b0
+ jumptable Function841b3
Function84059: ; 84059 (21:4059)
@@ -427,12 +428,12 @@
; 842db
-Function842db:: ; 842db
+_PrinterReceive:: ; 842db
ld a, [wc2d5]
add a
ld e, a
ld d, 0
- ld hl, Jumptable_842ea
+ ld hl, .Jumptable
add hl, de
ld a, [hli]
ld h, [hl]
@@ -441,39 +442,40 @@
; 842ea
-Jumptable_842ea: ; 842ea (21:42ea)
- dw Function8432f
- dw Function84330
- dw Function84339
- dw Function84343
- dw Function8434d
- dw Function84357
- dw Function84361
- dw Function8438b
- dw Function84395
- dw Function8439f
- dw Function843a8
- dw Function843b6
- dw Function84330
- dw Function843c0
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843c0
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843e6
- dw Function84330
- dw Function843d2
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843d2
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843b6
+.Jumptable: ; 842ea (21:42ea)
+ jumptable_start
+ jumptable Function8432f
+ jumptable Function84330
+ jumptable Function84339
+ jumptable Function84343
+ jumptable Function8434d
+ jumptable Function84357
+ jumptable Function84361
+ jumptable Function8438b
+ jumptable Function84395
+ jumptable Function8439f
+ jumptable Function843a8
+ jumptable Function843b6
+ jumptable Function84330
+ jumptable Function843c0
+ jumptable Function843c9
+ jumptable Function843c9
+ jumptable Function843c9
+ jumptable Function843c0
+ jumptable Function843c9
+ jumptable Function8439f
+ jumptable Function843a8
+ jumptable Function843e6
+ jumptable Function84330
+ jumptable Function843d2
+ jumptable Function843c9
+ jumptable Function843c9
+ jumptable Function843c9
+ jumptable Function843d2
+ jumptable Function843c9
+ jumptable Function8439f
+ jumptable Function843a8
+ jumptable Function843b6
Function8432a: ; 8432a (21:432a)
--- /dev/null
+++ b/engine/rtc.asm
@@ -1,0 +1,210 @@
+StopRTC: ; Unreferenced???
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+ call LatchClock
+ ld a, RTC_DH
+ ld [MBC3SRamBank], a
+ ld a, [MBC3RTC]
+ set 6, a ; halt
+ ld [MBC3RTC], a
+ call CloseSRAM
+ ret
+; 14019
+
+StartRTC: ; 14019
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+ call LatchClock
+ ld a, RTC_DH
+ ld [MBC3SRamBank], a
+ ld a, [MBC3RTC]
+ res 6, a ; halt
+ ld [MBC3RTC], a
+ call CloseSRAM
+ ret
+; 14032
+
+GetTimeOfDay:: ; 14032
+; get time of day based on the current hour
+ ld a, [hHours] ; hour
+ ld hl, TimesOfDay
+
+.check
+; if we're within the given time period,
+; get the corresponding time of day
+ cp [hl]
+ jr c, .match
+; else, get the next entry
+rept 2
+ inc hl
+endr
+; try again
+ jr .check
+
+.match
+; get time of day
+ inc hl
+ ld a, [hl]
+ ld [TimeOfDay], a
+ ret
+; 14044
+
+TimesOfDay: ; 14044
+; hours for the time of day
+; 04-09 morn | 10-17 day | 18-03 nite
+ db 04, NITE
+ db 10, MORN
+ db 18, DAY
+ db 24, NITE
+ db -1, MORN
+; 1404e
+
+Unknown_1404e: ; Unreferenced
+ db 20, 2
+ db 40, 0
+ db 60, 1
+ db -1, 0
+; 14056
+
+StageRTCTimeForSave: ; 14056
+ call UpdateTime
+ ld hl, wRTC
+ ld a, [CurDay]
+ ld [hli], a
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ld a, [hSeconds]
+ ld [hli], a
+ ret
+; 1406a
+
+SaveRTC: ; 1406a
+ ld a, $a
+ ld [MBC3SRamEnable], a
+ call LatchClock
+ ld hl, MBC3RTC
+ ld a, $c
+ ld [MBC3SRamBank], a
+ res 7, [hl]
+ ld a, BANK(sRTCStatusFlags)
+ ld [MBC3SRamBank], a
+ xor a
+ ld [sRTCStatusFlags], a
+ call CloseSRAM
+ ret
+; 14089
+
+StartClock:: ; 14089
+ call GetClock
+ call Function1409b
+ call FixDays
+ jr nc, .skip_set
+ ; bit 5: Day count exceeds 139
+ ; bit 6: Day count exceeds 255
+ call RecordRTCStatus ; set flag on sRTCStatusFlags
+
+.skip_set
+ call StartRTC
+ ret
+; 1409b
+
+Function1409b: ; 1409b
+ ld hl, hRTCDayHi
+ bit 7, [hl]
+ jr nz, .set_bit_7
+ bit 6, [hl]
+ jr nz, .set_bit_7
+ xor a
+ ret
+
+.set_bit_7
+ ; Day count exceeds 16383
+ ld a, %10000000
+ call RecordRTCStatus ; set bit 7 on sRTCStatusFlags
+ ret
+; 140ae
+
+Function140ae: ; 140ae
+ call CheckRTCStatus
+ ld c, a
+ and %11000000 ; Day count exceeded 255 or 16383
+ jr nz, .time_overflow
+
+ ld a, c
+ and %00100000 ; Day count exceeded 139
+ jr z, .dont_update
+
+ call UpdateTime
+ ld a, [wRTC + 0]
+ ld b, a
+ ld a, [CurDay]
+ cp b
+ jr c, .dont_update
+
+.time_overflow
+ callba ClearDailyTimers
+ callba Function170923
+; mobile
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8c]
+ inc a
+ ld [$aa8c], a
+ ld a, [$b2fa]
+ inc a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+.dont_update
+ xor a
+ ret
+; 140ed
+
+Function140ed:: ; 140ed
+ call GetClock
+ call FixDays
+ ld hl, hRTCSeconds
+ ld de, StartSecond
+
+ ld a, [StringBuffer2 + 3]
+ sub [hl]
+ dec hl
+ jr nc, .okay_secs
+ add 60
+.okay_secs
+ ld [de], a
+ dec de
+
+ ld a, [StringBuffer2 + 2]
+ sbc [hl]
+ dec hl
+ jr nc, .okay_mins
+ add 60
+.okay_mins
+ ld [de], a
+ dec de
+
+ ld a, [StringBuffer2 + 1]
+ sbc [hl]
+ dec hl
+ jr nc, .okay_hrs
+ add 24
+.okay_hrs
+ ld [de], a
+ dec de
+
+ ld a, [StringBuffer2]
+ sbc [hl]
+ dec hl
+ jr nc, .okay_days
+ add 140
+ ld c, 7
+ call SimpleDivide
+
+.okay_days
+ ld [de], a
+ ret
+; 1412a
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -213,7 +213,7 @@
call LoadMenuTextBox
lb bc, 0, 7
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call WriteBackup
push af
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -160,8 +160,8 @@
dw Script_buttonsound ; 55
dw Script_pokepic ; 56
dw Script_closepokepic ; 57
- dw Script_interpretmenu ; 58
- dw Script_interpretmenu2 ; 59
+ dw Script__2dmenu ; 58
+ dw Script_verticalmenu ; 59
dw Script_loadpikachudata ; 5a
dw Script_randomwildmon ; 5b
dw Script_loadmemtrainer ; 5c
@@ -510,13 +510,13 @@
ret
; 96f30
-Script_interpretmenu2: ; 96f30
+Script_verticalmenu: ; 96f30
; script command 0x59
ld a, [ScriptBank]
- ld hl, InterpretMenu2
+ ld hl, VerticalMenu
rst FarCall
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
jr nc, .ok
xor a
.ok
@@ -524,11 +524,11 @@
ret
; 96f41
-Script_interpretmenu: ; 96f41
+Script__2dmenu: ; 96f41
; script command 0x58
ld a, [ScriptBank]
- ld hl, InterpretMenu
+ ld hl, _2DMenu
rst FarCall
ld a, [wMenuCursorBuffer]
jr nc, .ok
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1714,10 +1714,10 @@
call PrintText
ld hl, .MenuDataHeader
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, 4
sub b
@@ -1803,7 +1803,7 @@
call LoadMenuTextBox
lb bc, 14, 12
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call WriteBackup
and a
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -57,7 +57,7 @@
ret
.one: ; 8d2a2 (23:52a2)
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
@@ -116,7 +116,7 @@
ret
.three: ; 8d2ea (23:52ea)
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -93,7 +93,7 @@
.loop
call .PrintMenuAccount
call Function1f1a
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp B_BUTTON
jr z, .b
cp A_BUTTON
@@ -799,7 +799,7 @@
ld hl, GiveTakeItemMenuData
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
jr c, .cancel
@@ -808,7 +808,7 @@
ld de, wd050_MonNick
ld bc, PKMN_NAME_LENGTH
call CopyBytes
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp 1
jr nz, .take
@@ -1109,12 +1109,12 @@
; Show the READ/TAKE/QUIT menu.
ld hl, .MenuDataHeader
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
; Interpret the menu.
jp c, .done
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .read
cp $2
@@ -1483,7 +1483,7 @@
jr .asm_12f93
.asm_12f86: ; 12f86
- call Function1bd3
+ call ScrollingMenuJoypad
bit 1, a
jp nz, .asm_12f9f
bit 0, a
@@ -1551,7 +1551,7 @@
jr .skip_joy
.joy_loop
- call Function1bd3
+ call ScrollingMenuJoypad
bit 1, a
jp nz, .b_button
bit 0, a
@@ -1589,7 +1589,7 @@
jp z, .exit
ld a, [wMoveSwapBuffer]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
xor a
ld [wMoveSwapBuffer], a
hlcoord 1, 2
@@ -1669,7 +1669,7 @@
ld a, [wMoveSwapBuffer]
and a
jr nz, .place_move
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMoveSwapBuffer], a
call Function1bee
jp .moving_move
@@ -1716,7 +1716,7 @@
.copy_move: ; 1313a
push hl
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, $0
@@ -1834,7 +1834,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, $0
--- a/engine/stats_screen.asm
+++ b/engine/stats_screen.asm
@@ -253,10 +253,10 @@
pop bc
pop de
pop hl
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
and $c0
jr nz, .set_carry
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
jr .clear_flags
.notbreedmon
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -1811,7 +1811,7 @@
CoinVendor_SellCoinsMenuScript: ; 0xbcde4
special Special_DisplayMoneyAndCoinBalance
loadmenudata CoinVendor_MenuDataHeader
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, CoinVendor_Buy50CoinsScript
if_equal $2, CoinVendor_Buy500CoinsScript
--- /dev/null
+++ b/engine/tile_events.asm
@@ -1,0 +1,110 @@
+CheckWarpCollision:: ; 1499a
+; Is this tile a warp?
+ ld a, [PlayerNextTile]
+ cp $60
+ jr z, .warp
+ cp $68
+ jr z, .warp
+ and $f0
+ cp $70
+ jr z, .warp
+ and a
+ ret
+
+.warp
+ scf
+ ret
+; 149af
+
+CheckDirectionalWarp:: ; 149af
+; If this is a directional warp, clear carry (press the designated button to warp).
+; Else, set carry (immediate warp).
+ ld a, [PlayerNextTile]
+ cp $70 ; Warp on down
+ jr z, .not_warp
+ cp $76 ; Warp on left
+ jr z, .not_warp
+ cp $78 ; Warp on up
+ jr z, .not_warp
+ cp $7e ; Warp on right
+ jr z, .not_warp
+ scf
+ ret
+
+.not_warp
+ xor a
+ ret
+; 149c6
+
+CheckWarpFacingDown: ; 149c6
+ ld de, 1
+ ld hl, .blocks
+ ld a, [PlayerNextTile]
+ call IsInArray
+ ret
+; 149d3
+
+.blocks: ; 149d3
+ db $71 ; door
+ db $79
+ db $7a ; stairs
+ db $73
+ db $7b ; cave entrance
+ db $74
+ db $7c ; warp pad
+ db $75
+ db $7d
+ db -1
+; 149dd
+
+CheckGrassCollision:: ; 149dd
+ ld a, [PlayerNextTile]
+ ld hl, .blocks
+ ld de, 1
+ call IsInArray
+ ret
+; 149ea
+
+.blocks: ; 149ea
+ db $08
+ db $18 ; tall grass
+ db $14 ; tall grass
+ db $28
+ db $29
+ db $48
+ db $49
+ db $4a
+ db $4b
+ db $4c
+ db -1
+; 149f5
+
+CheckCutCollision: ; 149f5
+ ld a, c
+ ld hl, .blocks
+ ld de, 1
+ call IsInArray
+ ret
+; 14a00
+
+.blocks: ; 14a00
+ db $12 ; cut tree
+ db $1a ; cut tree
+ db $10 ; tall grass
+ db $18 ; tall grass
+ db $14 ; tall grass
+ db $1c ; tall grass
+ db -1
+; 14a07
+
+Function14a07:: ; 14a07
+ ld a, [PlayerNextTile]
+ ld de, $1f
+ cp $71 ; door
+ ret z
+ ld de, $13
+ cp $7c ; warp pad
+ ret z
+ ld de, $23
+ ret
+; 14a1a
--- a/engine/tmhm2.asm
+++ b/engine/tmhm2.asm
@@ -220,16 +220,16 @@
ld [wcfa8], a
ld a, [wTMHMPocketCursor]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
jr TMHM_ShowTMMoveDescription
TMHM_JoypadLoop: ; 2c915 (b:4915)
call TMHM_DisplayPocketItems
- call Function1bc9
+ call StaticMenuJoypad
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [wTMHMPocketCursor], a
xor a
@@ -268,7 +268,7 @@
TMHM_ChooseTMorHM: ; 2c974 (b:4974)
call TMHM_PlaySFX_ReadText2
call CountTMsHMs ; This stores the count to wd265.
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld b, a
ld a, [wTMHMPocketScrollPosition]
@@ -279,7 +279,7 @@
jr z, _TMHM_ExitPack ; our cursor was hovering over CANCEL
TMHM_CheckHoveringOverCancel: ; 2c98a (b:498a)
call TMHM_GetCurrentPocketPosition
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
.loop
inc c
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -255,9 +255,9 @@
call HandleScrollingMenu
ld a, [MenuSelection]
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [MenuSelection], a
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_8b111
ld a, c
--- a/event/elevator.asm
+++ b/event/elevator.asm
@@ -133,7 +133,7 @@
ld [wMenuScrollPosition], a
call HandleScrollingMenu
call WriteBackup
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_1350b
xor a
--- a/event/kurt.asm
+++ b/event/kurt.asm
@@ -40,7 +40,7 @@
and a
jr z, .done
ld [CurItem], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
push bc
call Kurt_PrintTextHowMany
@@ -68,7 +68,7 @@
call InitScrollingMenu
call UpdateSprites
call HandleScrollingMenu
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .nope
ld a, [MenuSelection]
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -106,10 +106,10 @@
call LoadStandardMenuDataHeader
ld hl, MenuDataHeader_0x166b5
call CopyMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
jr c, .cancel
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .withdraw
cp $2
--- a/event/move_deleter.asm
+++ b/event/move_deleter.asm
@@ -25,7 +25,7 @@
call Function2b74
pop af
jr c, .asm_2c5c3
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld a, [CurSpecies]
ld [wd265], a
--- a/home.asm
+++ b/home.asm
@@ -1161,7 +1161,7 @@
pop af
rst Bankswitch
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
ret
; 3524
--- a/home/handshake.asm
+++ b/home/handshake.asm
@@ -1,3 +1,16 @@
+PrinterReceive:: ; 2057
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PrinterReceive)
+ rst Bankswitch
+
+ call _PrinterReceive
+ pop af
+ rst Bankswitch
+
+ ret
+; 2063
+
AskSerial:: ; 2063
; send out a handshake while serial int is off
ld a, [wc2d4]
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -72,25 +72,26 @@
ret
; 1d81
-InterpretMenu2::
+VerticalMenu::
xor a
ld [hBGMapMode], a
call MenuBox
call UpdateSprites
- call Function1c89
+ call PlaceVerticalMenuItems
call ApplyTilemap
call CopyMenuData2
ld a, [wMenuData2Flags]
bit 7, a
jr z, .cancel
- call Function1c10
- call Function1bc9
- call Function1ff8
+ call InitVerticalMenuCursor
+ call StaticMenuJoypad
+ call MenuClickSound
bit 1, a
jr z, .okay
.cancel
scf
ret
+
.okay
and a
ret
@@ -98,9 +99,9 @@
GetMenu2:: ; 1dab
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ret
; 1db8
@@ -162,7 +163,7 @@
call BackUpTiles
InterpretTwoOptionMenu:: ; 1dfe
- call InterpretMenu2
+ call VerticalMenu
push af
ld c, $f
call DelayFrames
@@ -169,7 +170,7 @@
call WriteBackup
pop af
jr c, .no
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp 2 ; no
jr z, .no
and a
@@ -177,7 +178,7 @@
.no
ld a, 2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
scf
ret
; 1e1d
@@ -233,8 +234,8 @@
call MenuWriteText
call Function1eff
call Function1f23
- call Function1bdd
- call Function1ff8
+ call GetMenuJoypad
+ call MenuClickSound
ret
; 1e70
@@ -341,7 +342,7 @@
; 1eff
Function1eff:: ; 1eff
- call Function1c10
+ call InitVerticalMenuCursor
ld hl, wcfa8
ld a, [wMenuData2Flags]
bit 3, a
@@ -361,7 +362,7 @@
Function1f1a:: ; 1f1a
- call Function1bd3
+ call ScrollingMenuJoypad
ld hl, wcfa8
and [hl]
jr Function1f2a
@@ -369,8 +370,8 @@
Function1f23:: ; 1f23
xor a
- ld [wcf73], a
- call Function1bc9
+ ld [wMenuJoypad], a
+ call StaticMenuJoypad
; 1f2a
Function1f2a:: ; 1f2a
@@ -385,32 +386,32 @@
bit 5, a
jr nz, .asm_1f4b
xor a
- ld [wcf73], a
+ ld [wMenuJoypad], a
jr .asm_1f57
.asm_1f44
ld a, $10
- ld [wcf73], a
+ ld [wMenuJoypad], a
jr .asm_1f57
.asm_1f4b
ld a, $20
- ld [wcf73], a
+ ld [wMenuJoypad], a
jr .asm_1f57
.asm_1f52
ld a, $1
- ld [wcf73], a
+ ld [wMenuJoypad], a
.asm_1f57
call Function1ebd
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld l, a
ld h, $0
add hl, de
ld a, [hl]
ld [MenuSelection], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMenuCursorBuffer], a
and a
ret
@@ -417,7 +418,7 @@
.asm_1f6d
ld a, $2
- ld [wcf73], a
+ ld [wMenuJoypad], a
ld a, $ff
ld [MenuSelection], a
scf
@@ -489,7 +490,7 @@
; 1fbf
ResetTextRelatedRAM:: ; 1fbf
- ld hl, wcf71
+ ld hl, wWindowStackPointer
call .bytefill
ld hl, wMenuDataHeader
call .bytefill
@@ -504,14 +505,14 @@
ld [rSVBK], a
xor a
- ld hl, w7_dfff
+ ld hl, wWindowStackBottom
rept 2
ld [hld], a
endr
ld a, l
- ld [wcf71], a
+ ld [wWindowStackPointer], a
ld a, h
- ld [wcf72], a
+ ld [wWindowStackPointer + 1], a
pop af
ld [rSVBK], a
@@ -525,15 +526,14 @@
ret
; 1ff8
-Function1ff8:: ; 1ff8
+MenuClickSound:: ; 1ff8
push af
- and $3
+ and A_BUTTON | B_BUTTON
jr z, .nosound
ld hl, wMenuFlags
bit 3, [hl]
jr nz, .nosound
call PlayClickSFX
-
.nosound
pop af
ret
@@ -555,7 +555,7 @@
ret
; 201c
-Function201c:: ; 201c
+Place2DMenuItemName:: ; 201c
ld [hBuffer], a
ld a, [hROMBank]
push af
@@ -569,39 +569,26 @@
ret
; 202a
-InterpretMenu:: ; 202a
+_2DMenu:: ; 202a
ld a, [hROMBank]
- ld [wcf94], a
- callba Function2400e
+ ld [wMenuData2_2DMenuItemStringsBank], a
+ callba _2DMenu_
ld a, [wMenuCursorBuffer]
ret
; 2039
-Function2039:: ; 2039
+InterpretBattleMenu:: ; 2039
ld a, [hROMBank]
- ld [wcf94], a
- callba Function24022
+ ld [wMenuData2_2DMenuItemStringsBank], a
+ callba _InterpretBattleMenu
ld a, [wMenuCursorBuffer]
ret
; 2048
-Function2048:: ; 2048
+InterpretMobileMenu:: ; 2048
ld a, [hROMBank]
- ld [wcf94], a
- callba Function2403c
+ ld [wMenuData2_2DMenuItemStringsBank], a
+ callba _InterpretMobileMenu
ld a, [wMenuCursorBuffer]
ret
; 2057
-
-Function2057:: ; 2057
- ld a, [hROMBank]
- push af
- ld a, BANK(Function842db)
- rst Bankswitch
-
- call Function842db
- pop af
- rst Bankswitch
-
- ret
-; 2063
--- a/home/mobile.asm
+++ b/home/mobile.asm
@@ -51,14 +51,14 @@
ret
; 3e80
-Function3e80:: ; 3e80
+MobileReceive:: ; 3e80
ld a, [hROMBank]
push af
- ld a, BANK(Function1116c5)
+ ld a, BANK(_MobileReceive)
ld [$c981], a
rst Bankswitch
- call Function1116c5
+ call _MobileReceive
pop bc
ld a, b
ld [$c981], a
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -160,19 +160,19 @@
ret
; 1bc9
-Function1bc9:: ; 1bc9
- callab Function241a8
- call Function1bdd
+StaticMenuJoypad:: ; 1bc9
+ callab _StaticMenuJoypad
+ call GetMenuJoypad
ret
; 1bd3
-Function1bd3:: ; 1bd3
- callab Function241ab
- call Function1bdd
+ScrollingMenuJoypad:: ; 1bd3
+ callab _ScrollingMenuJoypad
+ call GetMenuJoypad
ret
; 1bdd
-Function1bdd:: ; 1bdd
+GetMenuJoypad:: ; 1bdd
push bc
push af
ld a, [hJoyLast]
@@ -189,20 +189,20 @@
; 1bee
Function1bee:: ; 1bee
- ld hl, wcfac
+ ld hl, wCursorCurrentTile
ld a, [hli]
ld h, [hl]
ld l, a
- ld [hl], $ec
+ ld [hl], "▷"
ret
; 1bf7
Function1bf7:: ; 1bf7
- ld hl, wcfac
+ ld hl, wCursorCurrentTile
ld a, [hli]
ld h, [hl]
ld l, a
- ld [hl], $7f
+ ld [hl], " "
ret
; 1c00
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -6,17 +6,17 @@
push de
push hl
- ld a, [hFFC9]
+ ld a, [hMobileReceive]
and a
- jr nz, .asm_71c
+ jr nz, .mobile
ld a, [wc2d4]
bit 0, a
- jr nz, .asm_721
+ jr nz, .printer
ld a, [hLinkPlayerNumber]
inc a ; is it equal to -1?
- jr z, .asm_726
+ jr z, .init_player_number
ld a, [rSB]
ld [hSerialReceive], a
@@ -26,34 +26,34 @@
ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_752
+ jr z, .player2
ld a, 0 << rSC_ON
ld [rSC], a
ld a, 1 << rSC_ON
ld [rSC], a
- jr .asm_752
+ jr .player2
-.asm_71c
- call Function3e80
- jr .asm_75a
+.mobile
+ call MobileReceive
+ jr .end
-.asm_721
- call Function2057
- jr .asm_75a
+.printer
+ call PrinterReceive
+ jr .end
-.asm_726
+.init_player_number
ld a, [rSB]
cp $1
- jr z, .asm_730
+ jr z, .player1
cp $2
- jr nz, .asm_752
+ jr nz, .player2
-.asm_730
+.player1
ld [hSerialReceive], a
ld [hLinkPlayerNumber], a
cp $2
- jr z, .asm_74f
+ jr z, ._player2
xor a
ld [rSB], a
@@ -60,28 +60,28 @@
ld a, $3
ld [rDIV], a
-.asm_73f
+.wait_bit_7
ld a, [rDIV]
bit 7, a
- jr nz, .asm_73f
+ jr nz, .wait_bit_7
ld a, 0 << rSC_ON
ld [rSC], a
ld a, 1 << rSC_ON
ld [rSC], a
- jr .asm_752
+ jr .player2
-.asm_74f
+._player2
xor a
ld [rSB], a
-.asm_752
+.player2
ld a, $1
ld [hFFCA], a
- ld a, $fe
+ ld a, -2
ld [hSerialSend], a
-.asm_75a
+.end
pop hl
pop de
pop bc
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -5,12 +5,12 @@
ExitMenu:: ; 0x1c07
push af
- callab Function243e8
+ callab _ExitMenu
pop af
ret
-Function1c10:: ; 0x1c10
- callab Function2446d
+InitVerticalMenuCursor:: ; 0x1c10
+ callab _InitVerticalMenuCursor
ret
WriteBackup:: ; 0x1c17
@@ -54,7 +54,7 @@
ret
-Function1c47:: ; 0x1c47
+PopWindow:: ; 0x1c47
ld b, $10
ld de, wMenuFlags
.loop
@@ -98,8 +98,8 @@
ret
; 1c7e
-Function1c7e:: ; 1c7e
- ld hl, wcf71
+GetWindowStackTop:: ; 1c7e
+ ld hl, wWindowStackPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -110,7 +110,7 @@
ret
; 1c89
-Function1c89:: ; 1c89
+PlaceVerticalMenuItems:: ; 1c89
call CopyMenuData2
ld hl, wMenuData2Pointer
ld e, [hl]
@@ -131,6 +131,7 @@
pop bc
dec b
jr nz, .loop
+
ld a, [wMenuData2Flags]
bit 4, a
ret z
--- a/hram.asm
+++ b/hram.asm
@@ -77,7 +77,7 @@
hLCDStatCustom EQU $ffc6
-hFFC9 EQU $ffc9
+hMobileReceive EQU $ffc9
hFFCA EQU $ffca
hLinkPlayerNumber EQU $ffcb
hFFCC EQU $ffcc
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -2667,7 +2667,7 @@
Elixer_RestorePPofAllMoves: ; f6af
xor a
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hli], a
ld [hl], a
ld b, NUM_MOVES
@@ -2682,16 +2682,16 @@
call RestorePP
jr z, .next
- ld hl, wcfaa
+ ld hl, wMenuCursorX
inc [hl]
.next
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
inc [hl]
pop bc
dec b
jr nz, .moveLoop
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
and a
jp nz, BattleRestorePP
@@ -3120,7 +3120,7 @@
ld a, [wd265]
dec a
jr nz, .use
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp b
jr nz, .skip
@@ -3197,7 +3197,7 @@
call GetPartyParamLocation
pop de
xor a ; PARTYMON
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld [MonType], a
ld c, NUM_MOVES
.loop
@@ -3217,7 +3217,7 @@
add b
ld [de], a
inc de
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
inc [hl]
pop hl
dec c
@@ -3310,7 +3310,7 @@
call AddNTimes
GetMthMoveOfCurrentMon: ; f969
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
ld b, 0
add hl, bc
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -1,5 +1,7 @@
; A library included as part of the Mobile Adapter GB SDK.
+charmap "<CR>", $d
+
INCLUDE "gbhw.asm"
SECTION "Main", ROMX
@@ -608,7 +610,7 @@
; 110393
Function110393: ; 110393
- ld c, $ff
+ ld c, rIE % $100
ld a, [$ff00+c]
or $c
ld [$ff00+c], a
@@ -1971,73 +1973,73 @@
Function110d37: ; 110d37
push bc
push de
- ld b, $0
-.asm_110d3b
- ld a, $27
+ ld b, 0
+.check_under_10k
+ ld a, 10000 / $100
cp h
- jr c, .asm_110d49
- jr nz, .asm_110d52
- ld a, $10
+ jr c, .subtract_10k
+ jr nz, .done_10k
+ ld a, 10000 % $100
cp l
- jr z, .asm_110d49
- jr nc, .asm_110d52
+ jr z, .subtract_10k
+ jr nc, .done_10k
-.asm_110d49
+.subtract_10k
inc b
ld a, b
- ld bc, $d8f0
+ ld bc, -10000
add hl, bc
ld b, a
- jr .asm_110d3b
+ jr .check_under_10k
-.asm_110d52
+.done_10k
ld a, $30
or b
ld [de], a
inc de
- ld b, $0
-.asm_110d59
- ld a, $3
+ ld b, 0
+.check_under_1k
+ ld a, 1000 / $100
cp h
- jr c, .asm_110d67
- jr nz, .asm_110d70
- ld a, $e8
+ jr c, .subtract_1k
+ jr nz, .done_1k
+ ld a, 1000 % $100
cp l
- jr z, .asm_110d67
- jr nc, .asm_110d70
+ jr z, .subtract_1k
+ jr nc, .done_1k
-.asm_110d67
+.subtract_1k
inc b
ld a, b
- ld bc, $fc18
+ ld bc, -1000
add hl, bc
ld b, a
- jr .asm_110d59
+ jr .check_under_1k
-.asm_110d70
+.done_1k
ld a, $30
or b
ld [de], a
inc de
- ld b, $0
-.asm_110d77
- ld a, $0
+ ld b, 0
+.check_under_100
+ ld a, 100 / $100
cp h
- jr nz, .asm_110d83
- ld a, $64
+ jr nz, .subtract_100
+ ld a, 100 % $100
cp l
- jr z, .asm_110d83
- jr nc, .asm_110d8c
+ jr z, .subtract_100
+ jr nc, .check_under_10
-.asm_110d83
+.subtract_100
inc b
ld a, b
- ld bc, $ff9c
+ ld bc, -100
add hl, bc
ld b, a
- jr .asm_110d77
+ jr .check_under_100
-.asm_110d8c
+.check_under_10
ld a, $30
or b
ld [de], a
@@ -2044,14 +2046,14 @@
inc de
ld b, $0
ld a, l
-.asm_110d94
- cp $a
- jr c, .asm_110d9d
- sub $a
+.subtract_10
+ cp 10
+ jr c, .done_10
+ sub 10
inc b
- jr .asm_110d94
+ jr .subtract_10
-.asm_110d9d
+.done_10
ld l, a
ld a, $30
or b
@@ -2064,19 +2066,19 @@
ld l, e
ld h, d
ld b, $5
-.asm_110dac
+.find_first_digit
ld a, [hl]
cp $30
- jr nz, .asm_110db7
+ jr nz, .found_first_digit
inc hl
dec b
- jr nz, .asm_110dac
- jr .asm_110dd5
+ jr nz, .find_first_digit
+ jr .done
-.asm_110db7
+.found_first_digit
ld a, $5
cp b
- jr z, .asm_110dd5
+ jr z, .done
sub b
ld c, a
ld a, [$cb4c]
@@ -2085,23 +2087,23 @@
ld [$cb4c], a
push hl
ld b, $1
-.asm_110dc9
+.penultimate_loop
inc b
ld a, [hli]
cp $d
- jr nz, .asm_110dc9
+ jr nz, .penultimate_loop
pop hl
call Function110000
pop hl
ret
-.asm_110dd5
+.done
pop bc
-.asm_110dd6
+.last_loop
ld a, [de]
inc de
cp $a
- jr nz, .asm_110dd6
+ jr nz, .last_loop
ret
; 110ddd
@@ -3530,7 +3532,7 @@
ret
; 1116c5
-Function1116c5:: ; 1116c5 (44:56c5)
+_MobileReceive:: ; 1116c5 (44:56c5)
ld a, [$c800]
rrca
jp nc, Function1118bc
@@ -3636,7 +3638,6 @@
.asm_111778
xor a
ld [$c800], a
-
Function11177c: ; 11177c (44:577c)
ld hl, $c820
ld a, [hld]
@@ -3835,7 +3836,6 @@
xor a
ld [hli], a
inc [hl]
-
Function1118bc: ; 1118bc (44:58bc)
ld hl, $c822
res 1, [hl]
@@ -4974,31 +4974,31 @@
Unknown_1120b0:
db "RCPT TO:<", 0
Unknown_1120ba:
- db "DATA", $d, "\n", 0
+ db "DATA<CR>\n", 0
Unknown_1120c1:
- db "QUIT", $d, "\n", 0
+ db "QUIT<CR>\n", 0
Unknown_1120c8:
db "USER ", 0
Unknown_1120ce:
db "PASS ", 0
Unknown_1120d4:
- db "STAT", $d, "\n", 0
+ db "STAT<CR>\n", 0
Unknown_1120db:
- db "LIST 00000", $d, "\n", 0
+ db "LIST 00000<CR>\n", 0
Unknown_1120e8:
- db "RETR 00000", $d, "\n", 0
+ db "RETR 00000<CR>\n", 0
Unknown_1120f5:
- db "DELE 00000", $d, "\n", 0
+ db "DELE 00000<CR>\n", 0
Unknown_112102:
- db "TOP 00000 0", $d, "\n", 0
+ db "TOP 00000 0<CR>\n", 0
Unknown_112110:
db "GET ", 0
Unknown_112115:
- db " HTTP/1.0", $d, "\n", 0
+ db " HTTP/1.0<CR>\n", 0
Unknown_112121:
db "User-Agent: CGB-", 0
Unknown_112132:
- db $d, "\n", $d, "\n", 0
+ db "<CR>\n<CR>\n", 0
Unknown_112137:
db "POST ", 0
Unknown_11213d:
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -574,14 +574,14 @@
db closepokepic_command
endm
- enum interpretmenu_command
-interpretmenu: macro
- db interpretmenu_command
+ enum _2dmenu_command
+_2dmenu: macro
+ db _2dmenu_command
endm
- enum interpretmenu2_command
-interpretmenu2: macro
- db interpretmenu2_command
+ enum verticalmenu_command
+verticalmenu: macro
+ db verticalmenu_command
endm
enum loadpikachudata_command
--- a/main.asm
+++ b/main.asm
@@ -5796,7 +5796,7 @@
pop hl
pop de
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld a, [MonType]
push af
@@ -5809,7 +5809,7 @@
ld a, BOXMON
ld [MonType], a
ld a, b
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
push bc
push hl
push de
@@ -5833,7 +5833,7 @@
pop af
ld [MonType], a
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
; dd21
@@ -7558,7 +7558,7 @@
BugCatchingContestOverScript:: ; 0x135f8
playsound SFX_ELEVATOR_END
opentext
- writetext UnknownText_0x1360f
+ writetext BugCatchingContestText_BeeepTimesUp
waitbutton
jump BugCatchingContestReturnToGateScript
; 0x13603
@@ -7566,7 +7566,7 @@
BugCatchingContestOutOfBallsScript: ; 0x13603
playsound SFX_ELEVATOR_END
opentext
- writetext UnknownText_0x13614
+ writetext BugCatchingContestText_ContestIsOver
waitbutton
BugCatchingContestReturnToGateScript: ; 0x1360b
@@ -7574,13 +7574,13 @@
jumpstd bugcontestresultswarp
; 0x1360f
-UnknownText_0x1360f: ; 0x1360f
+BugCatchingContestText_BeeepTimesUp: ; 0x1360f
; ANNOUNCER: BEEEP! Time's up!
text_jump UnknownText_0x1bd2ca
db "@"
; 0x13614
-UnknownText_0x13614: ; 0x13614
+BugCatchingContestText_ContestIsOver: ; 0x13614
; ANNOUNCER: The Contest is over!
text_jump UnknownText_0x1bd2e7
db "@"
@@ -7679,7 +7679,7 @@
dbw $97, tv
dbw $9d, window
dbw $9f, incenseburner
- db $ff ; end
+ db -1 ; end
; 1369a
Script_JumpStdFromRAM: ; 0x1369a
@@ -7756,350 +7756,19 @@
SECTION "bank5", ROMX, BANK[$5]
-StopRTC: ; Unreferenced???
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
- call LatchClock
- ld a, RTC_DH
- ld [MBC3SRamBank], a
- ld a, [MBC3RTC]
- set 6, a ; halt
- ld [MBC3RTC], a
- call CloseSRAM
- ret
-; 14019
-
-StartRTC: ; 14019
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
- call LatchClock
- ld a, RTC_DH
- ld [MBC3SRamBank], a
- ld a, [MBC3RTC]
- res 6, a ; halt
- ld [MBC3RTC], a
- call CloseSRAM
- ret
-; 14032
-
-GetTimeOfDay:: ; 14032
-; get time of day based on the current hour
- ld a, [hHours] ; hour
- ld hl, TimesOfDay
-
-.check
-; if we're within the given time period,
-; get the corresponding time of day
- cp [hl]
- jr c, .match
-; else, get the next entry
-rept 2
- inc hl
-endr
-; try again
- jr .check
-
-.match
-; get time of day
- inc hl
- ld a, [hl]
- ld [TimeOfDay], a
- ret
-; 14044
-
-TimesOfDay: ; 14044
-; hours for the time of day
-; 04-09 morn | 10-17 day | 18-03 nite
- db 04, NITE
- db 10, MORN
- db 18, DAY
- db 24, NITE
- db -1, MORN
-; 1404e
-
-Unknown_1404e: ; Unreferenced
- db 20, 2
- db 40, 0
- db 60, 1
- db -1, 0
-; 14056
-
-StageRTCTimeForSave: ; 14056
- call UpdateTime
- ld hl, wRTC
- ld a, [CurDay]
- ld [hli], a
- ld a, [hHours]
- ld [hli], a
- ld a, [hMinutes]
- ld [hli], a
- ld a, [hSeconds]
- ld [hli], a
- ret
-; 1406a
-
-SaveRTC: ; 1406a
- ld a, $a
- ld [MBC3SRamEnable], a
- call LatchClock
- ld hl, MBC3RTC
- ld a, $c
- ld [MBC3SRamBank], a
- res 7, [hl]
- ld a, BANK(sRTCStatusFlags)
- ld [MBC3SRamBank], a
- xor a
- ld [sRTCStatusFlags], a
- call CloseSRAM
- ret
-; 14089
-
-StartClock:: ; 14089
- call GetClock
- call Function1409b
- call FixDays
- jr nc, .skip_set
- ; bit 5: Day count exceeds 139
- ; bit 6: Day count exceeds 255
- call RecordRTCStatus ; set flag on sRTCStatusFlags
-
-.skip_set
- call StartRTC
- ret
-; 1409b
-
-Function1409b: ; 1409b
- ld hl, hRTCDayHi
- bit 7, [hl]
- jr nz, .set_bit_7
- bit 6, [hl]
- jr nz, .set_bit_7
- xor a
- ret
-
-.set_bit_7
- ; Day count exceeds 16383
- ld a, %10000000
- call RecordRTCStatus ; set bit 7 on sRTCStatusFlags
- ret
-; 140ae
-
-Function140ae: ; 140ae
- call CheckRTCStatus
- ld c, a
- and %11000000 ; Day count exceeded 255 or 16383
- jr nz, .time_overflow
-
- ld a, c
- and %00100000 ; Day count exceeded 139
- jr z, .dont_update
-
- call UpdateTime
- ld a, [wRTC + 0]
- ld b, a
- ld a, [CurDay]
- cp b
- jr c, .dont_update
-
-.time_overflow
- callba ClearDailyTimers
- callba Function170923
-; mobile
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8c]
- inc a
- ld [$aa8c], a
- ld a, [$b2fa]
- inc a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-.dont_update
- xor a
- ret
-; 140ed
-
-Function140ed:: ; 140ed
- call GetClock
- call FixDays
- ld hl, hRTCSeconds
- ld de, StartSecond
-
- ld a, [StringBuffer2 + 3]
- sub [hl]
- dec hl
- jr nc, .okay_secs
- add 60
-.okay_secs
- ld [de], a
- dec de
-
- ld a, [StringBuffer2 + 2]
- sbc [hl]
- dec hl
- jr nc, .okay_mins
- add 60
-.okay_mins
- ld [de], a
- dec de
-
- ld a, [StringBuffer2 + 1]
- sbc [hl]
- dec hl
- jr nc, .okay_hrs
- add 24
-.okay_hrs
- ld [de], a
- dec de
-
- ld a, [StringBuffer2]
- sbc [hl]
- dec hl
- jr nc, .okay_days
- add 140
- ld c, 7
- call SimpleDivide
-
-.okay_days
- ld [de], a
- ret
-; 1412a
-
+INCLUDE "engine/rtc.asm"
INCLUDE "engine/overworld.asm"
-
-CheckWarpCollision:: ; 1499a
-; Is this tile a warp?
- ld a, [PlayerNextTile]
- cp $60
- jr z, .warp
- cp $68
- jr z, .warp
- and $f0
- cp $70
- jr z, .warp
- and a
- ret
-
-.warp
- scf
- ret
-; 149af
-
-CheckDirectionalWarp:: ; 149af
-; If this is a directional warp, clear carry (press the designated button to warp).
-; Else, set carry (immediate warp).
- ld a, [PlayerNextTile]
- cp $70 ; Warp on down
- jr z, .not_warp
- cp $76 ; Warp on left
- jr z, .not_warp
- cp $78 ; Warp on up
- jr z, .not_warp
- cp $7e ; Warp on right
- jr z, .not_warp
- scf
- ret
-
-.not_warp
- xor a
- ret
-; 149c6
-
-CheckWarpFacingDown: ; 149c6
- ld de, 1
- ld hl, .blocks
- ld a, [PlayerNextTile]
- call IsInArray
- ret
-; 149d3
-
-.blocks: ; 149d3
- db $71 ; door
- db $79
- db $7a ; stairs
- db $73
- db $7b ; cave entrance
- db $74
- db $7c ; warp pad
- db $75
- db $7d
- db -1
-; 149dd
-
-CheckGrassCollision:: ; 149dd
- ld a, [PlayerNextTile]
- ld hl, .blocks
- ld de, 1
- call IsInArray
- ret
-; 149ea
-
-.blocks: ; 149ea
- db $08
- db $18 ; tall grass
- db $14 ; tall grass
- db $28
- db $29
- db $48
- db $49
- db $4a
- db $4b
- db $4c
- db -1
-; 149f5
-
-CheckCutCollision: ; 149f5
- ld a, c
- ld hl, .blocks
- ld de, 1
- call IsInArray
- ret
-; 14a00
-
-.blocks: ; 14a00
- db $12 ; cut tree
- db $1a ; cut tree
- db $10 ; tall grass
- db $18 ; tall grass
- db $14 ; tall grass
- db $1c ; tall grass
- db -1
-; 14a07
-
-Function14a07:: ; 14a07
- ld a, [PlayerNextTile]
- ld de, $1f
- cp $71 ; door
- ret z
- ld de, $13
- cp $7c ; warp pad
- ret z
- ld de, $23
- ret
-; 14a1a
-
+INCLUDE "engine/tile_events.asm"
INCLUDE "engine/save.asm"
-
INCLUDE "engine/spawn_points.asm"
-
INCLUDE "engine/map_setup.asm"
-
INCLUDE "engine/pokecenter_pc.asm"
-
INCLUDE "engine/mart.asm"
-
INCLUDE "engine/money.asm"
-
INCLUDE "items/marts.asm"
-
INCLUDE "event/mom.asm"
-
INCLUDE "event/daycare.asm"
-
INCLUDE "event/photo.asm"
-
INCLUDE "engine/breeding/egg.asm"
SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
@@ -8136,262 +7805,7 @@
INCLUDE "engine/menu.asm"
-_BackUpTiles:: ; 24374
- ld a, [rSVBK]
- push af
- ld a, $7
- ld [rSVBK], a
-
- ld hl, wcf71
- ld e, [hl]
- inc hl
- ld d, [hl]
- push de
-
- ld b, $10
- ld hl, wMenuFlags
-.loop
- ld a, [hli]
- ld [de], a
- dec de
- dec b
- jr nz, .loop
-
-; If bit 6 or 7 of the menu flags is set, set bit 0 of the address
-; at 7:[wcf71], and draw the menu using the coordinates from the header.
-; Otherwise, reset bit 0 of 7:[wcf71].
- ld a, [wMenuFlags]
- bit 6, a
- jr nz, .bit_6
- bit 7, a
- jr z, .not_bit_7
-
-.bit_6
- ld hl, wcf71
- ld a, [hli]
- ld h, [hl]
- ld l, a
- set 0, [hl]
- call MenuBoxCoord2Tile
- call .copy
- call MenuBoxCoord2Attr
- call .copy
- jr .done
-
-.not_bit_7
- pop hl ; last-pushed register was de
- push hl
- ld a, [hld]
- ld l, [hl]
- ld h, a
- res 0, [hl]
-
-.done
- pop hl
- call .ret ; empty function
- ld a, h
- ld [de], a
- dec de
- ld a, l
- ld [de], a
- dec de
- ld hl, wcf71
- ld [hl], e
- inc hl
- ld [hl], d
-
- pop af
- ld [rSVBK], a
- ld hl, wcf78
- inc [hl]
- ret
-; 243cd
-
-.copy: ; 243cd
- call GetMenuBoxDims
- inc b
- inc c
- call .ret ; empty function
-
-.row
- push bc
- push hl
-
-.col
- ld a, [hli]
- ld [de], a
- dec de
- dec c
- jr nz, .col
-
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
-
- ret
-; 243e7
-
-.ret: ; 243e7
- ret
-; 243e8
-
-Function243e8:: ; 243e8
- xor a
- ld [hBGMapMode], a
-
- ld a, [rSVBK]
- push af
- ld a, $7
- ld [rSVBK], a
-
- call Function1c7e
- ld a, l
- or h
- jp z, Function2445d
- ld a, l
- ld [wcf71], a
- ld a, h
- ld [wcf72], a
- call Function1c47
- ld a, [wMenuFlags]
- bit 0, a
- jr z, .next
- ld d, h
- ld e, l
- call RestoreTileBackup
-
-.next
- call Function1c7e
- ld a, h
- or l
- jr z, .done
- call Function1c47
-
-.done
- pop af
- ld [rSVBK], a
- ld hl, wcf78
- dec [hl]
- ret
-; 24423
-
-Function24423: ; 24423
- ld a, [VramState]
- bit 0, a
- ret z
- xor a
- call GetSRAMBank
- hlcoord 0, 0
- ld de, sScratch
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- call CloseSRAM
- call OverworldTextModeSwitch
- xor a
- call GetSRAMBank
- ld hl, sScratch
- decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-.asm_2444c
- ld a, [hl]
- cp $61
- jr c, .asm_24452
- ld [de], a
-
-.asm_24452
- inc hl
- inc de
- dec bc
- ld a, c
- or b
- jr nz, .asm_2444c
- call CloseSRAM
- ret
-; 2445d
-
-Function2445d: ; 2445d
- ld hl, UnknownText_0x24468
- call PrintText
- call WaitBGMap
-.asm_24466
- jr .asm_24466
-; 24468
-
-UnknownText_0x24468: ; 24468
- text_jump UnknownText_0x1c46b7
- db "@"
-; 2446d
-
-Function2446d:: ; 2446d
- ld a, [wMenuData2Flags]
- ld b, a
- ld hl, wcfa1
- ld a, [wMenuBorderTopCoord]
- inc a
- bit 6, b
- jr nz, .asm_2447d
- inc a
-
-.asm_2447d
- ld [hli], a
- ld a, [wMenuBorderLeftCoord]
- inc a
- ld [hli], a
- ld a, [wMenuData2Items]
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- bit 5, b
- jr z, .asm_24492
- set 5, [hl]
-
-.asm_24492
- ld a, [wMenuFlags]
- bit 4, a
- jr z, .asm_2449b
- set 6, [hl]
-
-.asm_2449b
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- bit 0, b
- jr nz, .asm_244a9
- add $2
-
-.asm_244a9
- ld [hli], a
- ld a, [wMenuCursorBuffer]
- and a
- jr z, .asm_244b7
- ld c, a
- ld a, [wMenuData2Items]
- cp c
- jr nc, .asm_244b9
-
-.asm_244b7
- ld c, $1
-
-.asm_244b9
- ld [hl], c
- inc hl
- ld a, $1
- ld [hli], a
- xor a
-rept 3
- ld [hli], a
-endr
- ret
-; 244c3
-
-UpdateItemDescription: ; 0x244c3
+UpdateItemDescription: ; 0x244c3
ld a, [MenuSelection]
ld [CurSpecies], a
hlcoord 0, 12
@@ -8532,7 +7946,7 @@
Function245af:: ; 245af
xor a
- ld [wcf73], a
+ ld [wMenuJoypad], a
ld [hBGMapMode], a
inc a
ld [hInMenu], a
@@ -8555,8 +7969,8 @@
; 245d6
.exit: ; 245d6
- call Function1ff8
- ld [wcf73], a
+ call MenuClickSound
+ ld [wMenuJoypad], a
ld a, 0
ld [hInMenu], a
ret
@@ -8590,7 +8004,7 @@
MenuJoyAction: ; 24609
.loop
- call Function1bd3
+ call ScrollingMenuJoypad
ld a, [hJoyLast]
and D_PAD
ld b, a
@@ -8624,7 +8038,7 @@
.a_button: ; 24644
call Function1bee
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Function248d5
ld a, [MenuSelection]
@@ -8653,7 +8067,7 @@
ld a, [wMenuData2Flags]
bit 7, a
jp z, xor_a_dec_a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Function248d5
ld a, [MenuSelection]
@@ -8736,7 +8150,7 @@
Function246fc: ; 246fc
ld a, [wMenuScrollPosition]
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
add c
ld c, a
ret
@@ -8870,13 +8284,13 @@
ld a, $1
.asm_247ca
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
xor a
- ld [wcfac], a
- ld [wcfad], a
- ld [wcfab], a
+ ld [wCursorCurrentTile], a
+ ld [wCursorCurrentTile + 1], a
+ ld [wCursorOffCharacter], a
ret
; 247dd
@@ -9034,7 +8448,7 @@
ret nz
.asm_248c7
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Function248d5
ld hl, wcf9e
@@ -11582,7 +10996,7 @@
add $4
ld [wMenuBorderBottomCoord], a
call BackUpTiles
- call InterpretMenu2
+ call VerticalMenu
push af
ld c, 15
call DelayFrames
@@ -11589,7 +11003,7 @@
call Buena_ExitMenu
pop af
jr c, .refused
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .refused
and a
@@ -11597,7 +11011,7 @@
.refused
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
scf
ret
; 4ae5e
@@ -12009,7 +11423,7 @@
; 4d319
Function4d319: ; 4d319
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
call LowVolume
@@ -12016,7 +11430,7 @@
predef StatsScreenInit
ld a, [CurPartyMon]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call ClearScreen
call ClearBGPalettes
call MaxVolume
@@ -12119,9 +11533,9 @@
call PrintText
ld hl, .NoYes_MenuDataHeader
call CopyMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
ret z
call ClockResetPassword
@@ -12395,9 +11809,9 @@
call PrintText
ld hl, MenuDataHeader_0x4d585
call CopyMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
ret c
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
ret z
callba EmptyAllSRAMBanks
@@ -14074,7 +13488,7 @@
push bc
push hl
push de
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
push af
ld [hl], b
@@ -14546,7 +13960,7 @@
dec a
ld [Buffer3], a
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [Buffer2], a ; wd1eb (aliases: MovementType)
cp b
@@ -16303,8 +15717,8 @@
ld hl, KrisNameMenuHeader
.GotGender
call LoadMenuDataHeader
- call InterpretMenu2
- ld a, [MenuSelection2]
+ call VerticalMenu
+ ld a, [wMenuCursorY]
dec a
call CopyNameFromMenu
call WriteBackup
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -29,7 +29,7 @@
.Start
special PlaceMoneyTopRightOW
loadmenudata .MenuData
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .FreshWater
if_equal $2, .SodaPop
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -26,7 +26,7 @@
CeladonPrizeRoom_tmcounterloop:
special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x72790
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .doubleteam
if_equal $2, .psychic
@@ -130,7 +130,7 @@
writetext UnknownText_0x72974
special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x72877
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .pikachu
if_equal $2, .porygon
--- a/maps/DragonShrine.asm
+++ b/maps/DragonShrine.asm
@@ -33,7 +33,7 @@
writetext UnknownText_0x18d3bc
buttonsound
loadmenudata MenuDataHeader_0x18d215
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .RightAnswer
if_equal $2, .WrongAnswer
@@ -45,7 +45,7 @@
writetext UnknownText_0x18d3d3
buttonsound
loadmenudata MenuDataHeader_0x18d234
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .RightAnswer
if_equal $2, .RightAnswer
@@ -55,7 +55,7 @@
writetext UnknownText_0x18d3f3
buttonsound
loadmenudata MenuDataHeader_0x18d258
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .WrongAnswer
if_equal $2, .RightAnswer
@@ -65,7 +65,7 @@
writetext UnknownText_0x18d420
buttonsound
loadmenudata MenuDataHeader_0x18d283
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .RightAnswer
if_equal $2, .WrongAnswer
@@ -75,7 +75,7 @@
writetext UnknownText_0x18d44a
buttonsound
loadmenudata MenuDataHeader_0x18d2a5
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .WrongAnswer
if_equal $2, .RightAnswer
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -67,7 +67,7 @@
writetext AcademyBlackboardText
.Loop
loadmenudata .MenuHeader
- interpretmenu
+ _2dmenu
writebackup
if_equal $1, .Poison
if_equal $2, .Paralysis
@@ -114,7 +114,7 @@
dn 3, 2 ; rows, columns
db 5 ; spacing
dba .Text
- dbw $1a, 0
+ dbw BANK(AcademyBlackboard), 0
.Text
db "PSN@"
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -68,7 +68,7 @@
if_equal $2, .NotEnoughMoney
writetext UnknownText_0x1990ce
loadmenudata .MoveMenuDataHeader
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .Flamethrower
if_equal $2, .Thunderbolt
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -15,7 +15,7 @@
.Start
special PlaceMoneyTopRightOW
loadmenudata .MenuData
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, .FreshWater
if_equal $2, .SodaPop
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -65,7 +65,7 @@
UnknownScript_0x56c36: ; 056c36
special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x56cc9
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, UnknownScript_0x56c4d
if_equal $2, UnknownScript_0x56c69
@@ -169,7 +169,7 @@
writetext UnknownText_0x56e8b
special Special_DisplayCoinCaseBalance
loadmenudata MenuDataHeader_0x56db0
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, UnknownScript_0x56d26
if_equal $2, UnknownScript_0x56d54
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -26,7 +26,7 @@
UnknownScript_0x625df:
reloadmappart
loadmenudata MenuDataHeader_0x62602
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, UnknownScript_0x625f0
if_equal $2, UnknownScript_0x625f8
@@ -71,7 +71,7 @@
UnknownScript_0x62629:
reloadmappart
loadmenudata MenuDataHeader_0x6264c
- interpretmenu2
+ verticalmenu
writebackup
if_equal $1, UnknownScript_0x6263a
if_equal $2, UnknownScript_0x62642
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -288,7 +288,7 @@
ld [wcd2b], a
ld a, $ff
ld [wcd24], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
call Function11c254
call ClearBGPalettes
@@ -1733,7 +1733,7 @@
Function11cb52: ; 11cb52 (47:4b52)
ld hl, Unknown_11cc01
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
.asm_11cb58
dec a
jr z, .asm_11cb5f
@@ -1771,7 +1771,7 @@
ld a, $4
call GetSRAMBank
ld hl, $a007
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
sla a
sla a
@@ -1794,7 +1794,7 @@
ld de, Unknown_11cfc6
call Function11cfce
ld hl, Unknown_11cc7e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
.asm_11cbba
dec a
jr z, .asm_11cbc1
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -114,15 +114,15 @@
call Function48187
call WaitBGMap2
call SetPalettes
- call Function1bc9
- ld hl, MenuSelection2
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
jr asm_4815f
Function48157: ; 48157 (12:4157)
- call Function1bd3
- ld hl, MenuSelection2
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
ld b, [hl]
push bc
@@ -215,7 +215,7 @@
Function4820d: ; 4820d (12:420d)
call Function1bee
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
push af
ld a, [wd002]
@@ -235,7 +235,7 @@
cp $4
jp z, Function488d3
ld a, $2
- call Function1ff8
+ call MenuClickSound
ld a, [wd002]
bit 6, a
jr z, .asm_4825c
@@ -301,12 +301,12 @@
ld a, [PlayerGender]
inc a
ld [wMenuCursorBuffer], a
- call Function1bc9
+ call StaticMenuJoypad
call PlayClickSFX
call ExitMenu
bit 0, a
jp z, Function4840c
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
ld hl, Strings_484fb
cp $1
@@ -415,7 +415,7 @@
ld [wMenuScrollPosition], a
jr .asm_483af
.asm_483af
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld a, [hl]
ld [wMenuCursorBuffer], a
scf
@@ -493,7 +493,7 @@
call PlaceString
call Function486bf
pop bc
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld [hl], b
ld a, [wd002]
bit 6, a
@@ -853,7 +853,7 @@
call Function4880e
jr nc, .asm_487c6
ld a, $1
- call Function1ff8
+ call MenuClickSound
pop bc
jr nz, .asm_487da
ld a, b
@@ -1154,7 +1154,7 @@
push de
push hl
ld a, $1
- call Function1ff8
+ call MenuClickSound
pop hl
pop de
pop bc
@@ -1221,7 +1221,7 @@
ld a, $b
ld [wcfa2], a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
hlcoord 10, 8
ld b, $4
ld c, $8
@@ -1229,7 +1229,7 @@
hlcoord 12, 10
ld de, String_48aa1
call PlaceString
- call Function1bc9
+ call StaticMenuJoypad
push af
call PlayClickSFX
call ExitMenu
@@ -1236,7 +1236,7 @@
pop af
bit 1, a
jp nz, Function48a9a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_48a98
ld a, [wd003]
--- a/misc/mobile_12_2.asm
+++ b/misc/mobile_12_2.asm
@@ -494,7 +494,7 @@
ld a, $2
ld [wcfa4], a
call Function4adf7
- call Function1bc9
+ call StaticMenuJoypad
call Function4abc3
jr c, .asm_4ab1a
push af
@@ -506,11 +506,11 @@
ld a, [PartyCount]
inc a
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd0d8], a
cp b
jr z, .asm_4ab7e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
ld c, a
@@ -527,7 +527,7 @@
ret
.asm_4ab6d
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd0d8], a
.asm_4ab73
ld de, SFX_READ_TEXT_2
@@ -539,7 +539,7 @@
.asm_4ab7e
ld a, $1
ld [wd018], a
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
cp $2
jr z, .asm_4ab73
ld de, SFX_READ_TEXT_2
@@ -593,38 +593,38 @@
jr z, .asm_4abd5
ld a, [PartyCount]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
jr .asm_4ac29
.asm_4abd5
bit 6, a
jr z, .asm_4abeb
- ld a, [MenuSelection2]
- ld [MenuSelection2], a
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
and a
jr nz, .asm_4ac29
ld a, [PartyCount]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jr .asm_4ac29
.asm_4abeb
bit 7, a
jr z, .asm_4ac08
- ld a, [MenuSelection2]
- ld [MenuSelection2], a
+ ld a, [wMenuCursorY]
+ ld [wMenuCursorY], a
ld a, [PartyCount]
rept 2
inc a
endr
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr nz, .asm_4ac29
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jr .asm_4ac29
.asm_4ac08
@@ -634,13 +634,13 @@
jr z, .asm_4ac56
.asm_4ac10
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [PartyCount]
inc a
cp b
jr nz, .asm_4ac29
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
cp $1
jr z, .asm_4ac26
ld a, $1
@@ -647,7 +647,7 @@
jr .asm_4ac29
.asm_4ac26
- ld [wcfaa], a
+ ld [wMenuCursorX], a
.asm_4ac29
hlcoord 0, 1
@@ -662,7 +662,7 @@
dec a
jr nz, .asm_4ac3b
ld [hl], $7f
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [PartyCount]
inc a
@@ -669,7 +669,7 @@
cp b
jr z, .asm_4ac54
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
.asm_4ac54
scf
@@ -747,10 +747,10 @@
ld [wMenuBorderLeftCoord], a
ld a, $1
ld [wMenuCursorBuffer], a
- call Function1c10
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 6, [hl]
- call Function1bc9
+ call StaticMenuJoypad
ld de, SFX_READ_TEXT_2
call PlaySFX
ld a, [hJoyPressed]
@@ -767,7 +767,7 @@
ld a, [wd019]
bit 1, a
jr nz, .asm_4ad0e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, Function4ad17
cp $2
@@ -777,7 +777,7 @@
jr .asm_4acf3
.asm_4ad0e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, Function4ad56
jr .asm_4acf3
@@ -927,9 +927,9 @@
ret z
ld a, [PartyCount]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
+ ld [wMenuCursorX], a
ld a, [wd019]
res 0, a
ld [wd019], a
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -251,7 +251,7 @@
call BackUpTiles
call Function8923c
call Function89209
- call InterpretMenu2
+ call VerticalMenu
push af
ld c, $a
call DelayFrames
@@ -259,7 +259,7 @@
call Function8920f
pop af
jr c, .done
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .done
and a
@@ -2198,8 +2198,8 @@
pop af
ld [wMenuCursorBuffer], a
call Function8923c
- call Function1c89
- call Function1c10
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 7, [hl]
ret
@@ -2224,7 +2224,7 @@
push hl
call _hl_
call Function89dab
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
call Function891ab
pop af
@@ -2239,7 +2239,7 @@
Function89dab: ; 89dab (22:5dab)
call Function8923c
- callba Function241ba
+ callba MobileMenuJoypad
call Function8923c
ld a, c
ld hl, wcfa8
@@ -2255,7 +2255,7 @@
call PlayClickSFX
ld a, [wcfa3]
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp c
jr z, .asm_89dd9
call Function1bee
@@ -2275,7 +2275,7 @@
.asm_89dea
call Function8a31c
jr z, .asm_89dfd
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
push bc
ld hl, Jumptable_89e04
@@ -2784,7 +2784,7 @@
call Function8923c
call Function8a17b
jr c, .asm_8a16b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd030], a
dec d
jr z, .asm_8a140
@@ -2867,7 +2867,7 @@
ld c, $12
call TextBox
hlcoord 1, 14
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld de, Strings_8a1cc
dec a
ld c, a
@@ -3054,8 +3054,8 @@
ld a, c
ld [wMenuCursorBuffer], a
ld [MenuSelection], a
- call Function1c89
- call Function1c10
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 7, [hl]
.asm_8a34e
@@ -3086,7 +3086,7 @@
ret
Function8a383: ; 8a383 (22:6383)
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
ld hl, wcfa8
and [hl]
@@ -3106,7 +3106,7 @@
ret
Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, wd002
ld e, a
@@ -3834,7 +3834,7 @@
ld [wd0e3], a
.asm_8a943
call Function8b7bd
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
and $1
jr nz, .asm_8a953
ld a, c
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -830,7 +830,7 @@
call Function89209
call HandleScrollingMenu
call Function8920f
- ld a, [wcf73]
+ ld a, [wMenuJoypad]
cp $2
jr z, .asm_8b823
cp $20
@@ -854,7 +854,7 @@
.asm_8b824
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wd030], a
ld a, [wMenuScrollPosition]
ld [wd031], a
@@ -880,7 +880,7 @@
Function8b84b: ; 8b84b
ld [wMenuScrollPosition], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMenuCursorBuffer], a
ret
; 8b855
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -89,7 +89,7 @@
ld [hMapAnims], a
ld [hLCDStatCustom], a
ld a, $1
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
ret
@@ -98,7 +98,7 @@
Function1000a4: ; 1000a4
di
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
xor a
ld [hVBlank], a
@@ -173,7 +173,7 @@
and $13
ld [rIE], a
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
@@ -818,8 +818,8 @@
Function100513: ; 100513
call Function3f7c
- call Function1c89
- call Function1c10
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 7, [hl]
ret
@@ -858,12 +858,12 @@
; 10054d
Function10054d: ; 10054d
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
ld hl, wcfa8
and [hl]
ret z
- call Function1ff8
+ call MenuClickSound
bit 0, a
jr nz, .asm_100565
bit 1, a
@@ -913,7 +913,7 @@
ret z
jr nc, .asm_1005a6
xor a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_1005a6
call ExitMenu
@@ -965,7 +965,7 @@
ret z
jr nc, .asm_1005f0
xor a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_1005f0
call ExitMenu
ld a, [wcd26]
@@ -1823,7 +1823,7 @@
call Function100b7a
.asm_100b48
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba Function10402d
call Function100e2d
@@ -1832,7 +1832,7 @@
ld a, [wcfa8]
and c
jr z, .asm_100b48
- callba Function24098
+ callba Mobile_GetMenuSelection
ret
.asm_100b6b
@@ -1849,11 +1849,11 @@
ld hl, CopyMenuData2
ld a, [wcf94]
rst FarCall
- callba Function24085
+ callba Draw2DMenu
callba MobileTextBorder
call UpdateSprites
call ApplyTilemap
- callba Function2411a
+ callba Init2DMenuCursorPosition
ld hl, wcfa5
set 7, [hl]
ret
@@ -1884,7 +1884,7 @@
callba MoveInfoBox
.asm_100bd1
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba Function10402d
call Function100e2d
@@ -1903,16 +1903,16 @@
jr .asm_100bd1
.asm_100bff
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
and a
jp nz, .asm_100bcb
ld a, [wNumMoves]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .asm_100bcb
.asm_100c10
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [wNumMoves]
rept 2
@@ -1921,11 +1921,11 @@
cp b
jp nz, .asm_100bcb
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .asm_100bcb
.asm_100c25
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurMoveNum], a
ld a, $1
@@ -1933,10 +1933,10 @@
ret
.asm_100c30
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurMoveNum], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -1951,7 +1951,7 @@
dec a
cp c
jr z, .asm_100c63
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -1999,7 +1999,7 @@
ld [wcfa3], a
ld a, [CurMoveNum]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
; 100cad
@@ -2014,7 +2014,7 @@
res 6, [hl]
.asm_100cc0
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
callba Function10402d
@@ -2028,7 +2028,7 @@
ld a, [PartyCount]
inc a
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr z, .asm_100d17
ld [wd0d8], a
@@ -2036,7 +2036,7 @@
ld b, a
bit 1, b
jr nz, .asm_100d17
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
ld c, a
@@ -2068,7 +2068,7 @@
res 6, [hl]
.asm_100d30
call Function100dd2
- callba Function241ba
+ callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
callba Function10402d
@@ -2107,10 +2107,10 @@
ld [hBGMapMode], a
call MenuBox
call UpdateSprites
- call Function1c89
+ call PlaceVerticalMenuItems
call WaitBGMap
call CopyMenuData2
- call Function1c10
+ call InitVerticalMenuCursor
ld hl, wcfa5
set 6, [hl]
ret
@@ -4186,7 +4186,7 @@
call Function1013dd
ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_101b51
ld a, $2
@@ -4239,7 +4239,7 @@
call Function1013dd
ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_101bbc
ld a, $1
@@ -4283,7 +4283,7 @@
call Function1013dd
ld a, 0
ld [wcd26], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_101c0b
ld a, $2a
@@ -5375,7 +5375,7 @@
call Function102d9a
call Function102dd3
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
Function1023a1: ; 1023a1
call Function102283
@@ -5721,7 +5721,7 @@
set 2, [hl]
callba Function1009f3
ret c
- callba Function241ba
+ callba MobileMenuJoypad
ld a, [wcfa8]
and c
ret z
@@ -5741,7 +5741,7 @@
ret
.asm_10262e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [OTPartyCount]
cp b
@@ -5748,13 +5748,13 @@
ret nz
call Function1bf7
ld a, [PartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1d
ld [wcd49], a
ret
.asm_102646
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
ret nz
ld a, $23
@@ -5783,7 +5783,7 @@
set 2, [hl]
callba Function1009f3
ret c
- callba Function241ba
+ callba MobileMenuJoypad
ld a, [wcfa8]
and c
ret z
@@ -5803,7 +5803,7 @@
ret
.asm_10269a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret nz
call Function1bf7
@@ -5812,7 +5812,7 @@
ret
.asm_1026a8
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
ld a, [PartyCount]
cp b
@@ -5872,7 +5872,7 @@
hlcoord 9, 17
ld [hl], $7f
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1d
ld [wcd49], a
ret
@@ -5881,7 +5881,7 @@
hlcoord 9, 17
ld [hl], $7f
ld a, [OTPartyCount]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1f
ld [wcd49], a
ret
@@ -5992,7 +5992,7 @@
asm_1027d1:
ld hl, wcd4b
set 3, [hl]
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd4c], a
ld a, $7
ld [wcd49], a
@@ -6023,7 +6023,7 @@
; 102814
Function102814: ; 102814
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd52], a
ld a, [wcd4c]
dec a
@@ -6075,7 +6075,7 @@
call Function1028fc
ret nc
ld a, [wcd52]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [wcd51]
cp $8
jr nz, .asm_102886
@@ -6107,7 +6107,7 @@
Function1028ab: ; 1028ab
ld a, [wcd52]
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Function102f15
ld hl, wcd4b
set 1, [hl]
@@ -6325,7 +6325,7 @@
Function1029fe: ; 1029fe
callba Function1009f3
ret c
- callba Function241ba
+ callba MobileMenuJoypad
ld a, c
ld hl, wcfa8
and [hl]
@@ -6333,7 +6333,7 @@
push af
call ExitMenu
pop af
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_102a21
ld a, $1
@@ -6484,12 +6484,12 @@
Function102b4e: ; 102b4e
ld a, $1
ld [MonType], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld de, Unknown_102b73
call InitMenu3
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [OTPartyCount]
ld [wcfa3], a
ret
@@ -6497,7 +6497,7 @@
Function102b68: ; 102b68 ; unreferenced
xor a
- ld hl, wcf71
+ ld hl, wWindowStackPointer
ld bc, $10
call ByteFill
ret
@@ -6509,12 +6509,12 @@
Function102b7b: ; 102b7b
xor a
ld [MonType], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
push af
ld de, Unknown_102b94
call InitMenu3
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, [PartyCount]
ld [wcfa3], a
ret
@@ -6534,7 +6534,7 @@
; 102bac
Function102bac: ; 102bac
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld [CurPartyMon], a
call LowVolume
@@ -6542,7 +6542,7 @@
callba Function4dc8f
ld a, [CurPartyMon]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call Function102d9a
call ClearPalettes
call DelayFrame
@@ -7737,10 +7737,10 @@
ld [wMenuCursorBuffer], a
.skip_load
- call InterpretMenu2
+ call VerticalMenu
call WriteBackup
jr c, .pressed_b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [ScriptVar], a
ld c, a
ld a, [wdc40]
@@ -7825,10 +7825,10 @@
jr c, .asm_1036f4
ld hl, MenuDataHeader_103747
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
call ExitMenu
jr c, .asm_1036f4
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr z, .asm_1036d9
cp $2
--- a/misc/mobile_41.asm
+++ b/misc/mobile_41.asm
@@ -960,7 +960,7 @@
call Function3e32
xor a
ld [hMobile], a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld a, [wcd25]
inc a
ld [wcd25], a
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -486,7 +486,7 @@
ld a, $f
ld [rIE], a
ld a, $1
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ei
callba MobileFunc_106462
@@ -516,7 +516,7 @@
Function118452: ; 118452
di
xor a
- ld [hFFC9], a
+ ld [hMobileReceive], a
ld [hMobile], a
ld [hVBlank], a
call NormalSpeed
@@ -5961,7 +5961,7 @@
call ClearSprites
call ClearTileMap
callba Function17c000
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wcd82], a
dec a
ld [hObjectStructIndexBuffer], a
@@ -6035,7 +6035,7 @@
callba ReloadMapPart
call Function11ad8a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afcc
call Function11afb7
@@ -6062,13 +6062,13 @@
jr .asm_11ae2e
.asm_11ade6
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11adf4
.asm_11aded
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $4
ret z
@@ -6078,7 +6078,7 @@
ld hl, Unknown_11afcc
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afcc
call Function11afb7
ret
@@ -6085,7 +6085,7 @@
.asm_11ae06
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld hl, wcd30
ld [hl], a
@@ -6092,7 +6092,7 @@
and a
jr z, .asm_11ae28
hlcoord 2, 14
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11ae23
call Function11b272
@@ -6152,7 +6152,7 @@
callba ReloadMapPart
call Function11ad8a
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
@@ -6183,13 +6183,13 @@
jr .asm_11aef7
.asm_11aec1
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11aecf
.asm_11aec8
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $3
ret z
@@ -6199,7 +6199,7 @@
ld hl, Unknown_11afd2
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
ret
@@ -6206,7 +6206,7 @@
.asm_11aee1
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11aeb4
ld a, [wcd4b]
@@ -6243,7 +6243,7 @@
callba ReloadMapPart
call Function11ad8a
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
@@ -6274,13 +6274,13 @@
jr .asm_11afaa
.asm_11af77
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ret z
jr .asm_11af85
.asm_11af7e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
inc a
cp $3
ret z
@@ -6290,7 +6290,7 @@
ld hl, Unknown_11afd2
call Function11afbb
pop af
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, Unknown_11afd2
call Function11afb7
ret
@@ -6297,7 +6297,7 @@
.asm_11af97
call PlayClickSFX
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $2
jr z, .asm_11af6a
ld a, $6
@@ -6320,7 +6320,7 @@
ld e, $7f
asm_11afbd:
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -1100,7 +1100,7 @@
call Function16d759
call Function16d76a
jr nc, .asm_16d758
- callba Function24270
+ callba _2DMenuInterpretJoypad
jr c, .asm_16d758
ld a, [wcfa5]
bit 7, a
@@ -1141,7 +1141,7 @@
; 16d77a
Function16d77a: ; 16d77a
- ld hl, wcfac
+ ld hl, wCursorCurrentTile
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1148,7 +1148,7 @@
ld a, [hl]
cp $1f
jr nz, .asm_16d792
- ld a, [wcfab]
+ ld a, [wCursorOffCharacter]
ld [hl], a
push hl
push bc
@@ -1168,7 +1168,7 @@
swap a
and $f
ld c, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
xor a
dec b
@@ -1184,7 +1184,7 @@
ld a, [wcfa7]
and $f
ld c, a
- ld a, [wcfaa]
+ ld a, [wMenuCursorX]
ld b, a
xor a
dec b
@@ -1200,7 +1200,7 @@
ld a, [hl]
cp $1f
jr z, .asm_16d7de
- ld [wcfab], a
+ ld [wCursorOffCharacter], a
ld [hl], $1f
push hl
push bc
@@ -1212,9 +1212,9 @@
.asm_16d7de
ld a, l
- ld [wcfac], a
+ ld [wCursorCurrentTile], a
ld a, h
- ld [wcfad], a
+ ld [wCursorCurrentTile + 1], a
ret
; 16d7e7
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -461,20 +461,20 @@
; 17d246
Function17d246: ; 17d246
- call InterpretMenu2
+ call VerticalMenu
jr c, .Exit
ld a, [ScriptVar]
cp $5
- jr nz, .UseMenuSelection2
- ld a, [MenuSelection2]
+ jr nz, .UsewMenuCursorY
+ ld a, [wMenuCursorY]
cp $3
ret z
- jr c, .UseMenuSelection2
+ jr c, .UsewMenuCursorY
dec a
jr .LoadToScriptVar
-.UseMenuSelection2
- ld a, [MenuSelection2]
+.UsewMenuCursorY
+ ld a, [wMenuCursorY]
.LoadToScriptVar
ld [ScriptVar], a
@@ -1933,16 +1933,16 @@
ld [wEnemyGoesFirst], a
ld hl, wc708
call LoadMenuDataHeader
- call InterpretMenu2
+ call VerticalMenu
jr nc, .asm_17dc6e
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
.asm_17dc6e
call WriteBackup
pop af
ld [rSVBK], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1
jr nz, .asm_17dc85
ld a, [$c68a]
--- a/wram.asm
+++ b/wram.asm
@@ -1484,19 +1484,15 @@
Requested1bppDest:: ; cf6f
ds 2
-; something to do with menu
-wcf71:: ds 1
-wcf72:: ds 1
-wMenuJoypad::
-wcf73:: ds 1
-MenuSelection:: ; cf74
- ds 1
+wWindowStackPointer:: dw ; cf71
+wMenuJoypad:: ds 1 ; cf73
+MenuSelection:: ds 1 ; cf74
wcf75:: ds 1
wcf76:: ds 1
wCurrPocketCursorPosition::
wcf77:: ds 1
-wcf78:: ds 9
+wWindowStackSize:: ds 9
; menu data header
wMenuDataHeader:: ; cf81
@@ -1520,13 +1516,16 @@
; bit 4: ????
; bit 3: ????
; bit 2: ????
-; bit 1: ????
-; bit 0: ????
+; bit 1: Enable Select button
+; bit 0: Disable B button
wMenuData2Items:: ds 1
wMenuData2IndicesPointer::
+wMenuData2Spacing::
wcf93:: ds 1
+wMenuData2_2DMenuItemStringsBank::
wcf94:: ds 1
+wMenuData2_2DMenuItemStringsAddr::
wMenuData2DisplayFunctionPointer::
wMenuData2Bank::
wcf95:: ds 1 ; bank
@@ -1533,26 +1532,36 @@
wMenuData2Addr::
wcf96:: ds 1 ; addr lo
wMenuData2PointerTableAddr::
+wMenuData2_2DMenuFunctionBank::
wcf97:: ds 1 ; addr hi
+wMenuData2_2DMenuFunctionAddr::
wcf98:: ds 3
wcf9b:: ds 3
wcf9e:: ds 3
wMenuData2End::
wMenuData3::
+w2DMenuCursorInitY::
wcfa1:: ds 1
+w2DMenuCursorInitX::
wcfa2:: ds 1
+w2DMenuNumRows::
wcfa3:: ds 1
+w2DMenuNumCols::
wcfa4:: ds 1
-wcfa5:: ds 1 ; dynamic menu flags?
-wcfa6:: ds 1 ; dynamic menu flags?
+w2DMenuFlags1::
+wcfa5:: ds 1
+w2DMenuFlags2::
+wcfa6:: ds 1
+w2DMenuFlags3::
wcfa7:: ds 1
+w2DMenuFlags4::
wcfa8:: ds 1
wMenuData3End::
-MenuSelection2:: ds 1
-wcfaa:: ds 1
-wcfab:: ds 1
-wcfac:: ds 1
-wcfad:: ds 4
+wMenuCursorY:: ds 1
+wMenuCursorX:: ds 1
+wCursorOffCharacter:: ds 1
+wCursorCurrentTile:: ds 2
+ ds 3
OverworldDelay:: ; cfb1
ds 1
@@ -3257,5 +3266,5 @@
INCLUDE "sram.asm"
SECTION "WRAM 7", WRAMX, BANK [7]
-w7_d000:: ds $1000 - 1
-w7_dfff:: ds 1
+wWindowStack:: ds $1000 - 1
+wWindowStackBottom:: ds 1