diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 572 |
1 files changed, 12 insertions, 560 deletions
@@ -4456,7 +4456,7 @@ RemoveItemFromPocket: ; d2ff ld e, l ld a, [hli] ld c, a - ld a, [ItemCountBuffer] + ld a, [CurItemQuantity] cp c jr nc, .ok ; memory ld c, a @@ -7944,555 +7944,7 @@ GetObjectTimeMask: ; 245a7 (9:45a7) xor a ret -Function245af:: ; 245af - xor a - ld [wMenuJoypad], a - ld [hBGMapMode], a - inc a - ld [hInMenu], a - call ClearObjectStructsa - call Function24764 - call Function247dd - call Function245f1 - call ApplyTilemap - xor a - ld [hBGMapMode], a - ret -; 245cb - -Function245cb:: ; 245cb -.loop - call MenuJoyAction - 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 Function245f1 - ld a, 1 - ld [hBGMapMode], a - ld c, 3 - call DelayFrames - xor a - ld [hBGMapMode], a - ret -; 245f1 - -Function245f1: ; 245f1 - xor a - ld [hBGMapMode], a - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call Function247f0 - call Function2488b - call Function248b8 - pop af - ld [Options], a - ret -; 24609 - -MenuJoyAction: ; 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 Function1bee - ld a, [wMenuCursorY] - dec a - call Function248d5 - ld a, [MenuSelection] - ld [CurItem], a - ld a, [wcf75] - ld [wItemQuantityBuffer], a - call Function246fc - dec a - ld [wScrollingMenuCursorPosition], a - ld [wd107], 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 Function248d5 - ld a, [MenuSelection] - cp -1 - jp z, xor_a_dec_a - call Function246fc - 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, wcfa6 - 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, wcfa6 - 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, wcfa6 - 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, wcfa6 - bit 7, [hl] - jp z, xor_a - ld hl, wMenuScrollPosition - ld a, [wMenuData2Items] - add [hl] - ld b, a - ld a, [wd144] - cp b - jr c, .xor_dec_down - inc [hl] - jp xor_a - -.xor_dec_down - jp xor_a_dec_a -; 246fc - -Function246fc: ; 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, [wMenuData2Items] -.asm_24713 - ld [hl], " " - add hl, de - dec a - jr nz, .asm_24713 - ret - -ClearObjectStructsa: ; 2471a -; Get the value of (wMenuData2Bank):(wMenuData2Addr) and store it in wd144. - ld hl, wMenuData2Addr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wMenuData2Bank] - call GetFarByte - ld [wd144], a -; if ([wd144] + 1) < [wMenuData2Items] + [wMenuScrollPosition]: [wMenuScrollPosition] = max(([wd144] + 1) - [wMenuData2Items], 0) - ld a, [wMenuData2Items] - ld c, a - ld a, [wMenuScrollPosition] - add c - ld c, a - ld a, [wd144] - inc a - cp c - jr nc, .skip - ld a, [wMenuData2Items] - ld c, a - ld a, [wd144] - 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, [wd144] - 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 - -Function24764: ; 24764 - ld a, [wMenuData2Flags] - ld c, a - ld a, [wd144] - ld b, a - ld a, [wMenuBorderTopCoord] - add $1 - ld [wcfa1], a - ld a, [wMenuBorderLeftCoord] - add $0 - ld [wcfa2], a - ld a, [wMenuData2Items] - cp b - jr c, .asm_24786 - jr z, .asm_24786 - ld a, b - inc a - -.asm_24786 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], 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 [wcfa5], a - xor a - ld [wcfa6], a - ld a, $20 - ld [wcfa7], 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 [wcfa8], a - ld a, [wcfa3] - 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 - -Function247dd: ; 247dd - ld a, [wd144] - ld c, a - ld a, [wd0e3] - and a - jr z, .asm_247ef - dec a - cp c - jr c, .asm_247ef - xor a - ld [wd0e3], a - -.asm_247ef - ret -; 247f0 - -Function247f0: ; 247f0 - call ClearWholeMenuBox - ld a, [wMenuData2Flags] - bit 4, a - jr z, .asm_2480d - ld a, [wMenuScrollPosition] - and a - jr z, .asm_2480d - ld a, [wMenuBorderTopCoord] - ld b, a - ld a, [wMenuBorderRightCoord] - ld c, a - call Coord2Tile - ld [hl], $61 - -.asm_2480d - call MenuBoxCoord2Tile - ld bc, $15 - add hl, bc - ld a, [wMenuData2Items] - ld b, a - ld c, $0 -.asm_2481a - ld a, [wMenuScrollPosition] - add c - ld [wScrollingMenuCursorPosition], a - ld a, c - call Function248d5 - ld a, [MenuSelection] - cp $ff - jr z, .asm_24851 - push bc - push hl - call Function2486e - pop hl - ld bc, $28 - add hl, bc - pop bc - inc c - ld a, c - cp b - jr nz, .asm_2481a - ld a, [wMenuData2Flags] - bit 4, a - jr z, .asm_24850 - ld a, [wMenuBorderBottomCoord] - ld b, a - ld a, [wMenuBorderRightCoord] - ld c, a - call Coord2Tile - ld [hl], $ee - -.asm_24850 - ret - -.asm_24851 - ld a, [wMenuData2Flags] - bit 0, a - jr nz, .asm_24866 - ld de, .string_2485f - call PlaceString - ret - -.string_2485f - db "CANCEL@" - -.asm_24866 - ld d, h - ld e, l - ld hl, wcf98 - jp CallPointerAt -; 2486e - -Function2486e: ; 2486e - push hl - ld d, h - ld e, l - ld hl, wcf98 - call CallPointerAt - pop hl - ld a, [wcf93] - and a - jr z, .asm_2488a - ld e, a - ld d, $0 - add hl, de - ld d, h - ld e, l - ld hl, wcf9b - call CallPointerAt - -.asm_2488a - ret -; 2488b - -Function2488b: ; 2488b - ld a, [wd0e3] - and a - jr z, .asm_248b7 - ld b, a - ld a, [wMenuScrollPosition] - cp b - jr nc, .asm_248b7 - ld c, a - ld a, [wMenuData2Items] - add c - cp b - jr c, .asm_248b7 - 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], $ec - -.asm_248b7 - ret -; 248b8 - -Function248b8: ; 248b8 - ld a, [wMenuData2Flags] - bit 5, a - ret z - bit 1, a - jr z, .asm_248c7 - ld a, [wd0e3] - and a - ret nz - -.asm_248c7 - ld a, [wMenuCursorY] - dec a - call Function248d5 - ld hl, wcf9e - call CallPointerAt - ret -; 248d5 - -Function248d5: ; 248d5 - push de - push hl - ld e, a - ld a, [wMenuScrollPosition] - add e - ld e, a - ld d, $0 - ld hl, wMenuData2Addr - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - ld a, [wcf94] - cp $1 - jr z, .asm_248f2 - cp $2 - jr z, .asm_248f1 - -.asm_248f1 - add hl, de - -.asm_248f2 - add hl, de - ld a, [wMenuData2Bank] - call GetFarByte - ld [MenuSelection], a - ld [CurItem], a - inc hl - ld a, [wMenuData2Bank] - call GetFarByte - ld [wcf75], a - pop hl - pop de - ret -; 2490c - +INCLUDE "engine/scrolling_menu.asm" INCLUDE "engine/switch_items.asm" PlaceMenuItemName: ; 0x24ab4 @@ -8518,7 +7970,7 @@ PlaceMenuItemQuantity: ; 0x24ac3 add hl, de ld [hl], "×" inc hl - ld de, wcf75 + ld de, MenuSelectionQuantity lb bc, 1, 2 call PrintNum @@ -8526,25 +7978,25 @@ PlaceMenuItemQuantity: ; 0x24ac3 ret ; 0x24ae8 -PlaceMoneyTopRightOW: ; 24ae8 +PlaceMoneyTopRight: ; 24ae8 ld hl, MenuDataHeader_0x24b15 call CopyMenuDataHeader - jr Function24b01 + jr PlaceMoneyDataHeader -PlaceMoneyBottomLeftOW: ; 24af0 +PlaceMoneyBottomLeft: ; 24af0 ld hl, MenuDataHeader_0x24b1d call CopyMenuDataHeader - jr Function24b01 + jr PlaceMoneyDataHeader -PlaceMoneyTopRightMenu: ; 24af8 +PlaceMoneyAtTopLeftOfTextbox: ; 24af8 ld hl, MenuDataHeader_0x24b15 - ld de, $b - call Function1e2e + lb de, 0, 11 + call OffsetMenuDataHeader -Function24b01: ; 24b01 +PlaceMoneyDataHeader: ; 24b01 call MenuBox call MenuBoxCoord2Tile - ld de, $15 + ld de, SCREEN_WIDTH + 1 add hl, de ld de, Money lb bc, PRINTNUM_MONEY | 3, 6 |