diff options
Diffstat (limited to 'engine/menu/bills_pc.asm')
-rw-r--r-- | engine/menu/bills_pc.asm | 585 |
1 files changed, 585 insertions, 0 deletions
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm new file mode 100644 index 00000000..0c468a2b --- /dev/null +++ b/engine/menu/bills_pc.asm @@ -0,0 +1,585 @@ +Func_213c8:: ; 213c8 (8:53c8) + xor a + ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + call SaveScreenTilesToBuffer2 + ld a, [$d5a2] + and a + jr nz, .asm_213f3 + ld a, [$d74b] + bit 5, a + jr z, .asm_213ea + ld a, [$d5a2] + and a + jr nz, .asm_213f3 + ld hl, wTileMap + ld b, $8 + ld c, $e + jr .asm_213fa +.asm_213ea + ld hl, wTileMap + ld b, $6 + ld c, $e + jr .asm_213fa +.asm_213f3 + ld hl, wTileMap + ld b, $a + ld c, $e +.asm_213fa + call TextBoxBorder + call UpdateSprites + ld a, $3 + ld [wMaxMenuItem], a ; $cc28 + ld a, [$d7f1] + bit 0, a + jr nz, .asm_21414 + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + ld de, SomeonesPCText ; $548b + jr .asm_2141a +.asm_21414 + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + ld de, BillsPCText ; $5497 +.asm_2141a + call PlaceString + FuncCoord 2, 4 ; $c3f2 + ld hl, Coord + ld de, W_PLAYERNAME ; $d158 + call PlaceString + ld l, c + ld h, b + ld de, PlayersPCText ; $54a0 + call PlaceString + ld a, [$d74b] + bit 5, a + jr z, .asm_21462 + FuncCoord 2, 6 ; $c41a + ld hl, Coord + ld de, OaksPCText ; $54a5 + call PlaceString + ld a, [$d5a2] + and a + jr z, .asm_2145a + ld a, $4 + ld [wMaxMenuItem], a ; $cc28 + FuncCoord 2, 8 ; $c442 + ld hl, Coord + ld de, PKMNLeaguePCText ; $54b2 + call PlaceString + FuncCoord 2, 10 ; $c46a + ld hl, Coord + ld de, LogOffPCText ; $54ba + jr .asm_2146d +.asm_2145a + FuncCoord 2, 8 ; $c442 + ld hl, Coord + ld de, LogOffPCText ; $54ba + jr .asm_2146d +.asm_21462 + ld a, $2 + ld [wMaxMenuItem], a ; $cc28 + FuncCoord 2, 6 ; $c41a + ld hl, Coord + ld de, LogOffPCText ; $54ba +.asm_2146d + call PlaceString + ld a, $3 + ld [wMenuWatchedKeys], a ; $cc29 + ld a, $2 + ld [wTopMenuItemY], a ; $cc24 + ld a, $1 + ld [wTopMenuItemX], a ; $cc25 + xor a + ld [wCurrentMenuItem], a ; $cc26 + ld [wLastMenuItem], a ; $cc2a + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ret + +SomeonesPCText: ; 2148b (8:548b) + db "SOMEONE's PC@" + +BillsPCText: ; 21497 (8:5497) + db "BILL's PC@" + +PlayersPCText: ; 214a0 (8:54a0) + db "'s PC@" + +OaksPCText: ; 214a5 (8:54a5) + db "PROF.OAK's PC@" + +PKMNLeaguePCText: ; 214b2 (8:54b2) + db $4a,"LEAGUE@" + +LogOffPCText: ; 214ba (8:54ba) + db "LOG OFF@" + +Func_214c2:: ; 214c2 (8:54c2) +BillsPC_:: ; 0x214c2 + ld hl, $d730 + set 6, [hl] + xor a + ld [$ccd3], a + inc a ; MONSTER_NAME + ld [W_LISTTYPE], a + call LoadHpBarAndStatusTilePatterns + ld a, [wListScrollOffset] ; $cc36 + push af + ld a, [wFlags_0xcd60] + bit 3, a + jr nz, BillsPCMenu + ld a, $99 + call PlaySound + ld hl, SwitchOnText + call PrintText + +Func_214e8: ; 214e8 (8:54e8) +BillsPCMenu: + ld a, [$ccd3] + ld [wCurrentMenuItem], a ; $cc26 + ld hl, $9780 + ld de, PokeballTileGraphics ; $697e + ld bc, (BANK(PokeballTileGraphics) << 8) + $01 + call CopyVideoData + call LoadScreenTilesFromBuffer2DisableBGTransfer + ld hl, wTileMap + ld b, $a + ld c, $c + call TextBoxBorder + FuncCoord 2, 2 ; $c3ca + ld hl, Coord + ld de, BillsPCMenuText ; $56e1 + call PlaceString + ld hl, wTopMenuItemY ; $cc24 + ld a, $2 + ld [hli], a + dec a + ld [hli], a + inc hl + inc hl + ld a, $4 + ld [hli], a + ld a, $3 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld hl, wListScrollOffset ; $cc36 + ld [hli], a + ld [hl], a + ld [wPlayerMonNumber], a ; $cc2f + ld hl, WhatText + call PrintText + FuncCoord 9, 14 ; $c4c1 + ld hl, Coord + ld b, $2 + ld c, $9 + call TextBoxBorder + ld a, [$d5a0] + and $7f + cp $9 + jr c, .asm_2154f + sub $9 + FuncCoord 17, 16 ; $c4f1 + ld hl, Coord + ld [hl], $f7 + add $f6 + jr .asm_21551 +.asm_2154f + add $f7 +.asm_21551 + FuncCoord 18, 16 ; $c4f2 + ld [Coord], a + FuncCoord 10, 16 ; $c4ea + ld hl, Coord + ld de, BoxNoPCText ; $5713 + call PlaceString + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + call Delay3 + call HandleMenuInput + bit 1, a + jp nz, Func_21588 ; b button + call PlaceUnfilledArrowMenuCursor + ld a, [wCurrentMenuItem] ; $cc26 + ld [$ccd3], a + and a + jp z, Func_21618 ; withdraw + cp $1 + jp z, Func_215ac ; deposit + cp $2 + jp z, Func_21673 ; release + cp $3 + jp z, Func_216b3 ; change box + +Func_21588: ; 21588 (8:5588) + ld a, [wFlags_0xcd60] + bit 3, a + jr nz, .asm_2159a + call LoadTextBoxTilePatterns + ld a, $9a + call PlaySound + call WaitForSoundToFinish +.asm_2159a + ld hl, wFlags_0xcd60 + res 5, [hl] + call LoadScreenTilesFromBuffer2 + pop af + ld [wListScrollOffset], a ; $cc36 + ld hl, $d730 + res 6, [hl] + ret + +Func_215ac: ; 215ac (8:55ac) +BillsPCDeposit: + ld a, [W_NUMINPARTY] ; $d163 + dec a + jr nz, .asm_215bb + ld hl, CantDepositLastMonText + call PrintText + jp BillsPCMenu +.asm_215bb + ld a, [W_NUMINBOX] ; $da80 + cp $14 + jr nz, .asm_215cb + ld hl, BoxFullText ; $5802 + call PrintText + jp BillsPCMenu +.asm_215cb + ld hl, W_NUMINPARTY ; $d163 + call Func_216be + jp c, BillsPCMenu + call Func_2174b + jp nc, BillsPCMenu + ld a, [$cf91] + call GetCryData + call PlaySoundWaitForCurrent + ld a, $1 + ld [$cf95], a + call Func_3a68 + xor a + ld [$cf95], a + call RemovePokemon + call WaitForSoundToFinish + ld hl, wWhichTrade ; $cd3d + ld a, [$d5a0] + and $7f + cp $9 + jr c, .asm_2160a + sub $9 + ld [hl], $f7 + inc hl + add $f6 + jr .asm_2160c +.asm_2160a + add $f7 +.asm_2160c + ld [hli], a + ld [hl], $50 + ld hl, MonWasStoredText ; $57f8 + call PrintText + jp BillsPCMenu + +Func_21618: ; 21618 (8:5618) + ld a, [W_NUMINBOX] ; $da80 + and a + jr nz, .asm_21627 + ld hl, NoMonText ; $580c + call PrintText + jp Func_214e8 +.asm_21627 + ld a, [W_NUMINPARTY] ; $d163 + cp $6 + jr nz, .asm_21637 + ld hl, CantTakeMonText ; $5811 + call PrintText + jp Func_214e8 +.asm_21637 + ld hl, W_NUMINBOX ; $da80 + call Func_216be + jp c, Func_214e8 + call Func_2174b + jp nc, Func_214e8 + ld a, [wWhichPokemon] ; $cf92 + ld hl, $de06 + call GetPartyMonName + ld a, [$cf91] + call GetCryData + call PlaySoundWaitForCurrent + xor a + ld [$cf95], a + call Func_3a68 + ld a, $1 + ld [$cf95], a + call RemovePokemon + call WaitForSoundToFinish + ld hl, MonIsTakenOutText ; $5807 + call PrintText + jp Func_214e8 + +Func_21673: ; 21673 (8:5673) + ld a, [W_NUMINBOX] ; $da80 + and a + jr nz, .asm_21682 + ld hl, NoMonText ; $580c + call PrintText + jp Func_214e8 +.asm_21682 + ld hl, W_NUMINBOX ; $da80 + call Func_216be + jp c, Func_214e8 + ld hl, OnceReleasedText ; $581b + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] ; $cc26 + and a + jr nz, .asm_21682 + inc a + ld [$cf95], a + call RemovePokemon + call WaitForSoundToFinish + ld a, [$cf91] + call PlayCry + ld hl, MonWasReleasedText ; $5820 + call PrintText + jp Func_214e8 + +Func_216b3: ; 216b3 (8:56b3) + callba Func_738a1 + jp Func_214e8 + +Func_216be: ; 216be (8:56be) + ld a, l + ld [$cf8b], a + ld a, h + ld [$cf8c], a + xor a + ld [$cf93], a + ld [wListMenuID], a ; $cf94 + inc a ; MONSTER_NAME + ld [W_LISTTYPE], a + ld a, [$cc2b] + ld [wCurrentMenuItem], a ; $cc26 + call DisplayListMenuID + ld a, [wCurrentMenuItem] ; $cc26 + ld [$cc2b], a + ret + +BillsPCMenuText: ; 216e1 (8:56e1) + db "WITHDRAW ",$4a,$4e,"DEPOSIT ",$4a,$4e,"RELEASE ",$4a,$4e,"CHANGE BOX",$4e,"SEE YA!@" + +BoxNoPCText: ; 21713 (8:5713) + db "BOX No.@" + +Func_2171b:: ; 2171b (8:571b) + ld hl, $d173 + ld bc, $002c + jr .asm_21729 ; 0x21721 $6 + ld hl, $da9e + ld bc, $0021 +.asm_21729 + ld a, [$cf92] + call AddNTimes + ld b, $4 +.asm_21731 + ld a, [hli] + push hl + push bc + ld hl, HMMoveArray ; $5745 + ld de, $0001 + call IsInArray + pop bc + pop hl + ret c + dec b + jr nz, .asm_21731 ; 0x21741 $ee + and a + ret + +HMMoveArray: ; 21745 (8:5745) + db CUT + db FLY + db SURF + db STRENGTH + db FLASH + db $ff + +Func_2174b: ; 2174b (8:574b) + FuncCoord 9, 10 ; $c471 + ld hl, Coord + ld b, $6 + ld c, $9 + call TextBoxBorder + ld a, [$ccd3] + and a + ld de, DepositPCText ; $57cb + jr nz, .asm_21761 + ld de, WithdrawPCText ; $57d3 +.asm_21761 + FuncCoord 11, 12 ; $c49b + ld hl, Coord + call PlaceString + FuncCoord 11, 14 ; $c4c3 + ld hl, Coord + ld de, StatsCancelPCText ; $57dc + call PlaceString + ld hl, wTopMenuItemY ; $cc24 + ld a, $c + ld [hli], a + ld a, $a + ld [hli], a + xor a + ld [hli], a + inc hl + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + xor a + ld [hl], a + ld hl, wListScrollOffset ; $cc36 + ld [hli], a + ld [hl], a + ld [wPlayerMonNumber], a ; $cc2f + ld [$cc2b], a +.asm_2178f + call HandleMenuInput + bit 1, a + jr nz, .asm_2179f + ld a, [wCurrentMenuItem] ; $cc26 + and a + jr z, .asm_217a1 + dec a + jr z, .asm_217a3 +.asm_2179f + and a + ret +.asm_217a1 + scf + ret +.asm_217a3 + call SaveScreenTilesToBuffer1 + ld a, [$ccd3] + and a + ld a, $0 + jr nz, .asm_217b0 + ld a, $2 +.asm_217b0 + ld [$cc49], a + ld a, $36 + call Predef ; indirect jump to StatusScreen (12953 (4:6953)) + ld a, $37 + call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57)) + call LoadScreenTilesFromBuffer1 + call ReloadTilesetTilePatterns + call GoPAL_SET_CF1C + call LoadGBPal + jr .asm_2178f + +DepositPCText: ; 217cb (8:57cb) + db "DEPOSIT@" + +WithdrawPCText: ; 217d3 (8:57d3) + db "WITHDRAW@" + +StatsCancelPCText: ; 217dc (8:57dc) + db "STATS",$4e,"CANCEL@" + +SwitchOnText: ; 0x217e9 + TX_FAR _SwitchOnText + db "@" + +WhatText: ; 0x217ee + TX_FAR _WhatText + db "@" + +DepositWhichMonText: ; 0x217f3 + TX_FAR _DepositWhichMonText + db "@" + +MonWasStoredText: ; 0x217f8 + TX_FAR _MonWasStoredText + db "@" + +CantDepositLastMonText: ; 0x217fd + TX_FAR _CantDepositLastMonText + db "@" + +BoxFullText: ; 0x21802 + TX_FAR _BoxFullText + db "@" + +MonIsTakenOutText: ; 0x21807 + TX_FAR _MonIsTakenOutText + db "@" + +NoMonText: ; 0x2180c + TX_FAR _NoMonText + db "@" + +CantTakeMonText: ; 0x21811 + TX_FAR _CantTakeMonText + db "@" + +ReleaseWhichMonText: ; 0x21816 + TX_FAR _ReleaseWhichMonText + db "@" + +OnceReleasedText: ; 0x2181b + TX_FAR _OnceReleasedText + db "@" + +MonWasReleasedText: ; 0x21820 + TX_FAR _MonWasReleasedText + db "@" + +PrintJustAMomentText1:: ; 5824 (8:5825) + ld a, [$ffaa] + cp $1 + ret z + ld a, [$c109] + cp $c + ret nz + ld a, [$d35e] + cp $ef + ld a, $2 + jr z, .asm_2183a + inc a +.asm_2183a + ld [$d12b], a + call EnableAutoTextBoxDrawing + ld a, $22 + jp PrintPredefTextID + +PrintJustAMomentText2:: ; 5845 (8:5845) + ld a, [$ffaa] + cp $2 + ret z + ld a, [$c109] + cp $8 + ret nz + ld a, [$d35e] + cp $ef + ld a, $2 + jr z, .asm_2185a + inc a +.asm_2185a + ld [$d12b], a + call EnableAutoTextBoxDrawing + ld a, $22 + jp PrintPredefTextID + +JustAMomentText:: ; 21865 (8:5865) + TX_FAR _JustAMomentText + db "@" + + ld a, [$c109] + cp $4 + ret nz + call EnableAutoTextBoxDrawing + ld a, $23 + jp PrintPredefTextID + +PredefText23:: ; 21878 (8:5878) + db $FD ; FuncTX_BillsPC + |