mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
83 lines
1.5 KiB
NASM
83 lines
1.5 KiB
NASM
|
BillsGrandfather: ; 73f7
|
||
|
farcall SelectMonFromParty
|
||
|
jr c, .cancel
|
||
|
ld a, [wCurPartySpecies]
|
||
|
ld [wScriptVar], a
|
||
|
ld [wNamedObjectIndexBuffer], a
|
||
|
call GetPokemonName
|
||
|
jp CopyPokemonName_Buffer1_Buffer3
|
||
|
|
||
|
.cancel
|
||
|
xor a
|
||
|
ld [wScriptVar], a
|
||
|
ret
|
||
|
|
||
|
YoungerHaircutBrother: ; 7413
|
||
|
ld hl, HappinessData_YoungerHaircutBrother
|
||
|
jr HaircutOrGrooming
|
||
|
|
||
|
OlderHaircutBrother: ; 7418
|
||
|
ld hl, HappinessData_OlderHaircutBrother
|
||
|
jr HaircutOrGrooming
|
||
|
|
||
|
DaisysGrooming: ; 741d
|
||
|
ld hl, HappinessData_DaisysGrooming
|
||
|
; fallthrough
|
||
|
|
||
|
HaircutOrGrooming: ; 7420
|
||
|
push hl
|
||
|
farcall SelectMonFromParty
|
||
|
pop hl
|
||
|
jr c, .nope
|
||
|
ld a, [wCurPartySpecies]
|
||
|
cp EGG
|
||
|
jr z, .egg
|
||
|
push hl
|
||
|
call GetCurNick
|
||
|
call CopyPokemonName_Buffer1_Buffer3
|
||
|
pop hl
|
||
|
call Random
|
||
|
; Bug: Subtracting $ff from $ff fails to set c.
|
||
|
; This can result in overflow into the next data array.
|
||
|
; In the case of getting a grooming from Daisy, we bleed
|
||
|
; into CopyPokemonName_Buffer1_Buffer3, which passes
|
||
|
; $d0 to ChangeHappiness and returns $73 to the script.
|
||
|
; The end result is that there is a 0.4% chance your
|
||
|
; Pokemon's happiness will not change at all.
|
||
|
.loop
|
||
|
sub [hl]
|
||
|
jr c, .ok
|
||
|
inc hl
|
||
|
inc hl
|
||
|
inc hl
|
||
|
jr .loop
|
||
|
|
||
|
.ok
|
||
|
inc hl
|
||
|
ld a, [hli]
|
||
|
ld [wScriptVar], a
|
||
|
ld c, [hl]
|
||
|
call ChangeHappiness
|
||
|
ret
|
||
|
|
||
|
.nope
|
||
|
xor a
|
||
|
ld [wScriptVar], a
|
||
|
ret
|
||
|
|
||
|
.egg
|
||
|
ld a, 1
|
||
|
ld [wScriptVar], a
|
||
|
ret
|
||
|
|
||
|
INCLUDE "data/events/happiness_probabilities.asm"
|
||
|
|
||
|
CopyPokemonName_Buffer1_Buffer3: ; 746e
|
||
|
ld hl, wStringBuffer1
|
||
|
ld de, wStringBuffer3
|
||
|
ld bc, MON_NAME_LENGTH
|
||
|
jp CopyBytes
|
||
|
|
||
|
DummyPredef1: ; 747a
|
||
|
ret
|