mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Split up some more banks in main.asm
This commit is contained in:
parent
ba871547ed
commit
042fc4bfe5
209
engine/money.asm
Executable file
209
engine/money.asm
Executable file
@ -0,0 +1,209 @@
|
|||||||
|
GiveMoney:: ; 15fd7
|
||||||
|
ld a, $3
|
||||||
|
call AddMoney
|
||||||
|
ld bc, MaxMoney
|
||||||
|
ld a, $3
|
||||||
|
call CompareMoney
|
||||||
|
jr z, .asm_15ff5
|
||||||
|
jr c, .asm_15ff5
|
||||||
|
ld hl, MaxMoney
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_15ff5
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 15ff7
|
||||||
|
|
||||||
|
MaxMoney: ; 15ff7
|
||||||
|
dt 999999
|
||||||
|
; 15ffa
|
||||||
|
|
||||||
|
|
||||||
|
TakeMoney:: ; 15ffa
|
||||||
|
ld a, 3
|
||||||
|
call SubtractMoney
|
||||||
|
jr nc, .asm_16009
|
||||||
|
xor a
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16009
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 1600b
|
||||||
|
|
||||||
|
CompareMoney:: ; 1600b
|
||||||
|
ld a, $3
|
||||||
|
CompareFunds: ; 1600d
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld c, $0
|
||||||
|
ld b, a
|
||||||
|
.loop1
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop1
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
sbc [hl]
|
||||||
|
jr z, .okay
|
||||||
|
inc c
|
||||||
|
|
||||||
|
.okay
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
jr c, .set_carry
|
||||||
|
ld a, c
|
||||||
|
and a
|
||||||
|
jr .skip_carry
|
||||||
|
|
||||||
|
.set_carry
|
||||||
|
ld a, $1
|
||||||
|
and a
|
||||||
|
scf
|
||||||
|
|
||||||
|
.skip_carry
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 16035
|
||||||
|
|
||||||
|
SubtractMoney: ; 16035
|
||||||
|
ld a, 3
|
||||||
|
SubtractFunds: ; 16037
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld b, a
|
||||||
|
ld c, 0
|
||||||
|
.loop
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
sbc [hl]
|
||||||
|
ld [de], a
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 16053
|
||||||
|
|
||||||
|
AddMoney: ; 16053
|
||||||
|
ld a, $3
|
||||||
|
AddFunds: ; 16055
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld h, b
|
||||||
|
ld l, c
|
||||||
|
ld b, a
|
||||||
|
.loop1
|
||||||
|
dec a
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .loop1
|
||||||
|
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
.loop2
|
||||||
|
ld a, [de]
|
||||||
|
adc [hl]
|
||||||
|
ld [de], a
|
||||||
|
dec de
|
||||||
|
dec hl
|
||||||
|
dec b
|
||||||
|
jr nz, .loop2
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 1606f
|
||||||
|
|
||||||
|
GiveCoins:: ; 1606f
|
||||||
|
ld a, 2
|
||||||
|
ld de, Coins
|
||||||
|
call AddFunds
|
||||||
|
ld a, 2
|
||||||
|
ld bc, .maxcoins
|
||||||
|
call CompareFunds
|
||||||
|
jr c, .not_maxed
|
||||||
|
ld hl, .maxcoins
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.not_maxed
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 1608d
|
||||||
|
|
||||||
|
.maxcoins: ; 1608d
|
||||||
|
bigdw 9999
|
||||||
|
; 1608f
|
||||||
|
|
||||||
|
|
||||||
|
TakeCoins:: ; 1608f
|
||||||
|
ld a, 2
|
||||||
|
ld de, Coins
|
||||||
|
call SubtractFunds
|
||||||
|
jr nc, .asm_1609f
|
||||||
|
xor a
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [de], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_1609f
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 160a1
|
||||||
|
|
||||||
|
CheckCoins:: ; 160a1
|
||||||
|
ld a, $2
|
||||||
|
ld de, Coins
|
||||||
|
jp CompareFunds
|
||||||
|
; 160a9
|
705
engine/pokecenter_pc.asm
Executable file
705
engine/pokecenter_pc.asm
Executable file
@ -0,0 +1,705 @@
|
|||||||
|
PokemonCenterPC: ; 1559a
|
||||||
|
call PC_CheckPartyForPokemon
|
||||||
|
ret c
|
||||||
|
call PC_PlayBootSound
|
||||||
|
ld hl, UnknownText_0x15a27
|
||||||
|
call PC_DisplayText
|
||||||
|
ld hl, UnknownText_0x15a2c
|
||||||
|
call PC_DisplayTextWaitMenu
|
||||||
|
ld hl, .TopMenu
|
||||||
|
call LoadMenuDataHeader
|
||||||
|
.loop
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call .ChooseWhichPCListToUse
|
||||||
|
ld [wcf76], a
|
||||||
|
call DoNthMenu
|
||||||
|
jr c, .shutdown
|
||||||
|
ld a, [MenuSelection]
|
||||||
|
ld hl, .JumpTable
|
||||||
|
call MenuJumptable
|
||||||
|
jr nc, .loop
|
||||||
|
|
||||||
|
.shutdown
|
||||||
|
call PC_PlayShutdownSound
|
||||||
|
call ExitMenu
|
||||||
|
call WriteBackup
|
||||||
|
ret
|
||||||
|
; 155d6
|
||||||
|
|
||||||
|
.TopMenu: ; 0x155d6
|
||||||
|
db $48 ; flags
|
||||||
|
db 00, 00 ; start coords
|
||||||
|
db 12, 15 ; end coords
|
||||||
|
dw .MenuData2
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x155de
|
||||||
|
|
||||||
|
.MenuData2: ; 0x155de
|
||||||
|
db $a0 ; flags
|
||||||
|
db 0 ; items
|
||||||
|
dw .WhichPC
|
||||||
|
dw PlaceNthMenuStrings
|
||||||
|
dw .JumpTable
|
||||||
|
; 0x155e6
|
||||||
|
|
||||||
|
.JumpTable: ; 155e6
|
||||||
|
dw PlayersPC, .String_PlayersPC
|
||||||
|
dw BillsPC, .String_BillsPC
|
||||||
|
dw OaksPC, .String_OaksPC
|
||||||
|
dw HallOfFamePC, .String_HallOfFame
|
||||||
|
dw TurnOffPC, .String_TurnOff
|
||||||
|
; 155fa
|
||||||
|
|
||||||
|
.String_PlayersPC: db "<PLAYER>'s PC@"
|
||||||
|
.String_BillsPC: db "BILL's PC@"
|
||||||
|
.String_OaksPC: db "PROF.OAK's PC@"
|
||||||
|
.String_HallOfFame: db "HALL OF FAME@"
|
||||||
|
.String_TurnOff: db "TURN OFF@"
|
||||||
|
; 1562c
|
||||||
|
|
||||||
|
.WhichPC: ; 1562c
|
||||||
|
; before pokedex
|
||||||
|
db 3 ; items
|
||||||
|
db 1, 0, 4 ; bill's, player's, turn off
|
||||||
|
db -1
|
||||||
|
|
||||||
|
; before Hall Of Fame
|
||||||
|
db 4 ; items
|
||||||
|
db 1, 0, 2, 4 ; bill's, player's, oak's, turn off
|
||||||
|
db -1
|
||||||
|
|
||||||
|
; postgame
|
||||||
|
db 5 ; items
|
||||||
|
db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
|
||||||
|
db -1
|
||||||
|
; 1563e
|
||||||
|
|
||||||
|
.ChooseWhichPCListToUse: ; 1563e
|
||||||
|
call CheckReceivedDex
|
||||||
|
jr nz, .got_dex
|
||||||
|
ld a, $0
|
||||||
|
ret
|
||||||
|
|
||||||
|
.got_dex
|
||||||
|
ld a, [wHallOfFameCount]
|
||||||
|
and a
|
||||||
|
ld a, $1
|
||||||
|
ret z
|
||||||
|
ld a, $2
|
||||||
|
ret
|
||||||
|
; 15650
|
||||||
|
|
||||||
|
PC_CheckPartyForPokemon: ; 15650
|
||||||
|
ld a, [PartyCount]
|
||||||
|
and a
|
||||||
|
ret nz
|
||||||
|
ld de, SFX_CHOOSE_PC_OPTION
|
||||||
|
call PlaySFX
|
||||||
|
ld hl, UnknownText_0x15663
|
||||||
|
call PC_DisplayText
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 15663
|
||||||
|
|
||||||
|
UnknownText_0x15663: ; 0x15663
|
||||||
|
; Bzzzzt! You must have a #MON to use this!
|
||||||
|
text_jump UnknownText_0x1c1328
|
||||||
|
db "@"
|
||||||
|
; 0x15668
|
||||||
|
|
||||||
|
BillsPC: ; 15668
|
||||||
|
call PC_PlayChoosePCSound
|
||||||
|
ld hl, UnknownText_0x15a31
|
||||||
|
call PC_DisplayText
|
||||||
|
callba _BillsPC
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 15679 (5:5679)
|
||||||
|
|
||||||
|
PlayersPC: ; 15679
|
||||||
|
call PC_PlayChoosePCSound
|
||||||
|
ld hl, UnknownText_0x15a36
|
||||||
|
call PC_DisplayText
|
||||||
|
ld b, $0
|
||||||
|
call _PlayersPC
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 15689
|
||||||
|
|
||||||
|
OaksPC: ; 15689
|
||||||
|
call PC_PlayChoosePCSound
|
||||||
|
ld hl, UnknownText_0x15a3b
|
||||||
|
call PC_DisplayText
|
||||||
|
callba ProfOaksPC
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 1569a
|
||||||
|
|
||||||
|
HallOfFamePC: ; 1569a
|
||||||
|
call PC_PlayChoosePCSound
|
||||||
|
call FadeToMenu
|
||||||
|
callba _HallOfFamePC
|
||||||
|
call Function2b3c
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 156ab
|
||||||
|
|
||||||
|
TurnOffPC: ; 156ab
|
||||||
|
ld hl, UnknownText_0x15a40
|
||||||
|
call PrintText
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 156b3
|
||||||
|
|
||||||
|
PC_PlayBootSound: ; 156b3
|
||||||
|
ld de, SFX_BOOT_PC
|
||||||
|
jr PC_WaitPlaySFX
|
||||||
|
|
||||||
|
PC_PlayShutdownSound: ; 156b8
|
||||||
|
ld de, SFX_SHUT_DOWN_PC
|
||||||
|
call PC_WaitPlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
ret
|
||||||
|
|
||||||
|
PC_PlayChoosePCSound: ; 156c2
|
||||||
|
ld de, SFX_CHOOSE_PC_OPTION
|
||||||
|
jr PC_WaitPlaySFX
|
||||||
|
|
||||||
|
Function156c7: ; 156c7
|
||||||
|
ld de, SFX_SWITCH_POKEMON
|
||||||
|
call PC_WaitPlaySFX
|
||||||
|
ld de, SFX_SWITCH_POKEMON
|
||||||
|
|
||||||
|
PC_WaitPlaySFX: ; 156d0
|
||||||
|
push de
|
||||||
|
call WaitSFX
|
||||||
|
pop de
|
||||||
|
call PlaySFX
|
||||||
|
ret
|
||||||
|
; 156d9
|
||||||
|
|
||||||
|
Function156d9: ; 156d9
|
||||||
|
call PC_PlayBootSound
|
||||||
|
ld hl, UnknownText_0x156ff
|
||||||
|
call PC_DisplayText
|
||||||
|
ld b, $1
|
||||||
|
call _PlayersPC
|
||||||
|
and a
|
||||||
|
jr nz, .asm_156f9
|
||||||
|
call OverworldTextModeSwitch
|
||||||
|
call Function321c
|
||||||
|
call UpdateSprites
|
||||||
|
call PC_PlayShutdownSound
|
||||||
|
ld c, $0
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_156f9
|
||||||
|
call ClearBGPalettes
|
||||||
|
ld c, $1
|
||||||
|
ret
|
||||||
|
; 156ff
|
||||||
|
|
||||||
|
UnknownText_0x156ff: ; 0x156ff
|
||||||
|
; turned on the PC.
|
||||||
|
text_jump UnknownText_0x1c1353
|
||||||
|
db "@"
|
||||||
|
; 0x15704
|
||||||
|
|
||||||
|
_PlayersPC: ; 15704
|
||||||
|
ld a, b
|
||||||
|
ld [wcf76], a
|
||||||
|
ld hl, UnknownText_0x157cc
|
||||||
|
call PC_DisplayTextWaitMenu
|
||||||
|
call Function15715
|
||||||
|
call ExitMenu
|
||||||
|
ret
|
||||||
|
; 15715
|
||||||
|
|
||||||
|
Function15715: ; 15715
|
||||||
|
xor a
|
||||||
|
ld [wd0d7], a
|
||||||
|
ld [wd0dd], a
|
||||||
|
ld hl, KrissPCMenuData
|
||||||
|
call LoadMenuDataHeader
|
||||||
|
.asm_15722
|
||||||
|
call UpdateTimePals
|
||||||
|
call DoNthMenu
|
||||||
|
jr c, .asm_15731
|
||||||
|
call MenuJumptable
|
||||||
|
jr nc, .asm_15722
|
||||||
|
jr .asm_15732
|
||||||
|
|
||||||
|
.asm_15731
|
||||||
|
xor a
|
||||||
|
|
||||||
|
.asm_15732
|
||||||
|
call ExitMenu
|
||||||
|
ret
|
||||||
|
; 15736
|
||||||
|
|
||||||
|
KrissPCMenuData: ; 0x15736
|
||||||
|
db %01000000
|
||||||
|
db 0, 0 ; top left corner coords (y, x)
|
||||||
|
db 12, 15 ; bottom right corner coords (y, x)
|
||||||
|
dw .KrissPCMenuData2
|
||||||
|
db 1 ; default selected option
|
||||||
|
|
||||||
|
.KrissPCMenuData2
|
||||||
|
db %10100000 ; bit7
|
||||||
|
db 0 ; # items?
|
||||||
|
dw .KrissPCMenuList1
|
||||||
|
dw PlaceNthMenuStrings
|
||||||
|
dw .KrissPCMenuPointers
|
||||||
|
|
||||||
|
.KrissPCMenuPointers ; 0x15746
|
||||||
|
dw KrisWithdrawItemMenu, .WithdrawItem
|
||||||
|
dw KrisDepositItemMenu, .DepositItem
|
||||||
|
dw KrisTossItemMenu, .TossItem
|
||||||
|
dw KrisMailBoxMenu, .MailBox
|
||||||
|
dw KrisDecorationMenu, .Decoration
|
||||||
|
dw KrisLogOffMenu, .LogOff
|
||||||
|
dw KrisLogOffMenu, .TurnOff
|
||||||
|
|
||||||
|
.WithdrawItem db "WITHDRAW ITEM@"
|
||||||
|
.DepositItem db "DEPOSIT ITEM@"
|
||||||
|
.TossItem db "TOSS ITEM@"
|
||||||
|
.MailBox db "MAIL BOX@"
|
||||||
|
.Decoration db "DECORATION@"
|
||||||
|
.TurnOff db "TURN OFF@"
|
||||||
|
.LogOff db "LOG OFF@"
|
||||||
|
|
||||||
|
WITHDRAW_ITEM EQU 0
|
||||||
|
DEPOSIT_ITEM EQU 1
|
||||||
|
TOSS_ITEM EQU 2
|
||||||
|
MAIL_BOX EQU 3
|
||||||
|
DECORATION EQU 4
|
||||||
|
TURN_OFF EQU 5
|
||||||
|
LOG_OFF EQU 6
|
||||||
|
|
||||||
|
.KrissPCMenuList1
|
||||||
|
db 5
|
||||||
|
db WITHDRAW_ITEM
|
||||||
|
db DEPOSIT_ITEM
|
||||||
|
db TOSS_ITEM
|
||||||
|
db MAIL_BOX
|
||||||
|
db TURN_OFF
|
||||||
|
db -1
|
||||||
|
|
||||||
|
.KrissPCMenuList2
|
||||||
|
db 6
|
||||||
|
db WITHDRAW_ITEM
|
||||||
|
db DEPOSIT_ITEM
|
||||||
|
db TOSS_ITEM
|
||||||
|
db MAIL_BOX
|
||||||
|
db DECORATION
|
||||||
|
db LOG_OFF
|
||||||
|
db -1
|
||||||
|
|
||||||
|
PC_DisplayTextWaitMenu: ; 157bb
|
||||||
|
ld a, [Options]
|
||||||
|
push af
|
||||||
|
set NO_TEXT_SCROLL, a
|
||||||
|
ld [Options], a
|
||||||
|
call MenuTextBox
|
||||||
|
pop af
|
||||||
|
ld [Options], a
|
||||||
|
ret
|
||||||
|
; 157cc
|
||||||
|
|
||||||
|
UnknownText_0x157cc: ; 0x157cc
|
||||||
|
; What do you want to do?
|
||||||
|
text_jump UnknownText_0x1c1368
|
||||||
|
db "@"
|
||||||
|
; 0x157d1
|
||||||
|
|
||||||
|
KrisWithdrawItemMenu: ; 0x157d1
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba ClearPCItemScreen
|
||||||
|
.asm_157da
|
||||||
|
call Function15985
|
||||||
|
jr c, .asm_157e4
|
||||||
|
call Function157e9
|
||||||
|
jr .asm_157da
|
||||||
|
|
||||||
|
.asm_157e4
|
||||||
|
call Function2b3c
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
; 0x157e9
|
||||||
|
|
||||||
|
Function157e9: ; 0x157e9
|
||||||
|
; check if the item has a quantity
|
||||||
|
callba _CheckTossableItem
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
and a
|
||||||
|
jr z, .askquantity
|
||||||
|
|
||||||
|
; items without quantity are always ×1
|
||||||
|
ld a, 1
|
||||||
|
ld [wItemQuantityChangeBuffer], a
|
||||||
|
jr .withdraw
|
||||||
|
|
||||||
|
.askquantity
|
||||||
|
ld hl, .HowManyText
|
||||||
|
call MenuTextBox
|
||||||
|
callba Function24fbf
|
||||||
|
call ExitMenu
|
||||||
|
call ExitMenu
|
||||||
|
jr c, .done
|
||||||
|
|
||||||
|
.withdraw
|
||||||
|
ld a, [wItemQuantityChangeBuffer]
|
||||||
|
ld [Buffer1], a ; quantity
|
||||||
|
ld a, [wd107]
|
||||||
|
ld [Buffer2], a
|
||||||
|
ld hl, NumItems
|
||||||
|
call ReceiveItem
|
||||||
|
jr nc, .PackFull
|
||||||
|
ld a, [Buffer1]
|
||||||
|
ld [wItemQuantityChangeBuffer], a
|
||||||
|
ld a, [Buffer2]
|
||||||
|
ld [wd107], a
|
||||||
|
ld hl, PCItems
|
||||||
|
call TossItem
|
||||||
|
predef PartyMonItemName
|
||||||
|
ld hl, .WithdrewText
|
||||||
|
call MenuTextBox
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call ExitMenu
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PackFull
|
||||||
|
ld hl, .NoRoomText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ret
|
||||||
|
|
||||||
|
.done
|
||||||
|
ret
|
||||||
|
; 0x15850
|
||||||
|
|
||||||
|
.HowManyText ; 0x15850
|
||||||
|
text_jump _KrissPCHowManyWithdrawText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.WithdrewText ; 0x15855
|
||||||
|
text_jump _KrissPCWithdrewItemsText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.NoRoomText ; 0x1585a
|
||||||
|
text_jump _KrissPCNoRoomWithdrawText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
|
||||||
|
KrisTossItemMenu: ; 0x1585f
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba ClearPCItemScreen
|
||||||
|
.asm_15868
|
||||||
|
call Function15985
|
||||||
|
jr c, .asm_15878
|
||||||
|
ld de, PCItems
|
||||||
|
callba Function129f4
|
||||||
|
jr .asm_15868
|
||||||
|
|
||||||
|
.asm_15878
|
||||||
|
call Function2b3c
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
; 0x1587d
|
||||||
|
|
||||||
|
|
||||||
|
KrisDecorationMenu: ; 0x1587d
|
||||||
|
callba _KrisDecorationMenu
|
||||||
|
ld a, c
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x15888
|
||||||
|
|
||||||
|
|
||||||
|
KrisLogOffMenu: ; 0x15888
|
||||||
|
xor a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x1588b
|
||||||
|
|
||||||
|
|
||||||
|
KrisDepositItemMenu: ; 0x1588b
|
||||||
|
call Function158b8
|
||||||
|
jr c, .asm_158b6
|
||||||
|
call DisableSpriteUpdates
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba Function106a5
|
||||||
|
.asm_1589c
|
||||||
|
callba Function106be
|
||||||
|
ld a, [wcf66]
|
||||||
|
and a
|
||||||
|
jr z, .asm_158b3
|
||||||
|
call Function158cc
|
||||||
|
callba CheckRegisteredItem
|
||||||
|
jr .asm_1589c
|
||||||
|
|
||||||
|
.asm_158b3
|
||||||
|
call Function2b3c
|
||||||
|
|
||||||
|
.asm_158b6
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
; 0x158b8
|
||||||
|
|
||||||
|
Function158b8: ; 0x158b8
|
||||||
|
callba Function129d5
|
||||||
|
ret nc
|
||||||
|
ld hl, UnknownText_0x158c7
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x158c7
|
||||||
|
|
||||||
|
UnknownText_0x158c7: ; 0x158c7
|
||||||
|
; No items here!
|
||||||
|
text_jump UnknownText_0x1c13df
|
||||||
|
db "@"
|
||||||
|
; 0x158cc
|
||||||
|
|
||||||
|
|
||||||
|
Function158cc: ; 0x158cc
|
||||||
|
ld a, [wc2ce]
|
||||||
|
push af
|
||||||
|
ld a, $0
|
||||||
|
ld [wc2ce], a
|
||||||
|
callba CheckItemMenu
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
ld hl, .jumptable
|
||||||
|
rst JumpTable
|
||||||
|
pop af
|
||||||
|
ld [wc2ce], a
|
||||||
|
ret
|
||||||
|
; 0x158e7
|
||||||
|
|
||||||
|
.jumptable: ; 0x158e7
|
||||||
|
dw .tossable
|
||||||
|
dw .no_toss
|
||||||
|
dw .no_toss
|
||||||
|
dw .no_toss
|
||||||
|
dw .tossable
|
||||||
|
dw .tossable
|
||||||
|
dw .tossable
|
||||||
|
|
||||||
|
.no_toss:
|
||||||
|
ret
|
||||||
|
|
||||||
|
.tossable:
|
||||||
|
ld a, [Buffer1]
|
||||||
|
push af
|
||||||
|
ld a, [Buffer2]
|
||||||
|
push af
|
||||||
|
call Function1590a
|
||||||
|
pop af
|
||||||
|
ld [Buffer2], a
|
||||||
|
pop af
|
||||||
|
ld [Buffer1], a
|
||||||
|
ret
|
||||||
|
; 0x1590a
|
||||||
|
|
||||||
|
Function1590a: ; 0x1590a
|
||||||
|
callba _CheckTossableItem
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
and a
|
||||||
|
jr z, .asm_1591d
|
||||||
|
ld a, $1
|
||||||
|
ld [wItemQuantityChangeBuffer], a
|
||||||
|
jr .asm_15933
|
||||||
|
|
||||||
|
.asm_1591d
|
||||||
|
ld hl, .HowManyText
|
||||||
|
call MenuTextBox
|
||||||
|
callba Function24fbf
|
||||||
|
push af
|
||||||
|
call ExitMenu
|
||||||
|
call ExitMenu
|
||||||
|
pop af
|
||||||
|
jr c, .asm_1596c
|
||||||
|
|
||||||
|
.asm_15933
|
||||||
|
ld a, [wItemQuantityChangeBuffer]
|
||||||
|
ld [Buffer1], a
|
||||||
|
ld a, [wd107]
|
||||||
|
ld [Buffer2], a
|
||||||
|
ld hl, PCItems
|
||||||
|
call ReceiveItem
|
||||||
|
jr nc, .asm_15965
|
||||||
|
ld a, [Buffer1]
|
||||||
|
ld [wItemQuantityChangeBuffer], a
|
||||||
|
ld a, [Buffer2]
|
||||||
|
ld [wd107], a
|
||||||
|
ld hl, NumItems
|
||||||
|
call TossItem
|
||||||
|
predef PartyMonItemName
|
||||||
|
ld hl, .DepositText
|
||||||
|
call PrintText
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_15965
|
||||||
|
ld hl, .NoRoomText
|
||||||
|
call PrintText
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_1596c
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 0x1596e
|
||||||
|
|
||||||
|
|
||||||
|
.HowManyText ; 0x1596e
|
||||||
|
text_jump _KrissPCHowManyDepositText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.DepositText ; 0x15973
|
||||||
|
text_jump _KrissPCDepositItemsText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.NoRoomText ; 0x15978
|
||||||
|
text_jump _KrissPCNoRoomDepositText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
|
||||||
|
KrisMailBoxMenu: ; 0x1597d
|
||||||
|
callba _KrisMailBoxMenu
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
; 0x15985
|
||||||
|
|
||||||
|
|
||||||
|
Function15985: ; 0x15985
|
||||||
|
xor a
|
||||||
|
ld [wd0e3], a
|
||||||
|
.asm_15989
|
||||||
|
ld a, [wc2ce]
|
||||||
|
push af
|
||||||
|
ld a, $0
|
||||||
|
ld [wc2ce], a
|
||||||
|
ld hl, MenuData15a08
|
||||||
|
call CopyMenuDataHeader
|
||||||
|
hlcoord 0, 0
|
||||||
|
ld b, $a
|
||||||
|
ld c, $12
|
||||||
|
call TextBox
|
||||||
|
ld a, [wd0d7]
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
ld a, [wd0dd]
|
||||||
|
ld [wd0e4], a
|
||||||
|
call HandleScrollingMenu
|
||||||
|
ld a, [wd0e4]
|
||||||
|
ld [wd0dd], a
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld [wd0d7], a
|
||||||
|
pop af
|
||||||
|
ld [wc2ce], a
|
||||||
|
ld a, [wd0e3]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_159d8
|
||||||
|
ld a, [wcf73]
|
||||||
|
cp $2
|
||||||
|
jr z, .asm_15a06
|
||||||
|
cp $1
|
||||||
|
jr z, .asm_159fb
|
||||||
|
cp $4
|
||||||
|
jr z, .asm_159f2
|
||||||
|
jr .asm_159f8
|
||||||
|
|
||||||
|
.asm_159d8
|
||||||
|
ld a, [wcf73]
|
||||||
|
cp $2
|
||||||
|
jr z, .asm_159e9
|
||||||
|
cp $1
|
||||||
|
jr z, .asm_159ef
|
||||||
|
cp $4
|
||||||
|
jr z, .asm_159ef
|
||||||
|
jr .asm_159f8
|
||||||
|
|
||||||
|
.asm_159e9
|
||||||
|
xor a
|
||||||
|
ld [wd0e3], a
|
||||||
|
jr .asm_159f8
|
||||||
|
|
||||||
|
.asm_159ef
|
||||||
|
call Function156c7
|
||||||
|
|
||||||
|
.asm_159f2
|
||||||
|
callba Function2490c
|
||||||
|
|
||||||
|
.asm_159f8
|
||||||
|
jp .asm_15989
|
||||||
|
|
||||||
|
.asm_159fb
|
||||||
|
callba Function24706
|
||||||
|
call Function1bee
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_15a06
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x15a08
|
||||||
|
|
||||||
|
MenuData15a08: ; 0x15a08
|
||||||
|
db %01000000
|
||||||
|
db 1, 4 ; start coords
|
||||||
|
db 10, 18 ; end coords
|
||||||
|
dw .MenuData2
|
||||||
|
db 1 ; default option
|
||||||
|
|
||||||
|
.MenuData2
|
||||||
|
db %10110000
|
||||||
|
db 4, 8 ; rows/cols?
|
||||||
|
db 2 ; horizontal spacing?
|
||||||
|
dbw 0, PCItems
|
||||||
|
dba PlaceMenuItemName
|
||||||
|
dba PlaceMenuItemQuantity
|
||||||
|
dba Function244c3
|
||||||
|
|
||||||
|
PC_DisplayText: ; 15a20
|
||||||
|
call MenuTextBox
|
||||||
|
call ExitMenu
|
||||||
|
ret
|
||||||
|
; 15a27
|
||||||
|
|
||||||
|
|
||||||
|
UnknownText_0x15a27: ; 0x15a27
|
||||||
|
; turned on the PC.
|
||||||
|
text_jump UnknownText_0x1c144d
|
||||||
|
db "@"
|
||||||
|
; 0x15a2c
|
||||||
|
|
||||||
|
UnknownText_0x15a2c: ; 0x15a2c
|
||||||
|
; Access whose PC?
|
||||||
|
text_jump UnknownText_0x1c1462
|
||||||
|
db "@"
|
||||||
|
; 0x15a31
|
||||||
|
|
||||||
|
UnknownText_0x15a31: ; 0x15a31
|
||||||
|
; BILL's PC accessed. #MON Storage System opened.
|
||||||
|
text_jump UnknownText_0x1c1474
|
||||||
|
db "@"
|
||||||
|
; 0x15a36
|
||||||
|
|
||||||
|
UnknownText_0x15a36: ; 0x15a36
|
||||||
|
; Accessed own PC. Item Storage System opened.
|
||||||
|
text_jump UnknownText_0x1c14a4
|
||||||
|
db "@"
|
||||||
|
; 0x15a3b
|
||||||
|
|
||||||
|
UnknownText_0x15a3b: ; 0x15a3b
|
||||||
|
; PROF.OAK's PC accessed. #DEX Rating System opened.
|
||||||
|
text_jump UnknownText_0x1c14d2
|
||||||
|
db "@"
|
||||||
|
; 0x15a40
|
||||||
|
|
||||||
|
UnknownText_0x15a40: ; 0x15a40
|
||||||
|
; … Link closed…
|
||||||
|
text_jump UnknownText_0x1c1505
|
||||||
|
db "@"
|
||||||
|
; 0x15a45
|
771
engine/timeset.asm
Executable file
771
engine/timeset.asm
Executable file
@ -0,0 +1,771 @@
|
|||||||
|
InitClock: ; 90672 (24:4672)
|
||||||
|
; Ask the player to set the time.
|
||||||
|
ld a, [hInMenu]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [hInMenu], a
|
||||||
|
|
||||||
|
ld a, $0
|
||||||
|
ld [wc2ce], a
|
||||||
|
ld a, $10
|
||||||
|
ld [MusicFade], a
|
||||||
|
ld a, MUSIC_NONE % $100
|
||||||
|
ld [MusicFadeIDLo], a
|
||||||
|
ld a, MUSIC_NONE / $100
|
||||||
|
ld [MusicFadeIDHi], a
|
||||||
|
ld c, 8
|
||||||
|
call DelayFrames
|
||||||
|
call Function4dd
|
||||||
|
call ClearTileMap
|
||||||
|
call ClearSprites
|
||||||
|
ld b, SCGB_08
|
||||||
|
call GetSGBLayout
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call LoadStandardFont
|
||||||
|
ld de, GFX_908fb
|
||||||
|
ld hl, VTiles2 tile $00
|
||||||
|
lb bc, BANK(GFX_908fb), 1
|
||||||
|
call Request1bpp
|
||||||
|
ld de, GFX_90903
|
||||||
|
ld hl, VTiles2 tile $01
|
||||||
|
lb bc, BANK(GFX_90903), 1
|
||||||
|
call Request1bpp
|
||||||
|
ld de, GFX_9090b
|
||||||
|
ld hl, VTiles2 tile $02
|
||||||
|
lb bc, BANK(GFX_9090b), 1
|
||||||
|
call Request1bpp
|
||||||
|
call .ClearScreen
|
||||||
|
call WaitBGMap
|
||||||
|
call Function4a3
|
||||||
|
ld hl, UnknownText_0x90874
|
||||||
|
call PrintText
|
||||||
|
ld hl, wc608
|
||||||
|
ld bc, 50
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
ld a, $a
|
||||||
|
ld [wInitHourBuffer], a
|
||||||
|
|
||||||
|
.loop
|
||||||
|
ld hl, UnknownText_0x90879
|
||||||
|
call PrintText
|
||||||
|
hlcoord 3, 7
|
||||||
|
ld b, 2
|
||||||
|
ld c, 15
|
||||||
|
call TextBox
|
||||||
|
hlcoord 11, 7
|
||||||
|
ld [hl], $1
|
||||||
|
hlcoord 11, 10
|
||||||
|
ld [hl], $2
|
||||||
|
hlcoord 4, 9
|
||||||
|
call DisplayHourOClock
|
||||||
|
ld c, 10
|
||||||
|
call DelayFrames
|
||||||
|
|
||||||
|
.SetHourLoop
|
||||||
|
call JoyTextDelay
|
||||||
|
call SetHour
|
||||||
|
jr nc, .SetHourLoop
|
||||||
|
|
||||||
|
ld a, [wInitHourBuffer]
|
||||||
|
ld [StringBuffer2 + 1], a
|
||||||
|
call .ClearScreen
|
||||||
|
ld hl, UnknownText_0x90886
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
jr nc, .HourIsSet
|
||||||
|
call .ClearScreen
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.HourIsSet
|
||||||
|
ld hl, UnknownText_0x9089a
|
||||||
|
call PrintText
|
||||||
|
hlcoord 11, 7
|
||||||
|
lb bc, 2, 7
|
||||||
|
call TextBox
|
||||||
|
hlcoord 15, 7
|
||||||
|
ld [hl], $1
|
||||||
|
hlcoord 15, 10
|
||||||
|
ld [hl], $2
|
||||||
|
hlcoord 12, 9
|
||||||
|
call DisplayMinutesWithMinString
|
||||||
|
ld c, 10
|
||||||
|
call DelayFrames
|
||||||
|
|
||||||
|
.SetMinutesLoop
|
||||||
|
call JoyTextDelay
|
||||||
|
call SetMinutes
|
||||||
|
jr nc, .SetMinutesLoop
|
||||||
|
|
||||||
|
ld a, [BattleMonNick + 5]
|
||||||
|
ld [StringBuffer2 + 2], a
|
||||||
|
call .ClearScreen
|
||||||
|
ld hl, UnknownText_0x908a4
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
jr nc, .MinutesAreSet
|
||||||
|
call .ClearScreen
|
||||||
|
jr .HourIsSet
|
||||||
|
|
||||||
|
.MinutesAreSet
|
||||||
|
call Function658
|
||||||
|
ld hl, OakText_ResponseToSetTime
|
||||||
|
call PrintText
|
||||||
|
call WaitPressAorB_BlinkCursor
|
||||||
|
pop af
|
||||||
|
ld [hInMenu], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ClearScreen: ; 90783 (24:4783)
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
hlcoord 0, 0
|
||||||
|
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
ld a, $1
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
SetHour: ; 90795 (24:4795)
|
||||||
|
ld a, [hJoyPressed]
|
||||||
|
and A_BUTTON
|
||||||
|
jr nz, .Confirm
|
||||||
|
|
||||||
|
ld hl, hJoyLast
|
||||||
|
ld a, [hl]
|
||||||
|
and D_UP
|
||||||
|
jr nz, .up
|
||||||
|
ld a, [hl]
|
||||||
|
and D_DOWN
|
||||||
|
jr nz, .down
|
||||||
|
call DelayFrame
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.down
|
||||||
|
ld hl, wInitHourBuffer
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr nz, .DecreaseThroughMidnight
|
||||||
|
ld a, 23 + 1
|
||||||
|
.DecreaseThroughMidnight
|
||||||
|
dec a
|
||||||
|
ld [hl], a
|
||||||
|
jr .okay
|
||||||
|
|
||||||
|
.up
|
||||||
|
ld hl, wInitHourBuffer
|
||||||
|
ld a, [hl]
|
||||||
|
cp 23
|
||||||
|
jr c, .AdvanceThroughMidnight
|
||||||
|
ld a, -1
|
||||||
|
.AdvanceThroughMidnight
|
||||||
|
inc a
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.okay
|
||||||
|
hlcoord 4, 9
|
||||||
|
ld a, " "
|
||||||
|
ld bc, 15
|
||||||
|
call ByteFill
|
||||||
|
hlcoord 4, 9
|
||||||
|
call DisplayHourOClock
|
||||||
|
call WaitBGMap
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Confirm
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
DisplayHourOClock: ; 907de (24:47de)
|
||||||
|
push hl
|
||||||
|
ld a, [wInitHourBuffer]
|
||||||
|
ld c, a
|
||||||
|
ld e, l
|
||||||
|
ld d, h
|
||||||
|
call PrintHour
|
||||||
|
inc hl
|
||||||
|
ld de, String_oclock
|
||||||
|
call PlaceString
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 907f1 (24:47f1)
|
||||||
|
|
||||||
|
Function907f1: ; 907f1
|
||||||
|
ld h, d
|
||||||
|
ld l, e
|
||||||
|
push hl
|
||||||
|
call DisplayHourOClock
|
||||||
|
pop de
|
||||||
|
rept 2
|
||||||
|
inc de
|
||||||
|
endr
|
||||||
|
ld a, $9c
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
push de
|
||||||
|
ld hl, $3
|
||||||
|
add hl, de
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [de]
|
||||||
|
ld [hl], a
|
||||||
|
pop hl
|
||||||
|
call DisplayMinutesWithMinString
|
||||||
|
rept 3
|
||||||
|
inc hl
|
||||||
|
endr
|
||||||
|
ret
|
||||||
|
; 90810
|
||||||
|
|
||||||
|
SetMinutes: ; 90810 (24:4810)
|
||||||
|
ld a, [hJoyPressed]
|
||||||
|
and A_BUTTON
|
||||||
|
jr nz, .asm_90857
|
||||||
|
ld hl, hJoyLast
|
||||||
|
ld a, [hl]
|
||||||
|
and D_UP
|
||||||
|
jr nz, .asm_90835
|
||||||
|
ld a, [hl]
|
||||||
|
and D_DOWN
|
||||||
|
jr nz, .asm_90828
|
||||||
|
call DelayFrame
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
.asm_90828
|
||||||
|
ld hl, BattleMonNick + 5
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_90831
|
||||||
|
ld a, 59 + 1
|
||||||
|
.asm_90831
|
||||||
|
dec a
|
||||||
|
ld [hl], a
|
||||||
|
jr .asm_90841
|
||||||
|
.asm_90835
|
||||||
|
ld hl, BattleMonNick + 5
|
||||||
|
ld a, [hl]
|
||||||
|
cp 59
|
||||||
|
jr c, .asm_9083f
|
||||||
|
ld a, -1
|
||||||
|
.asm_9083f
|
||||||
|
inc a
|
||||||
|
ld [hl], a
|
||||||
|
.asm_90841
|
||||||
|
hlcoord 12, 9
|
||||||
|
ld a, " "
|
||||||
|
ld bc, 7
|
||||||
|
call ByteFill
|
||||||
|
hlcoord 12, 9
|
||||||
|
call DisplayMinutesWithMinString
|
||||||
|
call WaitBGMap
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
.asm_90857
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
DisplayMinutesWithMinString: ; 90859 (24:4859)
|
||||||
|
ld de, BattleMonNick + 5
|
||||||
|
call PrintTwoDigitNumberRightAlign
|
||||||
|
inc hl
|
||||||
|
ld de, String_min
|
||||||
|
call PlaceString
|
||||||
|
ret
|
||||||
|
|
||||||
|
PrintTwoDigitNumberRightAlign: ; 90867 (24:4867)
|
||||||
|
push hl
|
||||||
|
ld a, " "
|
||||||
|
ld [hli], a
|
||||||
|
ld [hl], a
|
||||||
|
pop hl
|
||||||
|
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
|
||||||
|
call PrintNum
|
||||||
|
ret
|
||||||
|
; 90874 (24:4874)
|
||||||
|
|
||||||
|
UnknownText_0x90874: ; 0x90874
|
||||||
|
; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me?
|
||||||
|
text_jump UnknownText_0x1bc29c
|
||||||
|
db "@"
|
||||||
|
; 0x90879
|
||||||
|
|
||||||
|
UnknownText_0x90879: ; 0x90879
|
||||||
|
; What time is it?
|
||||||
|
text_jump UnknownText_0x1bc2eb
|
||||||
|
db "@"
|
||||||
|
; 0x9087e
|
||||||
|
|
||||||
|
String_oclock:
|
||||||
|
db "o'clock@"
|
||||||
|
; 90886
|
||||||
|
|
||||||
|
UnknownText_0x90886: ; 0x90886
|
||||||
|
; What?@ @
|
||||||
|
text_jump UnknownText_0x1bc2fd
|
||||||
|
start_asm
|
||||||
|
hlcoord 1, 16
|
||||||
|
call DisplayHourOClock
|
||||||
|
ld hl, UnknownText_0x90895
|
||||||
|
ret
|
||||||
|
; 90895 (24:4895)
|
||||||
|
|
||||||
|
UnknownText_0x90895: ; 0x90895
|
||||||
|
; ?
|
||||||
|
text_jump UnknownText_0x1bc305
|
||||||
|
db "@"
|
||||||
|
; 0x9089a
|
||||||
|
|
||||||
|
UnknownText_0x9089a: ; 0x9089a
|
||||||
|
; How many minutes?
|
||||||
|
text_jump UnknownText_0x1bc308
|
||||||
|
db "@"
|
||||||
|
; 0x9089f
|
||||||
|
|
||||||
|
String_min:
|
||||||
|
db "min.@"
|
||||||
|
; 908a4
|
||||||
|
|
||||||
|
UnknownText_0x908a4: ; 0x908a4
|
||||||
|
; Whoa!@ @
|
||||||
|
text_jump UnknownText_0x1bc31b
|
||||||
|
start_asm
|
||||||
|
; 0x908a9
|
||||||
|
hlcoord 7, 14
|
||||||
|
call DisplayMinutesWithMinString
|
||||||
|
ld hl, UnknownText_0x908b3
|
||||||
|
ret
|
||||||
|
; 908b3 (24:48b3)
|
||||||
|
|
||||||
|
UnknownText_0x908b3: ; 0x908b3
|
||||||
|
; ?
|
||||||
|
text_jump UnknownText_0x1bc323
|
||||||
|
db "@"
|
||||||
|
; 0x908b8
|
||||||
|
|
||||||
|
OakText_ResponseToSetTime: ; 0x908b8
|
||||||
|
start_asm
|
||||||
|
decoord 1, 14
|
||||||
|
ld a, [wInitHourBuffer]
|
||||||
|
ld c, a
|
||||||
|
call PrintHour
|
||||||
|
ld [hl], ":"
|
||||||
|
inc hl
|
||||||
|
ld de, BattleMonNick + 5
|
||||||
|
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
|
||||||
|
call PrintNum
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
ld a, [wInitHourBuffer]
|
||||||
|
cp 4
|
||||||
|
jr c, .NITE
|
||||||
|
cp 11
|
||||||
|
jr c, .MORN
|
||||||
|
cp 18
|
||||||
|
jr c, .DAY
|
||||||
|
.NITE
|
||||||
|
ld hl, .sodark
|
||||||
|
ret
|
||||||
|
.MORN
|
||||||
|
ld hl, .overslept
|
||||||
|
ret
|
||||||
|
.DAY
|
||||||
|
ld hl, .yikes
|
||||||
|
ret
|
||||||
|
; 908ec (24:48ec)
|
||||||
|
|
||||||
|
.overslept: ; 0x908ec
|
||||||
|
; ! I overslept!
|
||||||
|
text_jump UnknownText_0x1bc326
|
||||||
|
db "@"
|
||||||
|
; 0x908f1
|
||||||
|
|
||||||
|
.yikes: ; 0x908f1
|
||||||
|
; ! Yikes! I over- slept!
|
||||||
|
text_jump UnknownText_0x1bc336
|
||||||
|
db "@"
|
||||||
|
; 0x908f6
|
||||||
|
|
||||||
|
.sodark: ; 0x908f6
|
||||||
|
; ! No wonder it's so dark!
|
||||||
|
text_jump UnknownText_0x1bc34f
|
||||||
|
db "@"
|
||||||
|
; 0x908fb
|
||||||
|
|
||||||
|
GFX_908fb: ; 908fb
|
||||||
|
INCBIN "gfx/unknown/0908fb.2bpp"
|
||||||
|
GFX_90903: ; 90903
|
||||||
|
INCBIN "gfx/unknown/090903.2bpp"
|
||||||
|
GFX_9090b: ; 9090b
|
||||||
|
INCBIN "gfx/unknown/09090b.2bpp"
|
||||||
|
; 90913
|
||||||
|
|
||||||
|
Special_SetDayOfWeek: ; 90913
|
||||||
|
ld a, [hInMenu]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [hInMenu], a
|
||||||
|
ld de, GFX_90903
|
||||||
|
ld hl, VTiles1 tile $6f
|
||||||
|
lb bc, BANK(GFX_90903), 1
|
||||||
|
call Request1bpp
|
||||||
|
ld de, GFX_9090b
|
||||||
|
ld hl, VTiles1 tile $75
|
||||||
|
lb bc, BANK(GFX_9090b), 1
|
||||||
|
call Request1bpp
|
||||||
|
xor a
|
||||||
|
ld [wd002], a
|
||||||
|
.asm_90936
|
||||||
|
hlcoord 0, 12
|
||||||
|
lb bc, 4, 18
|
||||||
|
call TextBox
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
ld hl, UnknownText_0x90a3f
|
||||||
|
call PrintText
|
||||||
|
hlcoord 9, 3
|
||||||
|
ld b, 2
|
||||||
|
ld c, 9
|
||||||
|
call TextBox
|
||||||
|
hlcoord 14, 3
|
||||||
|
ld [hl], $ef
|
||||||
|
hlcoord 14, 6
|
||||||
|
ld [hl], $f5
|
||||||
|
hlcoord 10, 5
|
||||||
|
call Function909de
|
||||||
|
call Function321c
|
||||||
|
ld c, 10
|
||||||
|
call DelayFrames
|
||||||
|
.asm_9096a
|
||||||
|
call JoyTextDelay
|
||||||
|
call Function90993
|
||||||
|
jr nc, .asm_9096a
|
||||||
|
call ExitMenu
|
||||||
|
call UpdateSprites
|
||||||
|
ld hl, UnknownText_0x90a44
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .asm_90936
|
||||||
|
ld a, [wd002]
|
||||||
|
ld [StringBuffer2], a
|
||||||
|
call Function663
|
||||||
|
call LoadStandardFont
|
||||||
|
pop af
|
||||||
|
ld [hInMenu], a
|
||||||
|
ret
|
||||||
|
; 90993
|
||||||
|
|
||||||
|
Function90993: ; 90993
|
||||||
|
ld a, [hJoyPressed]
|
||||||
|
and A_BUTTON
|
||||||
|
jr z, .asm_9099b
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_9099b
|
||||||
|
ld hl, hJoyLast
|
||||||
|
ld a, [hl]
|
||||||
|
and D_UP
|
||||||
|
jr nz, .asm_909ba
|
||||||
|
ld a, [hl]
|
||||||
|
and D_DOWN
|
||||||
|
jr nz, .asm_909ad
|
||||||
|
call DelayFrame
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_909ad
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_909b6
|
||||||
|
ld a, 6 + 1
|
||||||
|
|
||||||
|
.asm_909b6
|
||||||
|
dec a
|
||||||
|
ld [hl], a
|
||||||
|
jr .asm_909c6
|
||||||
|
|
||||||
|
.asm_909ba
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, [hl]
|
||||||
|
cp 6
|
||||||
|
jr c, .asm_909c4
|
||||||
|
ld a, -1
|
||||||
|
|
||||||
|
.asm_909c4
|
||||||
|
inc a
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.asm_909c6
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
hlcoord 10, 4
|
||||||
|
ld b, $2
|
||||||
|
ld c, $9
|
||||||
|
call ClearBox
|
||||||
|
hlcoord 10, 5
|
||||||
|
call Function909de
|
||||||
|
call WaitBGMap
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 909de
|
||||||
|
|
||||||
|
Function909de: ; 909de
|
||||||
|
push hl
|
||||||
|
ld a, [wd002]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, WeekdaysStrings
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld d, [hl]
|
||||||
|
ld e, a
|
||||||
|
pop hl
|
||||||
|
call PlaceString
|
||||||
|
ret
|
||||||
|
; 909f2
|
||||||
|
|
||||||
|
WeekdaysStrings: ; 909f2
|
||||||
|
dw Sunday
|
||||||
|
dw Monday
|
||||||
|
dw Tuesday
|
||||||
|
dw Wednesday
|
||||||
|
dw Thursday
|
||||||
|
dw Friday
|
||||||
|
dw Saturday
|
||||||
|
dw Sunday
|
||||||
|
|
||||||
|
Sunday: db " SUNDAY@"
|
||||||
|
Monday: db " MONDAY@"
|
||||||
|
Tuesday: db " TUESDAY@"
|
||||||
|
Wednesday: db "WEDNESDAY@"
|
||||||
|
Thursday: db "THURSDAY@"
|
||||||
|
Friday: db " FRIDAY@"
|
||||||
|
Saturday: db "SATURDAY@"
|
||||||
|
|
||||||
|
|
||||||
|
UnknownText_0x90a3f: ; 0x90a3f
|
||||||
|
; What day is it?
|
||||||
|
text_jump UnknownText_0x1bc369
|
||||||
|
db "@"
|
||||||
|
; 0x90a44
|
||||||
|
|
||||||
|
UnknownText_0x90a44: ; 0x90a44
|
||||||
|
start_asm
|
||||||
|
hlcoord 1, 14
|
||||||
|
call Function909de
|
||||||
|
ld hl, UnknownText_0x90a4f
|
||||||
|
ret
|
||||||
|
; 90a4f (24:4a4f)
|
||||||
|
|
||||||
|
UnknownText_0x90a4f: ; 0x90a4f
|
||||||
|
; , is it?
|
||||||
|
text_jump UnknownText_0x1bc37a
|
||||||
|
db "@"
|
||||||
|
; 0x90a54
|
||||||
|
|
||||||
|
Special_InitialSetDSTFlag: ; 90a54
|
||||||
|
ld a, [wDST]
|
||||||
|
set 7, a
|
||||||
|
ld [wDST], a
|
||||||
|
hlcoord 1, 14
|
||||||
|
lb bc, 3, 18
|
||||||
|
call ClearBox
|
||||||
|
ld hl, UnknownText_0x90a6c
|
||||||
|
call PlaceWholeStringInBoxAtOnce
|
||||||
|
ret
|
||||||
|
; 90a6c
|
||||||
|
|
||||||
|
UnknownText_0x90a6c: ; 90a6c
|
||||||
|
start_asm
|
||||||
|
call UpdateTime
|
||||||
|
ld a, [hHours]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hMinutes]
|
||||||
|
ld c, a
|
||||||
|
decoord 1, 14
|
||||||
|
callba PrintHoursMins
|
||||||
|
ld hl, TextJump_DSTIsThatOK
|
||||||
|
ret
|
||||||
|
; 90a83 (24:4a83)
|
||||||
|
|
||||||
|
TextJump_DSTIsThatOK: ; 0x90a83
|
||||||
|
; DST, is that OK?
|
||||||
|
text_jump Text_DSTIsThatOK
|
||||||
|
db "@"
|
||||||
|
; 0x90a88
|
||||||
|
|
||||||
|
Special_InitialClearDSTFlag: ; 90a88
|
||||||
|
ld a, [wDST]
|
||||||
|
res 7, a
|
||||||
|
ld [wDST], a
|
||||||
|
hlcoord 1, 14
|
||||||
|
lb bc, 3, 18
|
||||||
|
call ClearBox
|
||||||
|
ld hl, UnknownText_0x90aa0
|
||||||
|
call PlaceWholeStringInBoxAtOnce
|
||||||
|
ret
|
||||||
|
; 90aa0
|
||||||
|
|
||||||
|
UnknownText_0x90aa0: ; 90aa0
|
||||||
|
start_asm
|
||||||
|
call UpdateTime
|
||||||
|
ld a, [hHours]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hMinutes]
|
||||||
|
ld c, a
|
||||||
|
decoord 1, 14
|
||||||
|
callba PrintHoursMins
|
||||||
|
ld hl, UnknownText_0x90ab7
|
||||||
|
ret
|
||||||
|
; 90ab7
|
||||||
|
|
||||||
|
UnknownText_0x90ab7: ; 0x90ab7
|
||||||
|
; , is that OK?
|
||||||
|
text_jump UnknownText_0x1c5ff1
|
||||||
|
db "@"
|
||||||
|
; 0x90abc
|
||||||
|
|
||||||
|
Function90abc: ; 90abc
|
||||||
|
hlcoord 1, 14
|
||||||
|
lb bc, 3, SCREEN_WIDTH - 2
|
||||||
|
call ClearBox
|
||||||
|
ld hl, UnknownText_0x90acc
|
||||||
|
call PlaceWholeStringInBoxAtOnce
|
||||||
|
ret
|
||||||
|
; 90acc
|
||||||
|
|
||||||
|
UnknownText_0x90acc: ; 0x90acc
|
||||||
|
start_asm
|
||||||
|
|
||||||
|
call UpdateTime
|
||||||
|
|
||||||
|
hlcoord 1, 14
|
||||||
|
ld [hl], "R"
|
||||||
|
inc hl
|
||||||
|
ld [hl], "T"
|
||||||
|
inc hl
|
||||||
|
ld [hl], " "
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
ld de, hRTCDayLo
|
||||||
|
call Function90b23
|
||||||
|
|
||||||
|
hlcoord 1, 16
|
||||||
|
ld [hl], "D"
|
||||||
|
inc hl
|
||||||
|
ld [hl], "F"
|
||||||
|
inc hl
|
||||||
|
ld [hl], " "
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
ld de, StartDay
|
||||||
|
call Function90b23
|
||||||
|
|
||||||
|
ld [hl], " "
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
ld a, [wDST]
|
||||||
|
bit 7, a
|
||||||
|
jr z, .off
|
||||||
|
|
||||||
|
ld [hl], "O"
|
||||||
|
inc hl
|
||||||
|
ld [hl], "N"
|
||||||
|
inc hl
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.off
|
||||||
|
ld [hl], "O"
|
||||||
|
inc hl
|
||||||
|
ld [hl], "F"
|
||||||
|
inc hl
|
||||||
|
ld [hl], "F"
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
.done
|
||||||
|
ld hl, UnknownText_0x90b13
|
||||||
|
ret
|
||||||
|
; 90b13
|
||||||
|
|
||||||
|
UnknownText_0x90b13: ; 0x90b13
|
||||||
|
text "<PARA>Now on DEBUG…"
|
||||||
|
prompt
|
||||||
|
; 0x90b23
|
||||||
|
|
||||||
|
Function90b23: ; 90b23
|
||||||
|
lb bc, 1, 3
|
||||||
|
call PrintNum
|
||||||
|
ld [hl], "."
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
|
||||||
|
call PrintNum
|
||||||
|
ld [hl], ":"
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
|
||||||
|
call PrintNum
|
||||||
|
ret
|
||||||
|
; 90b3e
|
||||||
|
|
||||||
|
PrintHour: ; 90b3e (24:4b3e)
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
push bc
|
||||||
|
call GetTimeOfDayString
|
||||||
|
call PlaceString
|
||||||
|
ld l, c
|
||||||
|
ld h, b
|
||||||
|
inc hl
|
||||||
|
pop bc
|
||||||
|
call AdjustHourForAMorPM
|
||||||
|
ld [wd265], a
|
||||||
|
ld de, wd265
|
||||||
|
call PrintTwoDigitNumberRightAlign
|
||||||
|
ret
|
||||||
|
|
||||||
|
GetTimeOfDayString: ; 90b58 (24:4b58)
|
||||||
|
ld a, c
|
||||||
|
cp 4
|
||||||
|
jr c, .nite
|
||||||
|
cp 10
|
||||||
|
jr c, .morn
|
||||||
|
cp 18
|
||||||
|
jr c, .day
|
||||||
|
.nite
|
||||||
|
ld de, .NITE
|
||||||
|
ret
|
||||||
|
.morn
|
||||||
|
ld de, .MORN
|
||||||
|
ret
|
||||||
|
.day
|
||||||
|
ld de, .DAY
|
||||||
|
ret
|
||||||
|
; 90b71 (24:4b71)
|
||||||
|
|
||||||
|
.NITE: db "NITE@"
|
||||||
|
.MORN: db "MORN@"
|
||||||
|
.DAY: db "DAY@"
|
||||||
|
; 90b7f
|
||||||
|
|
||||||
|
AdjustHourForAMorPM:
|
||||||
|
; Convert the hour stored in c (0-23) to a 1-12 value
|
||||||
|
ld a, c
|
||||||
|
or a
|
||||||
|
jr z, .midnight
|
||||||
|
cp 12
|
||||||
|
ret c
|
||||||
|
ret z
|
||||||
|
sub 12
|
||||||
|
ret
|
||||||
|
|
||||||
|
.midnight
|
||||||
|
ld a, 12
|
||||||
|
ret
|
@ -11,7 +11,7 @@ SpecialBuenasPassword: ; 8af6b
|
|||||||
add $2
|
add $2
|
||||||
ld [wMenuBorderRightCoord], a
|
ld [wMenuBorderRightCoord], a
|
||||||
call BackUpTiles
|
call BackUpTiles
|
||||||
call Function1e5d ; menu
|
call DoNthMenu ; menu
|
||||||
callba Function4ae5e
|
callba Function4ae5e
|
||||||
ld b, $0
|
ld b, $0
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
|
768
event/daycare.asm
Executable file
768
event/daycare.asm
Executable file
@ -0,0 +1,768 @@
|
|||||||
|
Special_DayCareMan: ; 166d6
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
bit 0, [hl]
|
||||||
|
jr nz, .asm_166fe
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
ld a, $0
|
||||||
|
call Function1678f
|
||||||
|
jr c, .asm_16724
|
||||||
|
call Function16798
|
||||||
|
jr c, .asm_16721
|
||||||
|
callba Functionde2a
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
set 0, [hl]
|
||||||
|
call Function167f6
|
||||||
|
call Function16a3b
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_166fe
|
||||||
|
callba Functione698
|
||||||
|
ld hl, wBreedMon1Nick
|
||||||
|
call Function1686d
|
||||||
|
call Function16807
|
||||||
|
jr c, .asm_16721
|
||||||
|
callba Functiondd21
|
||||||
|
call Function16850
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
res 0, [hl]
|
||||||
|
res 5, [hl]
|
||||||
|
jr .asm_16724
|
||||||
|
|
||||||
|
.asm_16721
|
||||||
|
call Function1689b
|
||||||
|
|
||||||
|
.asm_16724
|
||||||
|
ld a, $13
|
||||||
|
call Function1689b
|
||||||
|
ret
|
||||||
|
; 1672a
|
||||||
|
|
||||||
|
Special_DayCareLady: ; 1672a
|
||||||
|
ld hl, wDaycareLady
|
||||||
|
bit 0, [hl]
|
||||||
|
jr nz, .asm_16752
|
||||||
|
ld hl, wDaycareLady
|
||||||
|
ld a, $2
|
||||||
|
call Function16781
|
||||||
|
jr c, .asm_1677b
|
||||||
|
call Function16798
|
||||||
|
jr c, .asm_16778
|
||||||
|
callba Functionde37
|
||||||
|
ld hl, wDaycareLady
|
||||||
|
set 0, [hl]
|
||||||
|
call Function167f6
|
||||||
|
call Function16a3b
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16752
|
||||||
|
callba Functione6b3
|
||||||
|
ld hl, wBreedMon2Nick
|
||||||
|
call Function1686d
|
||||||
|
call Function16807
|
||||||
|
jr c, .asm_16778
|
||||||
|
callba Functiondd42
|
||||||
|
call Function16850
|
||||||
|
ld hl, wDaycareLady
|
||||||
|
res 0, [hl]
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
res 5, [hl]
|
||||||
|
jr .asm_1677b
|
||||||
|
|
||||||
|
.asm_16778
|
||||||
|
call Function1689b
|
||||||
|
|
||||||
|
.asm_1677b
|
||||||
|
ld a, $13
|
||||||
|
call Function1689b
|
||||||
|
ret
|
||||||
|
; 16781
|
||||||
|
|
||||||
|
Function16781: ; 16781
|
||||||
|
bit 7, [hl]
|
||||||
|
jr nz, .asm_16788
|
||||||
|
set 7, [hl]
|
||||||
|
inc a
|
||||||
|
|
||||||
|
.asm_16788
|
||||||
|
call Function1689b
|
||||||
|
call YesNoBox
|
||||||
|
ret
|
||||||
|
; 1678f
|
||||||
|
|
||||||
|
Function1678f: ; 1678f
|
||||||
|
set 7, [hl]
|
||||||
|
call Function1689b
|
||||||
|
call YesNoBox
|
||||||
|
ret
|
||||||
|
; 16798
|
||||||
|
|
||||||
|
Function16798: ; 16798
|
||||||
|
ld a, [PartyCount]
|
||||||
|
cp 2
|
||||||
|
jr c, .asm_167e5
|
||||||
|
ld a, 4
|
||||||
|
call Function1689b
|
||||||
|
ld b, 6
|
||||||
|
callba Function5001d
|
||||||
|
jr c, .asm_167dd
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp EGG
|
||||||
|
jr z, .asm_167e1
|
||||||
|
callba CheckCurPartyMonFainted
|
||||||
|
jr c, .asm_167e9
|
||||||
|
ld hl, PartyMon1Item
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
call AddNTimes
|
||||||
|
ld d, [hl]
|
||||||
|
callba ItemIsMail
|
||||||
|
jr c, .asm_167ed
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
call GetNick
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_167dd
|
||||||
|
ld a, $12
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_167e1
|
||||||
|
ld a, $6
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_167e5
|
||||||
|
ld a, $7
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_167e9
|
||||||
|
ld a, $8
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_167ed
|
||||||
|
ld a, $a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 167f1
|
||||||
|
|
||||||
|
UnknownText_0x167f1: ; 0x167f1
|
||||||
|
;
|
||||||
|
text_jump UnknownText_0x1bdaa7
|
||||||
|
db "@"
|
||||||
|
; 0x167f6
|
||||||
|
|
||||||
|
Function167f6: ; 167f6
|
||||||
|
ld a, $5
|
||||||
|
call Function1689b
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
call PlayCry
|
||||||
|
ld a, $9
|
||||||
|
call Function1689b
|
||||||
|
ret
|
||||||
|
; 16807
|
||||||
|
|
||||||
|
Function16807: ; 16807
|
||||||
|
ld a, [StringBuffer2 + 1]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_16819
|
||||||
|
ld a, $f
|
||||||
|
call Function1689b
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .asm_16844
|
||||||
|
jr .asm_1682d
|
||||||
|
|
||||||
|
.asm_16819
|
||||||
|
ld a, $b
|
||||||
|
call Function1689b
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .asm_16844
|
||||||
|
ld a, $c
|
||||||
|
call Function1689b
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .asm_16844
|
||||||
|
|
||||||
|
.asm_1682d
|
||||||
|
ld de, Money
|
||||||
|
ld bc, StringBuffer2 + 2
|
||||||
|
callba CompareMoney
|
||||||
|
jr c, .asm_16848
|
||||||
|
ld a, [PartyCount]
|
||||||
|
cp $6
|
||||||
|
jr nc, .asm_1684c
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16844
|
||||||
|
ld a, $12
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16848
|
||||||
|
ld a, $11
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_1684c
|
||||||
|
ld a, $10
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 16850
|
||||||
|
|
||||||
|
Function16850: ; 16850
|
||||||
|
ld bc, StringBuffer2 + 2
|
||||||
|
ld de, Money
|
||||||
|
callba TakeMoney
|
||||||
|
ld a, $d
|
||||||
|
call Function1689b
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
call PlayCry
|
||||||
|
ld a, $e
|
||||||
|
call Function1689b
|
||||||
|
ret
|
||||||
|
; 1686d
|
||||||
|
|
||||||
|
Function1686d: ; 1686d
|
||||||
|
ld a, b
|
||||||
|
ld [StringBuffer2], a
|
||||||
|
ld a, d
|
||||||
|
ld [StringBuffer2 + 1], a
|
||||||
|
ld de, StringBuffer1
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
ld hl, 0
|
||||||
|
ld bc, $64
|
||||||
|
ld a, [StringBuffer2 + 1]
|
||||||
|
call AddNTimes
|
||||||
|
ld de, $64
|
||||||
|
add hl, de
|
||||||
|
xor a
|
||||||
|
ld [StringBuffer2 + 2], a
|
||||||
|
ld a, h
|
||||||
|
ld [StringBuffer2 + 3], a
|
||||||
|
ld a, l
|
||||||
|
ld [StringBuffer2 + 4], a
|
||||||
|
ret
|
||||||
|
; 1689b
|
||||||
|
|
||||||
|
Function1689b: ; 1689b
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, TextTable_168aa
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
call PrintText
|
||||||
|
ret
|
||||||
|
; 168aa
|
||||||
|
|
||||||
|
TextTable_168aa: ; 168aa
|
||||||
|
dw UnknownText_0x168d2
|
||||||
|
dw UnknownText_0x168d7
|
||||||
|
dw UnknownText_0x168dc
|
||||||
|
dw UnknownText_0x168e1
|
||||||
|
dw UnknownText_0x168e6
|
||||||
|
dw UnknownText_0x168ff
|
||||||
|
dw UnknownText_0x168f0
|
||||||
|
dw UnknownText_0x168eb
|
||||||
|
dw UnknownText_0x168fa
|
||||||
|
dw UnknownText_0x16904
|
||||||
|
dw UnknownText_0x168f5
|
||||||
|
dw UnknownText_0x16909
|
||||||
|
dw UnknownText_0x1690e
|
||||||
|
dw UnknownText_0x16913
|
||||||
|
dw UnknownText_0x16918
|
||||||
|
dw UnknownText_0x1691d
|
||||||
|
dw UnknownText_0x16922
|
||||||
|
dw UnknownText_0x16927
|
||||||
|
dw UnknownText_0x1692c
|
||||||
|
dw UnknownText_0x16931
|
||||||
|
; 168d2
|
||||||
|
|
||||||
|
UnknownText_0x168d2: ; 0x168d2
|
||||||
|
; I'm the DAY-CARE MAN. Want me to raise a #MON?
|
||||||
|
text_jump UnknownText_0x1bdaa9
|
||||||
|
db "@"
|
||||||
|
; 0x168d7
|
||||||
|
|
||||||
|
UnknownText_0x168d7: ; 0x168d7
|
||||||
|
; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON?
|
||||||
|
text_jump UnknownText_0x1bdad8
|
||||||
|
db "@"
|
||||||
|
; 0x168dc
|
||||||
|
|
||||||
|
UnknownText_0x168dc: ; 0x168dc
|
||||||
|
; I'm the DAY-CARE LADY. Should I raise a #MON for you?
|
||||||
|
text_jump UnknownText_0x1bdb85
|
||||||
|
db "@"
|
||||||
|
; 0x168e1
|
||||||
|
|
||||||
|
UnknownText_0x168e1: ; 0x168e1
|
||||||
|
; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you?
|
||||||
|
text_jump UnknownText_0x1bdbbb
|
||||||
|
db "@"
|
||||||
|
; 0x168e6
|
||||||
|
|
||||||
|
UnknownText_0x168e6: ; 0x168e6
|
||||||
|
; What should I raise for you?
|
||||||
|
text_jump UnknownText_0x1bdc79
|
||||||
|
db "@"
|
||||||
|
; 0x168eb
|
||||||
|
|
||||||
|
UnknownText_0x168eb: ; 0x168eb
|
||||||
|
; Oh? But you have just one #MON.
|
||||||
|
text_jump UnknownText_0x1bdc97
|
||||||
|
db "@"
|
||||||
|
; 0x168f0
|
||||||
|
|
||||||
|
UnknownText_0x168f0: ; 0x168f0
|
||||||
|
; Sorry, but I can't accept an EGG.
|
||||||
|
text_jump UnknownText_0x1bdcb8
|
||||||
|
db "@"
|
||||||
|
; 0x168f5
|
||||||
|
|
||||||
|
UnknownText_0x168f5: ; 0x168f5
|
||||||
|
; Remove MAIL before you come see me.
|
||||||
|
text_jump UnknownText_0x1bdcda
|
||||||
|
db "@"
|
||||||
|
; 0x168fa
|
||||||
|
|
||||||
|
UnknownText_0x168fa: ; 0x168fa
|
||||||
|
; If you give me that, what will you battle with?
|
||||||
|
text_jump UnknownText_0x1bdcff
|
||||||
|
db "@"
|
||||||
|
; 0x168ff
|
||||||
|
|
||||||
|
UnknownText_0x168ff: ; 0x168ff
|
||||||
|
; OK. I'll raise your @ .
|
||||||
|
text_jump UnknownText_0x1bdd30
|
||||||
|
db "@"
|
||||||
|
; 0x16904
|
||||||
|
|
||||||
|
UnknownText_0x16904: ; 0x16904
|
||||||
|
; Come back for it later.
|
||||||
|
text_jump UnknownText_0x1bdd4b
|
||||||
|
db "@"
|
||||||
|
; 0x16909
|
||||||
|
|
||||||
|
UnknownText_0x16909: ; 0x16909
|
||||||
|
; Are we geniuses or what? Want to see your @ ?
|
||||||
|
text_jump UnknownText_0x1bdd64
|
||||||
|
db "@"
|
||||||
|
; 0x1690e
|
||||||
|
|
||||||
|
UnknownText_0x1690e: ; 0x1690e
|
||||||
|
; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ .
|
||||||
|
text_jump UnknownText_0x1bdd96
|
||||||
|
db "@"
|
||||||
|
; 0x16913
|
||||||
|
|
||||||
|
UnknownText_0x16913: ; 0x16913
|
||||||
|
; Perfect! Here's your #MON.
|
||||||
|
text_jump UnknownText_0x1bde04
|
||||||
|
db "@"
|
||||||
|
; 0x16918
|
||||||
|
|
||||||
|
UnknownText_0x16918: ; 0x16918
|
||||||
|
; got back @ .
|
||||||
|
text_jump UnknownText_0x1bde1f
|
||||||
|
db "@"
|
||||||
|
; 0x1691d
|
||||||
|
|
||||||
|
UnknownText_0x1691d: ; 0x1691d
|
||||||
|
; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100.
|
||||||
|
text_jump UnknownText_0x1bde32
|
||||||
|
db "@"
|
||||||
|
; 0x16922
|
||||||
|
|
||||||
|
UnknownText_0x16922: ; 0x16922
|
||||||
|
; You have no room for it.
|
||||||
|
text_jump UnknownText_0x1bdea2
|
||||||
|
db "@"
|
||||||
|
; 0x16927
|
||||||
|
|
||||||
|
UnknownText_0x16927: ; 0x16927
|
||||||
|
; You don't have enough money.
|
||||||
|
text_jump UnknownText_0x1bdebc
|
||||||
|
db "@"
|
||||||
|
; 0x1692c
|
||||||
|
|
||||||
|
UnknownText_0x1692c: ; 0x1692c
|
||||||
|
; Oh, fine then.
|
||||||
|
text_jump UnknownText_0x1bded9
|
||||||
|
db "@"
|
||||||
|
; 0x16931
|
||||||
|
|
||||||
|
UnknownText_0x16931: ; 0x16931
|
||||||
|
; Come again.
|
||||||
|
text_jump UnknownText_0x1bdee9
|
||||||
|
db "@"
|
||||||
|
; 0x16936
|
||||||
|
|
||||||
|
Special_DayCareManOutside: ; 16936
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
bit 6, [hl]
|
||||||
|
jr nz, Function16949
|
||||||
|
ld hl, UnknownText_0x16944
|
||||||
|
call PrintText
|
||||||
|
ret
|
||||||
|
|
||||||
|
UnknownText_0x16944: ; 0x16944
|
||||||
|
; Not yet…
|
||||||
|
text_jump UnknownText_0x1bdef6
|
||||||
|
db "@"
|
||||||
|
; 0x16949
|
||||||
|
|
||||||
|
Function16949: ; 16949
|
||||||
|
ld hl, UnknownText_0x16993
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .asm_1697c
|
||||||
|
ld a, [PartyCount]
|
||||||
|
cp PARTY_LENGTH
|
||||||
|
jr nc, .asm_16987
|
||||||
|
call Function169ac
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
res 6, [hl]
|
||||||
|
call Function16a3b
|
||||||
|
ld hl, UnknownText_0x16998
|
||||||
|
call PrintText
|
||||||
|
ld de, SFX_GET_EGG_FROM_DAYCARE_LADY
|
||||||
|
call PlaySFX
|
||||||
|
ld c, 120
|
||||||
|
call DelayFrames
|
||||||
|
ld hl, UnknownText_0x1699d
|
||||||
|
jr .asm_1697f
|
||||||
|
|
||||||
|
.asm_1697c
|
||||||
|
ld hl, UnknownText_0x169a2
|
||||||
|
|
||||||
|
.asm_1697f
|
||||||
|
call PrintText
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16987
|
||||||
|
ld hl, UnknownText_0x169a7
|
||||||
|
call PrintText
|
||||||
|
ld a, $1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
; 16993
|
||||||
|
|
||||||
|
UnknownText_0x16993: ; 0x16993
|
||||||
|
; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it?
|
||||||
|
text_jump UnknownText_0x1bdf00
|
||||||
|
db "@"
|
||||||
|
; 0x16998
|
||||||
|
|
||||||
|
UnknownText_0x16998: ; 0x16998
|
||||||
|
; received the EGG!
|
||||||
|
text_jump UnknownText_0x1bdfa5
|
||||||
|
db "@"
|
||||||
|
; 0x1699d
|
||||||
|
|
||||||
|
UnknownText_0x1699d: ; 0x1699d
|
||||||
|
; Take good care of it.
|
||||||
|
text_jump UnknownText_0x1bdfba
|
||||||
|
db "@"
|
||||||
|
; 0x169a2
|
||||||
|
|
||||||
|
UnknownText_0x169a2: ; 0x169a2
|
||||||
|
; Well then, I'll keep it. Thanks!
|
||||||
|
text_jump UnknownText_0x1bdfd1
|
||||||
|
db "@"
|
||||||
|
; 0x169a7
|
||||||
|
|
||||||
|
UnknownText_0x169a7: ; 0x169a7
|
||||||
|
; You have no room in your party. Come back later.
|
||||||
|
text_jump UnknownText_0x1bdff2
|
||||||
|
db "@"
|
||||||
|
; 0x169ac
|
||||||
|
|
||||||
|
Function169ac: ; 169ac
|
||||||
|
ld a, [wEggMonLevel]
|
||||||
|
ld [CurPartyLevel], a
|
||||||
|
ld hl, PartyCount
|
||||||
|
ld a, [hl]
|
||||||
|
cp PARTY_LENGTH
|
||||||
|
jr nc, .asm_16a2f
|
||||||
|
inc a
|
||||||
|
ld [hl], a
|
||||||
|
ld c, a
|
||||||
|
ld b, 0
|
||||||
|
add hl, bc
|
||||||
|
ld a, EGG
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [wEggMonSpecies]
|
||||||
|
ld [CurSpecies], a
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
ld a, $ff
|
||||||
|
ld [hl], a
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call Function16a31
|
||||||
|
ld hl, wEggNick
|
||||||
|
call CopyBytes
|
||||||
|
ld hl, PartyMonOT
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call Function16a31
|
||||||
|
ld hl, wEggOT
|
||||||
|
call CopyBytes
|
||||||
|
ld hl, PartyMon1
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call Function16a31
|
||||||
|
ld hl, wEggMon
|
||||||
|
ld bc, wEggMonEnd - wEggMon
|
||||||
|
call CopyBytes
|
||||||
|
call GetBaseData
|
||||||
|
ld a, [PartyCount]
|
||||||
|
dec a
|
||||||
|
ld hl, PartyMon1
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
ld hl, MON_ID + 1
|
||||||
|
add hl, bc
|
||||||
|
push hl
|
||||||
|
ld hl, MON_MAXHP
|
||||||
|
add hl, bc
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
push bc
|
||||||
|
ld b, $0
|
||||||
|
predef CalcPkmnStats
|
||||||
|
pop bc
|
||||||
|
ld hl, MON_HP
|
||||||
|
add hl, bc
|
||||||
|
xor a
|
||||||
|
ld [hli], a
|
||||||
|
ld [hl], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_16a2f
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 16a31
|
||||||
|
|
||||||
|
Function16a31: ; 16a31
|
||||||
|
ld a, [PartyCount]
|
||||||
|
dec a
|
||||||
|
call AddNTimes
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
ret
|
||||||
|
; 16a3b
|
||||||
|
|
||||||
|
Function16a3b: ; 16a3b
|
||||||
|
ld a, [wDaycareLady]
|
||||||
|
bit 0, a
|
||||||
|
ret z
|
||||||
|
ld a, [wDaycareMan]
|
||||||
|
bit 0, a
|
||||||
|
ret z
|
||||||
|
callab Function16e1d
|
||||||
|
ld a, [wd265]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
inc a
|
||||||
|
ret z
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
set 5, [hl]
|
||||||
|
.asm_16a59
|
||||||
|
call Random
|
||||||
|
cp 150
|
||||||
|
jr c, .asm_16a59
|
||||||
|
ld [wStepsToEgg], a
|
||||||
|
jp Function16a66
|
||||||
|
; 16a66
|
||||||
|
|
||||||
|
Function16a66: ; 16a66
|
||||||
|
xor a
|
||||||
|
ld hl, wEggMon
|
||||||
|
ld bc, wEggMonEnd - wEggMon
|
||||||
|
call ByteFill
|
||||||
|
ld hl, wEggNick
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call ByteFill
|
||||||
|
ld hl, wEggOT
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call ByteFill
|
||||||
|
ld a, [wBreedMon1DVs]
|
||||||
|
ld [TempMonDVs], a
|
||||||
|
ld a, [wBreedMon1DVs + 1]
|
||||||
|
ld [TempMonDVs + 1], a
|
||||||
|
ld a, [wBreedMon1Species]
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
ld a, $3
|
||||||
|
ld [MonType], a
|
||||||
|
ld a, [wBreedMon1Species]
|
||||||
|
cp DITTO
|
||||||
|
ld a, $1
|
||||||
|
jr z, .asm_16ab6
|
||||||
|
ld a, [wBreedMon2Species]
|
||||||
|
cp DITTO
|
||||||
|
ld a, $0
|
||||||
|
jr z, .asm_16ab6
|
||||||
|
callba GetGender
|
||||||
|
ld a, $0
|
||||||
|
jr z, .asm_16ab6
|
||||||
|
inc a
|
||||||
|
|
||||||
|
.asm_16ab6
|
||||||
|
ld [wDittoInDaycare], a
|
||||||
|
and a
|
||||||
|
ld a, [wBreedMon1Species]
|
||||||
|
jr z, .asm_16ac2
|
||||||
|
ld a, [wBreedMon2Species]
|
||||||
|
|
||||||
|
.asm_16ac2
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
callab GetPreEvolution
|
||||||
|
callab GetPreEvolution
|
||||||
|
ld a, EGG_LEVEL
|
||||||
|
ld [CurPartyLevel], a
|
||||||
|
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp NIDORAN_F
|
||||||
|
jr nz, .asm_16ae8
|
||||||
|
call Random
|
||||||
|
cp $80
|
||||||
|
ld a, NIDORAN_F
|
||||||
|
jr c, .asm_16ae8
|
||||||
|
ld a, NIDORAN_M
|
||||||
|
.asm_16ae8
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
ld [CurSpecies], a
|
||||||
|
ld [wEggMonSpecies], a
|
||||||
|
|
||||||
|
call GetBaseData
|
||||||
|
ld hl, wEggNick
|
||||||
|
ld de, String_16be0
|
||||||
|
call CopyName2
|
||||||
|
ld hl, PlayerName
|
||||||
|
ld de, wEggOT
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
xor a
|
||||||
|
ld [wEggMonItem], a
|
||||||
|
ld de, wEggMonMoves
|
||||||
|
xor a
|
||||||
|
ld [Buffer1], a
|
||||||
|
predef FillMoves
|
||||||
|
callba Function170bf
|
||||||
|
ld hl, wEggMonID
|
||||||
|
ld a, [PlayerID]
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [PlayerID + 1]
|
||||||
|
ld [hl], a
|
||||||
|
ld a, [CurPartyLevel]
|
||||||
|
ld d, a
|
||||||
|
callab CalcExpAtLevel
|
||||||
|
ld hl, wEggMonExp
|
||||||
|
ld a, [hMultiplicand]
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [$ffb5]
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [$ffb6]
|
||||||
|
ld [hl], a
|
||||||
|
xor a
|
||||||
|
ld b, $a
|
||||||
|
ld hl, wEggMonStatExp
|
||||||
|
.asm_16b46
|
||||||
|
ld [hli], a
|
||||||
|
dec b
|
||||||
|
jr nz, .asm_16b46
|
||||||
|
ld hl, wEggMonDVs
|
||||||
|
call Random
|
||||||
|
ld [hli], a
|
||||||
|
ld [TempMonDVs], a
|
||||||
|
call Random
|
||||||
|
ld [hld], a
|
||||||
|
ld [TempMonDVs + 1], a
|
||||||
|
ld de, wBreedMon1DVs
|
||||||
|
ld a, [wBreedMon1Species]
|
||||||
|
cp DITTO
|
||||||
|
jr z, .asm_16b98
|
||||||
|
ld de, wBreedMon2DVs
|
||||||
|
ld a, [wBreedMon2Species]
|
||||||
|
cp DITTO
|
||||||
|
jr z, .asm_16b98
|
||||||
|
ld a, $3
|
||||||
|
ld [MonType], a
|
||||||
|
push hl
|
||||||
|
callba GetGender
|
||||||
|
pop hl
|
||||||
|
ld de, wBreedMon1DVs
|
||||||
|
ld bc, wBreedMon2DVs
|
||||||
|
jr c, .asm_16bab
|
||||||
|
jr z, .asm_16b90
|
||||||
|
ld a, [wDittoInDaycare]
|
||||||
|
and a
|
||||||
|
jr z, .asm_16b98
|
||||||
|
ld d, b
|
||||||
|
ld e, c
|
||||||
|
jr .asm_16b98
|
||||||
|
|
||||||
|
.asm_16b90
|
||||||
|
ld a, [wDittoInDaycare]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_16b98
|
||||||
|
ld d, b
|
||||||
|
ld e, c
|
||||||
|
|
||||||
|
.asm_16b98
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
and $f
|
||||||
|
ld b, a
|
||||||
|
ld a, [hl]
|
||||||
|
and $f0
|
||||||
|
add b
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [de]
|
||||||
|
and $7
|
||||||
|
ld b, a
|
||||||
|
ld a, [hl]
|
||||||
|
and $f8
|
||||||
|
add b
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.asm_16bab
|
||||||
|
ld hl, StringBuffer1
|
||||||
|
ld de, wd050
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
ld hl, wEggMonMoves
|
||||||
|
ld de, wEggMonPP
|
||||||
|
predef FillPP
|
||||||
|
ld hl, wd050
|
||||||
|
ld de, StringBuffer1
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
ld a, [BaseEggSteps]
|
||||||
|
ld hl, wEggMonHappiness
|
||||||
|
ld [hli], a
|
||||||
|
xor a
|
||||||
|
rept 2
|
||||||
|
ld [hli], a
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
ld a, [CurPartyLevel]
|
||||||
|
ld [wEggMonLevel], a
|
||||||
|
ret
|
||||||
|
; 16be0
|
||||||
|
|
||||||
|
String_16be0: ; 16be0
|
||||||
|
db "EGG@"
|
||||||
|
; 16be4
|
312
event/field_moves.asm
Executable file
312
event/field_moves.asm
Executable file
@ -0,0 +1,312 @@
|
|||||||
|
PlayWhirlpoolSound: ; 8c7d4
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_SURF
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
ret
|
||||||
|
; 8c7e1
|
||||||
|
|
||||||
|
BlindingFlash: ; 8c7e1
|
||||||
|
callba FadeOutPalettes
|
||||||
|
ld hl, StatusFlags
|
||||||
|
set 2, [hl]
|
||||||
|
callba Function8c0e5
|
||||||
|
callba Function8c001
|
||||||
|
ld b, SCGB_09
|
||||||
|
call GetSGBLayout
|
||||||
|
callba Function49409
|
||||||
|
callba FadeInPalettes
|
||||||
|
ret
|
||||||
|
; 8c80a
|
||||||
|
|
||||||
|
ShakeHeadbuttTree: ; 8c80a
|
||||||
|
callba Function8cf53
|
||||||
|
ld de, CutGrassGFX
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(CutGrassGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ld de, HeadbuttTreeGFX
|
||||||
|
ld hl, VTiles1 tile $04
|
||||||
|
lb bc, BANK(HeadbuttTreeGFX), 8
|
||||||
|
call Request2bpp
|
||||||
|
call Function8cad3
|
||||||
|
ld a, SPRITE_ANIM_INDEX_1B
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $84
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callba Function8cf7a
|
||||||
|
call GetHeadbuttTreeRelativeLocation
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_SANDSTORM
|
||||||
|
call PlaySFX
|
||||||
|
.loop
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .done
|
||||||
|
dec [hl]
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callba Function8cf7a
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
call OverworldTextModeSwitch
|
||||||
|
call WaitBGMap
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
callba Function8cf53
|
||||||
|
ld hl, Sprites + $90
|
||||||
|
ld bc, $10
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
ld de, Font
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(Font), $c
|
||||||
|
call Get1bpp
|
||||||
|
call ReplaceKrisSprite
|
||||||
|
ret
|
||||||
|
; 8c893
|
||||||
|
|
||||||
|
HeadbuttTreeGFX: ; 8c893
|
||||||
|
INCBIN "gfx/unknown/08c893.2bpp"
|
||||||
|
; 8c913
|
||||||
|
|
||||||
|
GetHeadbuttTreeRelativeLocation: ; 8c913
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and %00001100
|
||||||
|
srl a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, TreeRelativeLocationTable
|
||||||
|
add hl, de
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
ld a, $5
|
||||||
|
ld [hli], a
|
||||||
|
ld [hld], a
|
||||||
|
ld bc, SCREEN_WIDTH
|
||||||
|
add hl, bc
|
||||||
|
ld [hli], a
|
||||||
|
ld [hld], a
|
||||||
|
call WaitBGMap
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ret
|
||||||
|
; 8c938
|
||||||
|
|
||||||
|
TreeRelativeLocationTable: ; 8c938
|
||||||
|
dwcoord 8, 8 + 2 ; RIGHT
|
||||||
|
dwcoord 8, 8 - 2 ; LEFT
|
||||||
|
dwcoord 8 - 2, 8 ; DOWN
|
||||||
|
dwcoord 8 + 2, 8 ; UP
|
||||||
|
; 8c940
|
||||||
|
|
||||||
|
OWCutAnimation: ; 8c940
|
||||||
|
ld a, e
|
||||||
|
and $1
|
||||||
|
ld [wJumptableIndex], a
|
||||||
|
call .LoadCutGFX
|
||||||
|
call WaitSFX
|
||||||
|
ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
|
||||||
|
call PlaySFX
|
||||||
|
.loop
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
bit 7, a
|
||||||
|
jr nz, .finish
|
||||||
|
ld a, $90
|
||||||
|
ld [wc3b5], a
|
||||||
|
callab Function8cf7a
|
||||||
|
call OWCutJumptable
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.finish
|
||||||
|
ret
|
||||||
|
; 8c96d
|
||||||
|
|
||||||
|
.LoadCutGFX: ; 8c96d
|
||||||
|
callab Function8cf53 ; pointless to farcall
|
||||||
|
ld de, CutGrassGFX
|
||||||
|
ld hl, VTiles1
|
||||||
|
lb bc, BANK(CutGrassGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ld de, CutTreeGFX
|
||||||
|
ld hl, VTiles1 tile $4
|
||||||
|
lb bc, BANK(CutTreeGFX), 4
|
||||||
|
call Request2bpp
|
||||||
|
ret
|
||||||
|
; 8c98c
|
||||||
|
|
||||||
|
CutTreeGFX: ; c898c
|
||||||
|
INCBIN "gfx/misc/cut_tree.2bpp"
|
||||||
|
; c89cc
|
||||||
|
|
||||||
|
CutGrassGFX: ; 8c9cc
|
||||||
|
INCBIN "gfx/misc/cut_grass.2bpp"
|
||||||
|
; 8ca0c
|
||||||
|
|
||||||
|
OWCutJumptable: ; 8ca0c
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .jumptable
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp [hl]
|
||||||
|
; 8ca1b
|
||||||
|
|
||||||
|
|
||||||
|
.jumptable: ; 8ca1b (23:4a1b)
|
||||||
|
dw Function8ca23
|
||||||
|
dw Function8ca3c
|
||||||
|
dw Function8ca5c
|
||||||
|
dw Function8ca64
|
||||||
|
|
||||||
|
|
||||||
|
Function8ca23: ; 8ca23 (23:4a23)
|
||||||
|
call Function8cad3
|
||||||
|
ld a, SPRITE_ANIM_INDEX_17 ; leaf
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $84
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
rept 2
|
||||||
|
inc [hl]
|
||||||
|
endr
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca3c: ; 8ca3c (23:4a3c)
|
||||||
|
call Function8ca8e
|
||||||
|
xor a
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $10
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $20
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $30
|
||||||
|
call Function8ca73
|
||||||
|
ld a, $20
|
||||||
|
ld [wcf64], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca5c: ; 8ca5c (23:4a5c)
|
||||||
|
ld a, $1
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
|
||||||
|
Function8ca64: ; 8ca64 (23:4a64)
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .asm_8ca6d
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
.asm_8ca6d
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
set 7, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca73: ; 8ca73 (23:4a73)
|
||||||
|
push de
|
||||||
|
push af
|
||||||
|
ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $80
|
||||||
|
ld hl, $e
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $4
|
||||||
|
pop af
|
||||||
|
ld hl, $c
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], a
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function8ca8e: ; 8ca8e (23:4a8e)
|
||||||
|
ld de, 0
|
||||||
|
ld a, [wd197]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8ca9a
|
||||||
|
set 0, e
|
||||||
|
.asm_8ca9a
|
||||||
|
ld a, [wd196]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8caa3
|
||||||
|
set 1, e
|
||||||
|
.asm_8caa3
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and $c
|
||||||
|
add e
|
||||||
|
ld e, a
|
||||||
|
ld hl, Unknown_8cab3
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
ret
|
||||||
|
; 8cab3 (23:4ab3)
|
||||||
|
|
||||||
|
Unknown_8cab3: ; 8cab3
|
||||||
|
db $58, $60
|
||||||
|
db $48, $60
|
||||||
|
db $58, $70
|
||||||
|
db $48, $70
|
||||||
|
db $58, $40
|
||||||
|
db $48, $40
|
||||||
|
db $58, $50
|
||||||
|
db $48, $50
|
||||||
|
db $38, $60
|
||||||
|
db $48, $60
|
||||||
|
db $38, $50
|
||||||
|
db $48, $50
|
||||||
|
db $58, $60
|
||||||
|
db $68, $60
|
||||||
|
db $58, $50
|
||||||
|
db $68, $50
|
||||||
|
; 8cad3
|
||||||
|
|
||||||
|
Function8cad3: ; 8cad3 (23:4ad3)
|
||||||
|
ld a, [PlayerDirection]
|
||||||
|
and $c
|
||||||
|
srl a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, Unknown_8cae5
|
||||||
|
add hl, de
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
ret
|
||||||
|
; 8cae5 (23:4ae5)
|
||||||
|
|
||||||
|
Unknown_8cae5: ; 8cae5
|
||||||
|
db $50, $68
|
||||||
|
db $50, $48
|
||||||
|
db $40, $58
|
||||||
|
db $60, $58
|
||||||
|
; 8caed
|
485
event/magnet_train.asm
Executable file
485
event/magnet_train.asm
Executable file
@ -0,0 +1,485 @@
|
|||||||
|
Special_MagnetTrain: ; 8cc04
|
||||||
|
ld a, [ScriptVar]
|
||||||
|
and a
|
||||||
|
jr nz, .ToGoldenrod
|
||||||
|
ld a, 1 ; forwards
|
||||||
|
lb bc, $40, $60
|
||||||
|
ld de, $fca0
|
||||||
|
jr .continue
|
||||||
|
|
||||||
|
.ToGoldenrod
|
||||||
|
ld a, -1 ; backwards
|
||||||
|
lb bc, $c0, $a0
|
||||||
|
ld de, $b460
|
||||||
|
|
||||||
|
.continue
|
||||||
|
ld h, a
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $5
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, h
|
||||||
|
ld [w5_d191], a
|
||||||
|
ld a, c
|
||||||
|
ld [w5_d192], a
|
||||||
|
ld a, b
|
||||||
|
ld [w5_d193], a
|
||||||
|
ld a, e
|
||||||
|
ld [w5_d194], a
|
||||||
|
ld a, d
|
||||||
|
ld [w5_d195], a
|
||||||
|
ld a, [hSCX]
|
||||||
|
push af
|
||||||
|
ld a, [hSCY]
|
||||||
|
push af
|
||||||
|
call Function8ccc9
|
||||||
|
ld hl, hVBlank
|
||||||
|
ld a, [hl]
|
||||||
|
push af
|
||||||
|
ld [hl], $1
|
||||||
|
.loop
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
and a
|
||||||
|
jr z, .initialize
|
||||||
|
bit 7, a
|
||||||
|
jr nz, .done
|
||||||
|
callab Function8cf69
|
||||||
|
call Function8cdf7
|
||||||
|
call Function8cc99
|
||||||
|
call Function3b0c
|
||||||
|
call DelayFrame
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.initialize
|
||||||
|
call Function8ceae
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop af
|
||||||
|
ld [hVBlank], a
|
||||||
|
call ClearBGPalettes
|
||||||
|
xor a
|
||||||
|
ld [hLCDStatCustom], a
|
||||||
|
ld [hLCDStatCustom + 1], a
|
||||||
|
ld [hLCDStatCustom + 2], a
|
||||||
|
ld [hSCX], a
|
||||||
|
ld [Requested2bppSource], a
|
||||||
|
ld [Requested2bppSource + 1], a
|
||||||
|
ld [Requested2bppDest], a
|
||||||
|
ld [Requested2bppDest + 1], a
|
||||||
|
ld [Requested2bpp], a
|
||||||
|
call ClearTileMap
|
||||||
|
pop af
|
||||||
|
ld [hSCY], a
|
||||||
|
pop af
|
||||||
|
ld [hSCX], a
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ret
|
||||||
|
; 8cc99
|
||||||
|
|
||||||
|
Function8cc99: ; 8cc99
|
||||||
|
ld hl, LYOverridesBackup
|
||||||
|
ld c, $2f
|
||||||
|
ld a, [wcf64]
|
||||||
|
add a
|
||||||
|
ld [hSCX], a
|
||||||
|
call Function8ccc4
|
||||||
|
ld c, $30
|
||||||
|
ld a, [wcf65]
|
||||||
|
call Function8ccc4
|
||||||
|
ld c, $31
|
||||||
|
ld a, [wcf64]
|
||||||
|
add a
|
||||||
|
call Function8ccc4
|
||||||
|
ld a, [wd191]
|
||||||
|
ld d, a
|
||||||
|
ld hl, wcf64
|
||||||
|
ld a, [hl]
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
; 8ccc4
|
||||||
|
|
||||||
|
Function8ccc4: ; 8ccc4
|
||||||
|
.asm_8ccc4
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .asm_8ccc4
|
||||||
|
ret
|
||||||
|
; 8ccc9
|
||||||
|
|
||||||
|
Function8ccc9: ; 8ccc9
|
||||||
|
call ClearBGPalettes
|
||||||
|
call ClearSprites
|
||||||
|
call DisableLCD
|
||||||
|
callab Function8cf53
|
||||||
|
call SetMagnetTrainPals
|
||||||
|
call DrawMagnetTrain
|
||||||
|
ld a, $90
|
||||||
|
ld [hWY], a
|
||||||
|
call EnableLCD
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
ld [hSCX], a
|
||||||
|
ld [hSCY], a
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
callba GetPlayerIcon
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld hl, VTiles0
|
||||||
|
ld c, $4
|
||||||
|
call Request2bpp
|
||||||
|
ld hl, $c0
|
||||||
|
add hl, de
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
ld hl, VTiles0 tile $04
|
||||||
|
ld c, $4
|
||||||
|
call Request2bpp
|
||||||
|
call Function8cda6
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
xor a
|
||||||
|
ld [hli], a
|
||||||
|
ld a, [wd192]
|
||||||
|
rept 3
|
||||||
|
ld [hli], a
|
||||||
|
endr
|
||||||
|
ld de, MUSIC_MAGNET_TRAIN
|
||||||
|
call PlayMusic2
|
||||||
|
ret
|
||||||
|
; 8cd27
|
||||||
|
|
||||||
|
DrawMagnetTrain: ; 8cd27
|
||||||
|
ld hl, VBGMap0
|
||||||
|
xor a
|
||||||
|
.asm_8cd2b
|
||||||
|
call GetMagnetTrainBGTiles
|
||||||
|
ld b, 32 / 2
|
||||||
|
call .FillAlt
|
||||||
|
inc a
|
||||||
|
cp $12
|
||||||
|
jr c, .asm_8cd2b
|
||||||
|
ld hl, VBGMap0 tile $0c
|
||||||
|
ld de, MagnetTrainTilemap1
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $0e
|
||||||
|
ld de, MagnetTrainTilemap2
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $10
|
||||||
|
ld de, MagnetTrainTilemap3
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ld hl, VBGMap0 tile $12
|
||||||
|
ld de, MagnetTrainTilemap4
|
||||||
|
ld c, 20
|
||||||
|
call .FillLine
|
||||||
|
ret
|
||||||
|
; 8cd65
|
||||||
|
|
||||||
|
.FillLine ; 8cd65
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .FillLine
|
||||||
|
ret
|
||||||
|
; 8cd6c
|
||||||
|
|
||||||
|
.FillAlt ; 8cd6c
|
||||||
|
ld [hl], e
|
||||||
|
inc hl
|
||||||
|
ld [hl], d
|
||||||
|
inc hl
|
||||||
|
dec b
|
||||||
|
jr nz, .FillAlt
|
||||||
|
ret
|
||||||
|
; 8cd74
|
||||||
|
|
||||||
|
GetMagnetTrainBGTiles: ; 8cd74
|
||||||
|
push hl
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, MagnetTrainBGTiles
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 8cd82
|
||||||
|
|
||||||
|
MagnetTrainBGTiles: ; 8cd82
|
||||||
|
; Alternating tiles for each line
|
||||||
|
; of the Magnet Train tilemap.
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $08, $08 ; fence
|
||||||
|
db $18, $18 ; fence
|
||||||
|
db $1f, $1f ; track
|
||||||
|
db $31, $31 ; track
|
||||||
|
db $11, $11 ; track
|
||||||
|
db $11, $11 ; track
|
||||||
|
db $0d, $0d ; track
|
||||||
|
db $31, $31 ; track
|
||||||
|
db $04, $04 ; fence
|
||||||
|
db $18, $18 ; fence
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
db $4c, $4d ; bush
|
||||||
|
db $5c, $5d ; bush
|
||||||
|
; 8cda6
|
||||||
|
|
||||||
|
Function8cda6: ; 8cda6
|
||||||
|
ld hl, LYOverrides
|
||||||
|
ld bc, $90
|
||||||
|
ld a, [wd192]
|
||||||
|
call ByteFill
|
||||||
|
ld hl, LYOverridesBackup
|
||||||
|
ld bc, $90
|
||||||
|
ld a, [wd192]
|
||||||
|
call ByteFill
|
||||||
|
ld a, $43
|
||||||
|
ld [hLCDStatCustom], a
|
||||||
|
ret
|
||||||
|
; 8cdc3
|
||||||
|
|
||||||
|
SetMagnetTrainPals: ; 8cdc3
|
||||||
|
ld a, $1
|
||||||
|
ld [rVBK], a
|
||||||
|
|
||||||
|
; bushes
|
||||||
|
ld hl, VBGMap0
|
||||||
|
ld bc, 8 tiles
|
||||||
|
ld a, $2
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; train
|
||||||
|
ld hl, VBGMap0 tile $08
|
||||||
|
ld bc, 20 tiles
|
||||||
|
xor a
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; more bushes
|
||||||
|
ld hl, VBGMap0 tile $1c
|
||||||
|
ld bc, 8 tiles
|
||||||
|
ld a, $2
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
; train window
|
||||||
|
ld hl, VBGMap0 tile $10 + 7
|
||||||
|
ld bc, 6
|
||||||
|
ld a, $4
|
||||||
|
call ByteFill
|
||||||
|
|
||||||
|
ld a, $0
|
||||||
|
ld [rVBK], a
|
||||||
|
ret
|
||||||
|
; 8cdf7
|
||||||
|
|
||||||
|
Function8cdf7: ; 8cdf7
|
||||||
|
ld a, [wJumptableIndex]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, Jumptable_8ce06
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp [hl]
|
||||||
|
; 8ce06
|
||||||
|
|
||||||
|
Jumptable_8ce06: ; 8ce06
|
||||||
|
dw Function8ce19
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8ce47
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8ce7a
|
||||||
|
dw Function8ce6d
|
||||||
|
dw Function8cea2
|
||||||
|
; 8ce14
|
||||||
|
|
||||||
|
Function8ce14: ; 8ce14
|
||||||
|
ld hl, wJumptableIndex
|
||||||
|
inc [hl]
|
||||||
|
ret
|
||||||
|
; 8ce19
|
||||||
|
|
||||||
|
Function8ce19: ; 8ce19
|
||||||
|
ld d, $55
|
||||||
|
ld a, [wd194 + 1]
|
||||||
|
ld e, a
|
||||||
|
ld b, SPRITE_ANIM_INDEX_15
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, [PlayerGender]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .asm_8ce31
|
||||||
|
ld b, SPRITE_ANIM_INDEX_1F
|
||||||
|
|
||||||
|
.asm_8ce31
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, b
|
||||||
|
call _InitSpriteAnimStruct
|
||||||
|
ld hl, $3
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], $0
|
||||||
|
call Function8ce14
|
||||||
|
ld a, $80
|
||||||
|
ld [wcf66], a
|
||||||
|
ret
|
||||||
|
; 8ce47
|
||||||
|
|
||||||
|
Function8ce47: ; 8ce47
|
||||||
|
ld hl, wd193
|
||||||
|
ld a, [wcf65]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_8ce64
|
||||||
|
ld e, a
|
||||||
|
ld a, [wd191]
|
||||||
|
xor $ff
|
||||||
|
inc a
|
||||||
|
add e
|
||||||
|
ld [wcf65], a
|
||||||
|
ld hl, wc3c0
|
||||||
|
ld a, [wd191]
|
||||||
|
add [hl]
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce64
|
||||||
|
call Function8ce14
|
||||||
|
ld a, $80
|
||||||
|
ld [wcf66], a
|
||||||
|
ret
|
||||||
|
; 8ce6d
|
||||||
|
|
||||||
|
Function8ce6d: ; 8ce6d
|
||||||
|
ld hl, wcf66
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .asm_8ce76
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce76
|
||||||
|
call Function8ce14
|
||||||
|
ret
|
||||||
|
; 8ce7a
|
||||||
|
|
||||||
|
Function8ce7a: ; 8ce7a
|
||||||
|
ld hl, wd194
|
||||||
|
ld a, [wcf65]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_8ce9e
|
||||||
|
ld e, a
|
||||||
|
ld a, [wd191]
|
||||||
|
xor $ff
|
||||||
|
inc a
|
||||||
|
ld d, a
|
||||||
|
ld a, e
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [wcf65], a
|
||||||
|
ld hl, wc3c0
|
||||||
|
ld a, [wd191]
|
||||||
|
ld d, a
|
||||||
|
ld a, [hl]
|
||||||
|
rept 2
|
||||||
|
add d
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_8ce9e
|
||||||
|
call Function8ce14
|
||||||
|
ret
|
||||||
|
; 8cea2
|
||||||
|
|
||||||
|
Function8cea2: ; 8cea2
|
||||||
|
ld a, $80
|
||||||
|
ld [wJumptableIndex], a
|
||||||
|
ld de, SFX_TRAIN_ARRIVED
|
||||||
|
call PlaySFX
|
||||||
|
ret
|
||||||
|
; 8ceae
|
||||||
|
|
||||||
|
Function8ceae: ; 8ceae
|
||||||
|
callba Function8cf69
|
||||||
|
call Function8cdf7
|
||||||
|
call Function8cc99
|
||||||
|
call Function3b0c
|
||||||
|
call DelayFrame
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $1
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, [TimeOfDayPal]
|
||||||
|
push af
|
||||||
|
ld a, [wPermission]
|
||||||
|
push af
|
||||||
|
ld a, [TimeOfDay]
|
||||||
|
and $3
|
||||||
|
ld [TimeOfDayPal], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wPermission], a
|
||||||
|
ld b, SCGB_09
|
||||||
|
call GetSGBLayout
|
||||||
|
call UpdateTimePals
|
||||||
|
ld a, [rBGP]
|
||||||
|
ld [wcfc7], a
|
||||||
|
ld a, [rOBP0]
|
||||||
|
ld [wcfc8], a
|
||||||
|
ld a, [rOBP1]
|
||||||
|
ld [wcfc9], a
|
||||||
|
pop af
|
||||||
|
ld [wPermission], a
|
||||||
|
pop af
|
||||||
|
ld [TimeOfDayPal], a
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ret
|
||||||
|
; 8ceff
|
||||||
|
|
||||||
|
MagnetTrainTilemap1:
|
||||||
|
db $1f, $05, $06, $0a, $0a
|
||||||
|
db $0a, $09, $0a, $0a, $0a
|
||||||
|
db $0a, $0a, $0a, $09, $0a
|
||||||
|
db $0a, $0a, $0b, $0c, $1f
|
||||||
|
MagnetTrainTilemap2:
|
||||||
|
db $14, $15, $16, $1a, $1a
|
||||||
|
db $1a, $19, $1a, $1a, $1a
|
||||||
|
db $1a, $1a, $1a, $19, $1a
|
||||||
|
db $1a, $1a, $1b, $1c, $1d
|
||||||
|
MagnetTrainTilemap3:
|
||||||
|
db $24, $25, $26, $27, $07
|
||||||
|
db $2f, $29, $28, $28, $28
|
||||||
|
db $28, $28, $28, $29, $07
|
||||||
|
db $2f, $2a, $2b, $2c, $2d
|
||||||
|
MagnetTrainTilemap4:
|
||||||
|
db $20, $1f, $2e, $1f, $17
|
||||||
|
db $00, $2e, $1f, $1f, $1f
|
||||||
|
db $1f, $1f, $1f, $2e, $17
|
||||||
|
db $00, $1f, $2e, $1f, $0f
|
||||||
|
; 8cf4f
|
@ -227,7 +227,7 @@ Function1e35:: ; 1e35
|
|||||||
ret
|
ret
|
||||||
; 1e5d
|
; 1e5d
|
||||||
|
|
||||||
Function1e5d:: ; 1e5d
|
DoNthMenu:: ; 1e5d
|
||||||
call MenuFunc_1e7f
|
call MenuFunc_1e7f
|
||||||
call MenuWriteText
|
call MenuWriteText
|
||||||
call Function1eff
|
call Function1eff
|
||||||
@ -438,7 +438,7 @@ Function1f79:: ; 1f79
|
|||||||
ret
|
ret
|
||||||
; 1f8d
|
; 1f8d
|
||||||
|
|
||||||
Function1f8d:: ; 1f8d
|
PlaceNthMenuStrings:: ; 1f8d
|
||||||
push de
|
push de
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
call Function1fb1
|
call Function1fb1
|
||||||
@ -464,7 +464,7 @@ endr
|
|||||||
ret
|
ret
|
||||||
; 1fa7
|
; 1fa7
|
||||||
|
|
||||||
Function1fa7:: ; 1fa7
|
MenuJumptable:: ; 1fa7
|
||||||
ld a, [MenuSelection]
|
ld a, [MenuSelection]
|
||||||
call Function1fb1
|
call Function1fb1
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
|
2
wram.asm
2
wram.asm
@ -2402,7 +2402,7 @@ RegisteredItem:: ; d95c
|
|||||||
PlayerState:: ; d95d
|
PlayerState:: ; d95d
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
wd95e:: ds 2
|
wHallOfFameCount:: ds 2
|
||||||
wd960:: ds 2
|
wd960:: ds 2
|
||||||
MooMooBerries:: ; d962
|
MooMooBerries:: ; d962
|
||||||
ds 1 ; how many berries fed to MooMoo
|
ds 1 ; how many berries fed to MooMoo
|
||||||
|
Loading…
Reference in New Issue
Block a user