pokecrystal-board/engine/billspctop.asm
Remy Oukaour 14c8cf5b48 Merge branch 'master' of https://github.com/mid-kid/pokecrystal (resolve PR #452)
# Conflicts:
#	data/player_names.asm
#	engine/battle/menu.asm
#	engine/billspc.asm
#	engine/billspctop.asm
#	engine/buy_sell_toss.asm
#	engine/decorations.asm
#	engine/delete_save_change_clock.asm
#	engine/events/buena.asm
#	engine/events/elevator.asm
#	engine/events/kurt.asm
#	engine/events/mom.asm
#	engine/events/move_tutor.asm
#	engine/events/pokecenter_pc.asm
#	engine/events/pokepic.asm
#	engine/events/std_scripts.asm
#	engine/events/unown_walls.asm
#	engine/init_gender.asm
#	engine/intro_menu.asm
#	engine/mail.asm
#	engine/main_menu.asm
#	engine/mart.asm
#	engine/menu_2.asm
#	engine/mon_menu.asm
#	engine/pack.asm
#	engine/slot_machine.asm
#	engine/start_menu.asm
#	home/menu.asm
#	maps/CeladonDeptStore6F.asm
#	maps/CeladonGameCornerPrizeRoom.asm
#	maps/DragonShrine.asm
#	maps/EarlsPokemonAcademy.asm
#	maps/GoldenrodCity.asm
#	maps/GoldenrodDeptStore6F.asm
#	maps/GoldenrodGameCorner.asm
#	maps/GoldenrodPokeComCenter2FMobile.asm
#	mobile/mobile_12.asm
#	mobile/mobile_12_2.asm
#	mobile/mobile_22.asm
#	mobile/mobile_22_2.asm
#	mobile/mobile_40.asm
#	mobile/mobile_45.asm
#	mobile/mobile_45_sprite_engine.asm
#	mobile/mobile_46.asm
#	mobile/mobile_5c.asm
#	mobile/mobile_5f.asm
#	mobile/mobile_menu.asm
2018-01-14 23:43:51 -05:00

388 lines
5.6 KiB
NASM
Executable File

_BillsPC: ; e3fd
call .CheckCanUsePC
ret c
call .LogIn
call .UseBillsPC
jp .LogOut
.CheckCanUsePC: ; e40a (3:640a)
ld a, [PartyCount]
and a
ret nz
ld hl, .Text_GottaHavePokemon
call MenuTextBoxBackup
scf
ret
.Text_GottaHavePokemon: ; 0xe417
; You gotta have #MON to call!
text_jump UnknownText_0x1c1006
db "@"
.LogIn: ; e41c (3:641c)
xor a
ld [hBGMapMode], a
call LoadStandardMenuDataHeader
call ClearPCItemScreen
ld hl, Options
ld a, [hl]
push af
set NO_TEXT_SCROLL, [hl]
ld hl, .Text_What
call PrintText
pop af
ld [Options], a
call LoadFontsBattleExtra
ret
.Text_What: ; 0xe43a
; What?
text_jump UnknownText_0x1c1024
db "@"
.LogOut: ; e43f (3:643f)
call CloseSubmenu
ret
.UseBillsPC: ; e443 (3:6443)
ld hl, .MenuDataHeader
call LoadMenuDataHeader
ld a, $1
.loop
ld [wMenuCursorBuffer], a
call SetPalettes
xor a
ld [wWhichIndexSet], a
ld [hBGMapMode], a
call DoNthMenu
jr c, .cancel
ld a, [wMenuCursorBuffer]
push af
ld a, [MenuSelection]
ld hl, .Jumptable
rst JumpTable
pop bc
ld a, b
jr nc, .loop
.cancel
call CloseWindow
ret
.MenuDataHeader: ; 0xe46f
db MENU_BACKUP_TILES ; flags
menu_coords 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1
dw .MenuData2
db 1 ; default option
.MenuData2: ; 0xe477
db STATICMENU_CURSOR ; flags
db 0 ; items
dw .items
dw PlaceMenuStrings
dw .strings
.strings ; e47f
db "WITHDRAW <PK><MN>@"
db "DEPOSIT <PK><MN>@"
db "CHANGE BOX@"
db "MOVE <PK><MN> W/O MAIL@"
db "SEE YA!@"
.Jumptable: ; e4ba (3:64ba)
dw BillsPC_WithdrawMenu
dw BillsPC_DepositMenu
dw BillsPC_ChangeBoxMenu
dw BillsPC_MovePKMNMenu
dw BillsPC_SeeYa
.items ; e4c4
db 5
db 0 ; WITHDRAW
db 1; DEPOSIT
db 2 ; CHANGE BOX
db 3 ; MOVE PKMN
db 4 ; SEE YA!
db -1
BillsPC_SeeYa: ; e4cb
scf
ret
BillsPC_MovePKMNMenu: ; e4cd
call LoadStandardMenuDataHeader
farcall IsAnyMonHoldingMail
jr nc, .no_mail
ld hl, .Text_MonHoldingMail
call PrintText
jr .quit
.no_mail
farcall StartMovePkmnWOMail_SaveGame
jr c, .quit
farcall _MovePKMNWithoutMail
call ReturnToMapFromSubmenu
call ClearPCItemScreen
.quit
call CloseWindow
and a
ret
.Text_MonHoldingMail: ; 0xe4f9
; There is a #MON holding MAIL. Please remove the MAIL.
text_jump UnknownText_0x1c102b
db "@"
BillsPC_DepositMenu: ; e4fe (3:64fe)
call LoadStandardMenuDataHeader
farcall _DepositPKMN
call ReturnToMapFromSubmenu
call ClearPCItemScreen
call CloseWindow
and a
ret
Unreferenced_Functione512:
ld a, [PartyCount]
and a
jr z, .no_pkmn
cp 2
jr c, .only_one_pkmn
and a
ret
.no_pkmn
ld hl, .Text_NoPKMN
call MenuTextBoxBackup
scf
ret
.only_one_pkmn
ld hl, .Text_ItsYourLastPKMN
call MenuTextBoxBackup
scf
ret
.Text_NoPKMN: ; 0xe52e
; You don't have a single #MON!
text_jump UnknownText_0x1c1062
db "@"
.Text_ItsYourLastPKMN: ; 0xe533
; You can't deposit your last #MON!
text_jump UnknownText_0x1c1080
db "@"
CheckCurPartyMonFainted: ; e538
ld hl, PartyMon1HP
ld de, PARTYMON_STRUCT_LENGTH
ld b, $0
.loop
ld a, [CurPartyMon]
cp b
jr z, .skip
ld a, [hli]
or [hl]
jr nz, .notfainted
dec hl
.skip
inc b
ld a, [PartyCount]
cp b
jr z, .done
add hl, de
jr .loop
.done
scf
ret
.notfainted
and a
ret
BillsPC_WithdrawMenu: ; e559 (3:6559)
call LoadStandardMenuDataHeader
farcall _WithdrawPKMN
call ReturnToMapFromSubmenu
call ClearPCItemScreen
call CloseWindow
and a
ret
Unreferenced_Functione56d:
ld a, [PartyCount]
cp PARTY_LENGTH
jr nc, .asm_e576
and a
ret
.asm_e576
ld hl, UnknownText_0xe57e
call MenuTextBoxBackup
scf
ret
UnknownText_0xe57e: ; 0xe57e
; You can't take any more #MON.
text_jump UnknownText_0x1c10a2
db "@"
BillsPC_ChangeBoxMenu: ; e583 (3:6583)
farcall _ChangeBox
and a
ret
ClearPCItemScreen: ; e58b
call DisableSpriteUpdates
xor a
ld [hBGMapMode], a
call ClearBGPalettes
call ClearSprites
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, " "
call ByteFill
hlcoord 0, 0
lb bc, 10, 18
call TextBox
hlcoord 0, 12
lb bc, 4, 18
call TextBox
call WaitBGMap2
call SetPalettes ; load regular palettes?
ret
CopyBoxmonToTempMon: ; e5bb
ld a, [CurPartyMon]
ld hl, sBoxMon1Species
ld bc, BOXMON_STRUCT_LENGTH
call AddNTimes
ld de, TempMonSpecies
ld bc, BOXMON_STRUCT_LENGTH
ld a, BANK(sBoxMon1Species)
call GetSRAMBank
call CopyBytes
call CloseSRAM
ret
Unreferenced_Functione5d9:
ld a, [wCurBox]
cp b
jr z, .same_box
ld a, b
ld hl, .BoxAddrs
ld bc, 3
call AddNTimes
ld a, [hli]
push af
ld a, [hli]
ld h, [hl]
ld l, a
pop af
jr .okay
.same_box
ld a, BANK(sBoxCount)
ld hl, sBoxCount
.okay
call GetSRAMBank
ld a, [hl]
ld bc, 1 + MONS_PER_BOX + 1
add hl, bc
ld b, a
ld c, $0
ld de, wc608
ld a, b
and a
jr z, .empty_box
.loop
push hl
push bc
ld a, c
ld bc, 0
add hl, bc
ld bc, BOXMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
ld [de], a
inc de
ld [CurSpecies], a
call GetBaseData
pop bc
pop hl
push hl
push bc
ld a, c
ld bc, MONS_PER_BOX * (BOXMON_STRUCT_LENGTH + NAME_LENGTH)
add hl, bc
call SkipNames
call CopyBytes
pop bc
pop hl
push hl
push bc
ld a, c
ld bc, MON_LEVEL
add hl, bc
ld bc, BOXMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
ld [de], a
inc de
pop bc
pop hl
push hl
push bc
ld a, c
ld bc, MON_DVS
add hl, bc
ld bc, BOXMON_STRUCT_LENGTH
call AddNTimes
ld a, [hli]
and $f0
ld b, a
ld a, [hl]
and $f0
swap a
or b
ld b, a
ld a, [BaseGender]
cp b
ld a, $1
jr c, .okay2
xor a
.okay2
ld [de], a
inc de
pop bc
pop hl
inc c
dec b
jr nz, .loop
.empty_box
call CloseSRAM
ret
.BoxAddrs: ; e66e
dba sBox1
dba sBox2
dba sBox3
dba sBox4
dba sBox5
dba sBox6
dba sBox7
dba sBox8
dba sBox9
dba sBox10
dba sBox11
dba sBox12
dba sBox13
dba sBox14