diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/billspc.asm | 2 | ||||
-rwxr-xr-x | engine/decorations.asm | 20 | ||||
-rwxr-xr-x | engine/intro_menu.asm | 2 | ||||
-rwxr-xr-x | engine/link.asm | 10 | ||||
-rwxr-xr-x | engine/mail.asm | 2 | ||||
-rwxr-xr-x | engine/main_menu.asm | 6 | ||||
-rwxr-xr-x | engine/mart.asm | 8 | ||||
-rw-r--r-- | engine/pack.asm | 24 | ||||
-rw-r--r-- | engine/party_menu.asm | 2 | ||||
-rwxr-xr-x | engine/pokecenter_pc.asm | 4 | ||||
-rw-r--r-- | engine/scripting.asm | 2 | ||||
-rwxr-xr-x | engine/scrolling_menu.asm | 544 | ||||
-rw-r--r-- | engine/specials.asm | 2 | ||||
-rwxr-xr-x | engine/startmenu.asm | 4 | ||||
-rwxr-xr-x | engine/switch_items.asm | 4 | ||||
-rwxr-xr-x | engine/tmhm2.asm | 4 |
16 files changed, 592 insertions, 48 deletions
diff --git a/engine/billspc.asm b/engine/billspc.asm index 4363cce1d..14f0509b2 100755 --- a/engine/billspc.asm +++ b/engine/billspc.asm @@ -2323,7 +2323,7 @@ _ChangeBox: ; e35aa (38:75aa) hlcoord 0, 4 lb bc, 8, 9 call TextBox - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuJoypad] cp B_BUTTON jr z, .done diff --git a/engine/decorations.asm b/engine/decorations.asm index 794552a70..94c2a9413 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -11,16 +11,16 @@ _KrisDecorationMenu: ; 0x2675c ld hl, .MenuDataHeader call LoadMenuDataHeader xor a - ld [wd1ee], a + ld [Buffer5], a ld a, $1 - ld [wd1ef], a + ld [Buffer6], a .top_loop - ld a, [wd1ef] + ld a, [Buffer6] ld [wMenuCursorBuffer], a call .FindCategoriesWithOwnedDecos call DoNthMenu ld a, [wMenuCursorY] - ld [wd1ef], a + ld [Buffer6], a jr c, .exit_menu ld a, [MenuSelection] ld hl, .pointers @@ -31,7 +31,7 @@ _KrisDecorationMenu: ; 0x2675c call ExitMenu pop af ld [wcf76], a - ld a, [wd1ee] + ld a, [Buffer5] ld c, a ret ; 0x2679a @@ -400,7 +400,7 @@ PopulateDecoCategoryMenu: ; 2695b call InitScrollingMenu xor a ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuJoypad] cp 2 jr z, .no_action_2 @@ -803,7 +803,7 @@ DecoAction_TrySetItUp: ; 26d2d call DecoAction_SetItUp jr c, .failed ld a, 1 - ld [wd1ee], a + ld [Buffer5], a pop hl ld a, [MenuSelection] ld [hl], a @@ -865,7 +865,7 @@ DecoAction_TryPutItAway: ; 26d86 jr z, .nothingthere ; Put it away. ld a, $1 - ld [wd1ee], a + ld [Buffer5], a ld a, [Buffer1] ld [MenuSelection], a ld hl, StringBuffer3 @@ -889,7 +889,7 @@ DecoAction_setupornament: ; 26db3 call DecoAction_SetItUp_Ornament jr c, .cancel ld a, $1 - ld [wd1ee], a + ld [Buffer5], a jr DecoAction_FinishUp_Ornament .cancel @@ -981,7 +981,7 @@ DecoAction_PutItAway_Ornament: ; 26e46 ld hl, StringBuffer3 call GetDecorationName ld a, $1 - ld [wd1ee], a + ld [Buffer5], a xor a ld [wd1ec], a ld hl, DecoText_PutAwayTheDeco diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index ca80665b4..6c26f3a0c 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -545,7 +545,7 @@ Continue_LoadMenuHeader: ; 5ebf ld hl, .MenuDataHeader_NoDex .pokedex_header - call Function1e35 + call _OffsetMenuDataHeader call MenuBox call PlaceVerticalMenuItems ret diff --git a/engine/link.asm b/engine/link.asm index 2083c9fb6..69554611b 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1271,7 +1271,7 @@ Function28835: ; 28835 jp nz, Function2891c xor a ld [MonType], a - call Function1bf7 + call HideCursor push hl push bc ld bc, NAME_LENGTH @@ -1333,7 +1333,7 @@ Function288c5: ; 288c5 jp nz, Function2891c ld a, $1 ld [MonType], a - call Function1bf7 + call HideCursor push hl push bc ld bc, NAME_LENGTH @@ -1353,7 +1353,7 @@ Function288c5: ; 288c5 ld a, [PartyCount] cp b jr nz, Function2891c - call Function1bf7 + call HideCursor push hl push bc ld bc, NAME_LENGTH @@ -1463,7 +1463,7 @@ Function28926: ; 28926 jp Function2888b .asm_289fe - call Function1bee + call PlaceHollowCursor pop af ld [wMenuCursorY], a dec a @@ -1552,7 +1552,7 @@ Function28ac9: ; 28ac9 ld a, [wMenuCursorY] cp $1 jp nz, Function2891c - call Function1bf7 + call HideCursor push hl push bc ld bc, NAME_LENGTH diff --git a/engine/mail.asm b/engine/mail.asm index f8619c9f6..4c0af5f9b 100755 --- a/engine/mail.asm +++ b/engine/mail.asm @@ -399,7 +399,7 @@ MailboxPC: ; 0x44806 ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [OBPals + 8 * 6], a ld a, [wMenuCursorY] diff --git a/engine/main_menu.asm b/engine/main_menu.asm index 888f5a9a5..306551a88 100755 --- a/engine/main_menu.asm +++ b/engine/main_menu.asm @@ -530,7 +530,7 @@ endr Function4a098: ; 4a098 (12:6098) ld a, $2 call MenuClickSound - call Function1bee + call PlaceHollowCursor call WaitBGMap call LoadStandardMenuDataHeader callba Function89de0 @@ -749,7 +749,7 @@ Function4a28a: ; 4a28a (12:628a) lb bc, 6, 1 ld a, " " call Function4a6d8 - call Function1bee + call PlaceHollowCursor call WaitBGMap call LoadStandardMenuDataHeader ld a, $5 @@ -786,7 +786,7 @@ Function4a28a: ; 4a28a (12:628a) scf ret .asm_4a2f0 - call Function1bee + call PlaceHollowCursor ld hl, UnknownText_0x4a358 call PrintText hlcoord 14, 7 diff --git a/engine/mart.asm b/engine/mart.asm index 7673df5af..8852e104b 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -470,7 +470,7 @@ endr BuyMenuLoop: ; 15cef - callba PlaceMoneyTopRightOW + callba PlaceMoneyTopRight call UpdateSprites ld hl, MenuDataHeader_Buy call CopyMenuDataHeader @@ -478,7 +478,7 @@ BuyMenuLoop: ; 15cef ld [wMenuCursorBuffer], a ld a, [wd045 + 1] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wd045 + 1], a ld a, [wMenuCursorY] @@ -875,7 +875,7 @@ Function15ee0: ; 15ee0 .okay_to_sell ld hl, Text_Mart_SellHowMany call PrintText - callba PlaceMoneyTopRightMenu + callba PlaceMoneyAtTopLeftOfTextbox callba SelectQuantityToSell call ExitMenu jr c, .declined @@ -899,7 +899,7 @@ Function15ee0: ; 15ee0 ld hl, Text_Mart_SoldForAmount call PrintTextBoxText call PlayTransactionSound - callba PlaceMoneyBottomLeftOW + callba PlaceMoneyBottomLeft call JoyWaitAorB .declined diff --git a/engine/pack.asm b/engine/pack.asm index 33d44a745..3168b817a 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -69,7 +69,7 @@ Pack: ; 10000 ld [wMenuCursorBuffer], a ld a, [wItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -97,7 +97,7 @@ Pack: ; 10000 ld [wMenuCursorBuffer], a ld a, [wKeyItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wKeyItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -230,7 +230,7 @@ Pack: ; 10000 ld [wMenuCursorBuffer], a ld a, [wBallsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wBallsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -528,7 +528,7 @@ TossMenu: ; 10364 pop af jr c, .finish ld hl, NumItems - ld a, [ItemCountBuffer] + ld a, [CurItemQuantity] call TossItem call Pack_GetItemName ld hl, Text_ThrewAway @@ -577,7 +577,7 @@ RegisterItem: ; 103c2 rrca and $c0 ld b, a - ld a, [ItemCountBuffer] + ld a, [CurItemQuantity] inc a and $3f or b @@ -734,7 +734,7 @@ BattlePack: ; 10493 ld [wMenuCursorBuffer], a ld a, [wItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -762,7 +762,7 @@ BattlePack: ; 10493 ld [wMenuCursorBuffer], a ld a, [wKeyItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wKeyItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -813,7 +813,7 @@ BattlePack: ; 10493 ld [wMenuCursorBuffer], a ld a, [wBallsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wBallsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -1018,7 +1018,7 @@ DepositSellPack: ; 106be ld [wMenuCursorBuffer], a ld a, [wItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -1034,7 +1034,7 @@ DepositSellPack: ; 106be ld [wMenuCursorBuffer], a ld a, [wKeyItemsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wKeyItemsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -1059,7 +1059,7 @@ DepositSellPack: ; 106be ld [wMenuCursorBuffer], a ld a, [wBallsPocketScrollPosition] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wBallsPocketScrollPosition], a ld a, [wMenuCursorY] @@ -1243,7 +1243,7 @@ TutorialPack: ; 107bb call InitPocket pop hl call CopyMenuDataHeader - call HandleScrollingMenu + call ScrollingMenu ret Pack_JumptableNext: ; 10866 (4:4866) diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 4aa71ecf7..4df2c4251 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -739,7 +739,7 @@ PartyMenuAttributes: ; 5044f PartyMenuSelect: ; 0x50457 ; sets carry if exitted menu. call StaticMenuJoypad - call Function1bee + call PlaceHollowCursor ld a, [PartyCount] inc a ld b, a diff --git a/engine/pokecenter_pc.asm b/engine/pokecenter_pc.asm index 8f18e8814..acfd06783 100755 --- a/engine/pokecenter_pc.asm +++ b/engine/pokecenter_pc.asm @@ -591,7 +591,7 @@ Function15985: ; 0x15985 ld [wMenuCursorBuffer], a ld a, [wd0dd] ld [wMenuScrollPosition], a - call HandleScrollingMenu + call ScrollingMenu ld a, [wMenuScrollPosition] ld [wd0dd], a ld a, [wMenuCursorY] @@ -636,7 +636,7 @@ Function15985: ; 0x15985 .asm_159fb callba Function24706 - call Function1bee + call PlaceHollowCursor and a ret diff --git a/engine/scripting.asm b/engine/scripting.asm index 83d4e8a04..a6499dcdb 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2385,7 +2385,7 @@ Script_takeitem: ; 977f0 call GetScriptByte ld [wItemQuantityChangeBuffer], a ld a, -1 - ld [ItemCountBuffer], a + ld [CurItemQuantity], a ld hl, NumItems call TossItem ret nc diff --git a/engine/scrolling_menu.asm b/engine/scrolling_menu.asm new file mode 100755 index 000000000..c5a671ce6 --- /dev/null +++ b/engine/scrolling_menu.asm @@ -0,0 +1,544 @@ +_InitScrollingMenu:: ; 245af + xor a + ld [wMenuJoypad], a + ld [hBGMapMode], a + inc a + ld [hInMenu], a + call InitScrollingMenuCursor + call ScrollingMenu_InitFlags + call ScrollingMenu_ValidateSwitchItem + call ScrollingMenu_InitDisplay + call ApplyTilemap + xor a + ld [hBGMapMode], a + ret +; 245cb + +_ScrollingMenu:: ; 245cb +.loop + call ScrollingMenuJoyAction + jp c, .exit + call z, .zero + jr .loop +; 245d6 + +.exit: ; 245d6 + call MenuClickSound + ld [wMenuJoypad], a + ld a, 0 + ld [hInMenu], a + ret +; 245e1 + +.zero: ; 245e1 + call ScrollingMenu_InitDisplay + ld a, 1 + ld [hBGMapMode], a + ld c, 3 + call DelayFrames + xor a + ld [hBGMapMode], a + ret +; 245f1 + +ScrollingMenu_InitDisplay: ; 245f1 + xor a + ld [hBGMapMode], a + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call ScrollingMenu_UpdateDisplay + call ScrollingMenu_PlaceCursor + call ScrollingMenu_CheckCallFunction3 + pop af + ld [Options], a + ret +; 24609 + +ScrollingMenuJoyAction: ; 24609 +.loop + call ScrollingMenuJoypad + ld a, [hJoyLast] + and D_PAD + ld b, a + ld a, [hJoyPressed] + and BUTTONS + or b + bit 0, a ; A + jp nz, .a_button + bit 1, a ; B + jp nz, .b_button + bit 2, a ; Select + jp nz, .select + bit 3, a ; Start + jp nz, .start + bit 4, a ; Right + jp nz, .d_right + bit 5, a ; Left + jp nz, .d_left + bit 6, a ; Up + jp nz, .d_up + bit 7, a ; Down + jp nz, .d_down + jr .loop +; 24640 + +.unreferenced: ; unreferenced + ld a, -1 + and a + ret +; 24644 + +.a_button: ; 24644 + call PlaceHollowCursor + ld a, [wMenuCursorY] + dec a + call ScrollingMenu_GetListItemCoordAndFunctionArgs + ld a, [MenuSelection] + ld [CurItem], a + ld a, [MenuSelectionQuantity] + ld [wItemQuantityBuffer], a + call ScrollingMenu_GetCursorPosition + dec a + ld [wScrollingMenuCursorPosition], a + ld [CurItemQuantity], a + ld a, [MenuSelection] + cp -1 + jr z, .b_button + ld a, A_BUTTON + scf + ret +; 2466f + +.b_button: ; 2466f + ld a, B_BUTTON + scf + ret +; 24673 + +.select: ; 24673 + ld a, [wMenuData2Flags] + bit 7, a + jp z, xor_a_dec_a + ld a, [wMenuCursorY] + dec a + call ScrollingMenu_GetListItemCoordAndFunctionArgs + ld a, [MenuSelection] + cp -1 + jp z, xor_a_dec_a + call ScrollingMenu_GetCursorPosition + dec a + ld [wScrollingMenuCursorPosition], a + ld a, SELECT + scf + ret +; 24695 + +.start: ; 24695 + ld a, [wMenuData2Flags] + bit 6, a + jp z, xor_a_dec_a + ld a, START + scf + ret +; 246a1 + +.d_left: ; 246a1 + ld hl, w2DMenuFlags2 + bit 7, [hl] + jp z, xor_a_dec_a + ld a, [wMenuData2Flags] + bit 3, a + jp z, xor_a_dec_a + ld a, D_LEFT + scf + ret +; 246b5 + +.d_right: ; 246b5 + ld hl, w2DMenuFlags2 + bit 7, [hl] + jp z, xor_a_dec_a + ld a, [wMenuData2Flags] + bit 2, a + jp z, xor_a_dec_a + ld a, D_RIGHT + scf + ret +; 246c9 + +.d_up: ; 246c9 + ld hl, w2DMenuFlags2 + bit 7, [hl] + jp z, xor_a + ld hl, wMenuScrollPosition + ld a, [hl] + and a + jr z, .xor_dec_up + dec [hl] + jp xor_a + +.xor_dec_up + jp xor_a_dec_a +; 246df + +.d_down: ; 246df + ld hl, w2DMenuFlags2 + bit 7, [hl] + jp z, xor_a + ld hl, wMenuScrollPosition + ld a, [wMenuData2_ScrollingMenuHeight] + add [hl] + ld b, a + ld a, [wScrollingMenuListSize] + cp b + jr c, .xor_dec_down + inc [hl] + jp xor_a + +.xor_dec_down + jp xor_a_dec_a +; 246fc + +ScrollingMenu_GetCursorPosition: ; 246fc + ld a, [wMenuScrollPosition] + ld c, a + ld a, [wMenuCursorY] + add c + ld c, a + ret +; 24706 + +Function24706: ; 24706 (9:4706) + call MenuBoxCoord2Tile + ld de, SCREEN_WIDTH + add hl, de + ld de, 2 * SCREEN_WIDTH + ld a, [wMenuData2_ScrollingMenuHeight] +.asm_24713 + ld [hl], " " + add hl, de + dec a + jr nz, .asm_24713 + ret + +InitScrollingMenuCursor: ; 2471a + ld hl, wMenuData2_ItemsPointerAddr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wMenuData2_ItemsPointerBank] + call GetFarByte + ld [wScrollingMenuListSize], a + ld a, [wMenuData2_ScrollingMenuHeight] + ld c, a + ld a, [wMenuScrollPosition] + add c + ld c, a + ld a, [wScrollingMenuListSize] + inc a + cp c + jr nc, .skip + ld a, [wMenuData2_ScrollingMenuHeight] + ld c, a + ld a, [wScrollingMenuListSize] + inc a + sub c + jr nc, .store + xor a + +.store + ld [wMenuScrollPosition], a + +.skip + ld a, [wMenuScrollPosition] + ld c, a + ld a, [wMenuCursorBuffer] + add c + ld b, a + ld a, [wScrollingMenuListSize] + inc a + cp b + jr c, .asm_2475a + jr nc, .asm_24763 + +.asm_2475a + xor a + ld [wMenuScrollPosition], a + ld a, $1 + ld [wMenuCursorBuffer], a + +.asm_24763 + ret +; 24764 + +ScrollingMenu_InitFlags: ; 24764 + ld a, [wMenuData2Flags] + ld c, a + ld a, [wScrollingMenuListSize] + ld b, a + ld a, [wMenuBorderTopCoord] + add $1 + ld [w2DMenuCursorInitY], a + ld a, [wMenuBorderLeftCoord] + add $0 + ld [w2DMenuCursorInitX], a + ld a, [wMenuData2_ScrollingMenuHeight] + cp b + jr c, .asm_24786 + jr z, .asm_24786 + ld a, b + inc a + +.asm_24786 + ld [w2DMenuNumRows], a + ld a, $1 + ld [w2DMenuNumCols], a + ld a, $8c + bit 2, c + jr z, .asm_24796 + set 0, a + +.asm_24796 + bit 3, c + jr z, .asm_2479c + set 1, a + +.asm_2479c + ld [w2DMenuFlags1], a + xor a + ld [w2DMenuFlags2], a + ld a, $20 + ld [w2DMenuFlags3], a + ld a, $c3 + bit 7, c + jr z, .asm_247b0 + add $4 + +.asm_247b0 + bit 6, c + jr z, .asm_247b6 + add $8 + +.asm_247b6 + ld [w2DMenuFlags4], a + ld a, [w2DMenuNumRows] + ld b, a + ld a, [wMenuCursorBuffer] + and a + jr z, .asm_247c8 + cp b + jr z, .asm_247ca + jr c, .asm_247ca + +.asm_247c8 + ld a, $1 + +.asm_247ca + ld [wMenuCursorY], a + ld a, $1 + ld [wMenuCursorX], a + xor a + ld [wCursorCurrentTile], a + ld [wCursorCurrentTile + 1], a + ld [wCursorOffCharacter], a + ret +; 247dd + +ScrollingMenu_ValidateSwitchItem: ; 247dd + ld a, [wScrollingMenuListSize] + ld c, a + ld a, [wSwitchItem] + and a + jr z, .done + dec a + cp c + jr c, .done + xor a + ld [wSwitchItem], a + +.done + ret +; 247f0 + +ScrollingMenu_UpdateDisplay: ; 247f0 + call ClearWholeMenuBox + ld a, [wMenuData2Flags] + bit 4, a ; place arrows + jr z, .okay + ld a, [wMenuScrollPosition] + and a + jr z, .okay + ld a, [wMenuBorderTopCoord] + ld b, a + ld a, [wMenuBorderRightCoord] + ld c, a + call Coord2Tile + ld [hl], "▲" + +.okay + call MenuBoxCoord2Tile + ld bc, SCREEN_WIDTH + 1 + add hl, bc + ld a, [wMenuData2_ScrollingMenuHeight] + ld b, a + ld c, $0 +.loop + ld a, [wMenuScrollPosition] + add c + ld [wScrollingMenuCursorPosition], a + ld a, c + call ScrollingMenu_GetListItemCoordAndFunctionArgs + ld a, [MenuSelection] + cp -1 + jr z, .cancel + push bc + push hl + call ScrollingMenu_CallFunctions1and2 + pop hl + ld bc, 2 * SCREEN_WIDTH + add hl, bc + pop bc + inc c + ld a, c + cp b + jr nz, .loop + ld a, [wMenuData2Flags] + bit 4, a ; place arrows + jr z, .done + ld a, [wMenuBorderBottomCoord] + ld b, a + ld a, [wMenuBorderRightCoord] + ld c, a + call Coord2Tile + ld [hl], "▼" + +.done + ret + +.cancel + ld a, [wMenuData2Flags] + bit 0, a ; call function on cancel + jr nz, .call_function + ld de, .string_2485f + call PlaceString + ret + +.string_2485f + db "CANCEL@" + +.call_function + ld d, h + ld e, l + ld hl, wMenuData2_ScrollingMenuFunction1 + jp CallPointerAt +; 2486e + +ScrollingMenu_CallFunctions1and2: ; 2486e + push hl + ld d, h + ld e, l + ld hl, wMenuData2_ScrollingMenuFunction1 + call CallPointerAt + pop hl + ld a, [wMenuData2_ScrollingMenuWidth] + and a + jr z, .done + ld e, a + ld d, $0 + add hl, de + ld d, h + ld e, l + ld hl, wMenuData2_ScrollingMenuFunction2 + call CallPointerAt + +.done + ret +; 2488b + +ScrollingMenu_PlaceCursor: ; 2488b + ld a, [wSwitchItem] + and a + jr z, .done + ld b, a + ld a, [wMenuScrollPosition] + cp b + jr nc, .done + ld c, a + ld a, [wMenuData2_ScrollingMenuHeight] + add c + cp b + jr c, .done + ld a, b + sub c + dec a + add a + add $1 + ld c, a + ld a, [wMenuBorderTopCoord] + add c + ld b, a + ld a, [wMenuBorderLeftCoord] + add $0 + ld c, a + call Coord2Tile + ld [hl], "▷" + +.done + ret +; 248b8 + +ScrollingMenu_CheckCallFunction3: ; 248b8 + ld a, [wMenuData2Flags] + bit 5, a ; call function 3 + ret z + bit 1, a ; call function 3 if not switching items + jr z, .call + ld a, [wSwitchItem] + and a + ret nz + +.call + ld a, [wMenuCursorY] + dec a + call ScrollingMenu_GetListItemCoordAndFunctionArgs + ld hl, wMenuData2_ScrollingMenuFunction3 + call CallPointerAt + ret +; 248d5 + +ScrollingMenu_GetListItemCoordAndFunctionArgs: ; 248d5 + push de + push hl + ld e, a + ld a, [wMenuScrollPosition] + add e + ld e, a + ld d, $0 + ld hl, wMenuData2_ItemsPointerAddr + ld a, [hli] + ld h, [hl] + ld l, a + inc hl ; items + ld a, [wMenuData2_ScrollingMenuSpacing] + cp 1 + jr z, .got_spacing + cp 2 + jr z, .pointless_jump +.pointless_jump + add hl, de +.got_spacing + add hl, de + ld a, [wMenuData2_ItemsPointerBank] + call GetFarByte + ld [MenuSelection], a + ld [CurItem], a + inc hl + ld a, [wMenuData2_ItemsPointerBank] + call GetFarByte + ld [MenuSelectionQuantity], a + pop hl + pop de + ret +; 2490c diff --git a/engine/specials.asm b/engine/specials.asm index 08a5b6129..c79ebb7d2 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -101,7 +101,7 @@ SpecialsPointers:: ; c029 add_special SpecialCheckPokerus add_special Special_DisplayCoinCaseBalance add_special Special_DisplayMoneyAndCoinBalance - add_special PlaceMoneyTopRightOW + add_special PlaceMoneyTopRight add_special Special_CheckForLuckyNumberWinners add_special Special_CheckLuckyNumberShowFlag add_special Special_ResetLuckyNumberShowFlag diff --git a/engine/startmenu.asm b/engine/startmenu.asm index 546aff1d9..c744d185f 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -42,7 +42,7 @@ StartMenu:: ; 125cd ld a, [wMenuCursorBuffer] ld [wd0d2], a call PlayClickSFX - call Function1bee + call PlaceHollowCursor call .OpenMenu ; Menu items have different return functions. @@ -1671,7 +1671,7 @@ MoveScreenLoop: ; 12fd5 jr nz, .place_move ld a, [wMenuCursorY] ld [wMoveSwapBuffer], a - call Function1bee + call PlaceHollowCursor jp .moving_move .place_move diff --git a/engine/switch_items.asm b/engine/switch_items.asm index 7de3440fa..46e000fd1 100755 --- a/engine/switch_items.asm +++ b/engine/switch_items.asm @@ -145,7 +145,7 @@ Function249d1: ; 249d1 (9:49d1) inc hl pop af ld [hl], a - ld hl, wMenuData2Addr + ld hl, wMenuData2_ItemsPointerAddr ld a, [hli] ld h, [hl] ld l, a @@ -199,7 +199,7 @@ Function24a4d: ; 24a4d (9:4a4d) Function24a5c: ; 24a5c (9:4a5c) push af call Function24a80 - ld hl, wMenuData2Addr + ld hl, wMenuData2_ItemsPointerAddr ld a, [hli] ld h, [hl] ld l, a diff --git a/engine/tmhm2.asm b/engine/tmhm2.asm index 9834fba7f..5b034f9ec 100755 --- a/engine/tmhm2.asm +++ b/engine/tmhm2.asm @@ -5,11 +5,11 @@ TMHMPocket: ; 2c76f (b:476f) ld a, $0 ld [hInMenu], a ret nc - call Function1bee + call PlaceHollowCursor call WaitBGMap ld a, [CurItem] dec a - ld [ItemCountBuffer], a + ld [CurItemQuantity], a ld hl, TMsHMs ld c, a ld b, 0 |