mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
items/item_effects.asm; engine/evolution.asm
This commit is contained in:
parent
1ff37608b6
commit
91f7491017
@ -8745,7 +8745,7 @@ Function3f6a5: ; 3f6a5
|
|||||||
call CheckPayDay
|
call CheckPayDay
|
||||||
xor a
|
xor a
|
||||||
ld [wd1e9], a
|
ld [wd1e9], a
|
||||||
predef Function421e6
|
predef EvolveAfterBattle
|
||||||
callba Function2ed44
|
callba Function2ed44
|
||||||
ret
|
ret
|
||||||
; 3f6d0
|
; 3f6d0
|
||||||
|
@ -219,7 +219,7 @@ Function16f7a: ; 16f7a (5:6f7a)
|
|||||||
|
|
||||||
push de
|
push de
|
||||||
|
|
||||||
callba Function4dbb8
|
callba SetEggMonCaughtData
|
||||||
callba MobileFn_10608d
|
callba MobileFn_10608d
|
||||||
ld a, [CurPartyMon]
|
ld a, [CurPartyMon]
|
||||||
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
|
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
|
||||||
|
682
engine/evolve.asm
Executable file
682
engine/evolve.asm
Executable file
@ -0,0 +1,682 @@
|
|||||||
|
EvolvePokemon: ; 421d8
|
||||||
|
ld hl, EvolvableFlags
|
||||||
|
xor a
|
||||||
|
ld [hl], a
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld c, a
|
||||||
|
ld b, SET_FLAG
|
||||||
|
call EvoFlagAction
|
||||||
|
|
||||||
|
EvolveAfterBattle: ; 421e6
|
||||||
|
xor a
|
||||||
|
ld [wd268], a
|
||||||
|
dec a
|
||||||
|
ld [CurPartyMon], a
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
ld hl, PartyCount
|
||||||
|
|
||||||
|
push hl
|
||||||
|
|
||||||
|
CheckForEvolvablePokemon: ; 421f5
|
||||||
|
ld hl, CurPartyMon
|
||||||
|
inc [hl]
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
inc hl
|
||||||
|
ld a, [hl]
|
||||||
|
cp $ff
|
||||||
|
jp z, Evolution_ReturnToMap
|
||||||
|
|
||||||
|
ld [Buffer1], a
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld c, a
|
||||||
|
ld hl, EvolvableFlags
|
||||||
|
ld b, CHECK_FLAG
|
||||||
|
call EvoFlagAction
|
||||||
|
ld a, c
|
||||||
|
and a
|
||||||
|
jp z, CheckForEvolvablePokemon
|
||||||
|
|
||||||
|
ld a, [Buffer1]
|
||||||
|
dec a
|
||||||
|
ld b, 0
|
||||||
|
ld c, a
|
||||||
|
ld hl, EvosAttacksPointers
|
||||||
|
rept 2
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
push hl
|
||||||
|
xor a
|
||||||
|
ld [MonType], a
|
||||||
|
predef CopyPkmnToTempMon
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, CheckForEvolvablePokemon
|
||||||
|
|
||||||
|
ld b, a
|
||||||
|
|
||||||
|
cp EVOLVE_TRADE
|
||||||
|
jr z, .trade
|
||||||
|
|
||||||
|
ld a, [wLinkMode]
|
||||||
|
and a
|
||||||
|
jp nz, .dont_evolve_2
|
||||||
|
|
||||||
|
ld a, b
|
||||||
|
cp EVOLVE_ITEM
|
||||||
|
jp z, .item
|
||||||
|
|
||||||
|
ld a, [wd1e9]
|
||||||
|
and a
|
||||||
|
jp nz, .dont_evolve_2
|
||||||
|
|
||||||
|
ld a, b
|
||||||
|
cp EVOLVE_LEVEL
|
||||||
|
jp z, .level
|
||||||
|
|
||||||
|
cp EVOLVE_HAPPINESS
|
||||||
|
jr z, .happiness
|
||||||
|
|
||||||
|
|
||||||
|
; EVOLVE_STAT
|
||||||
|
ld a, [TempMonLevel]
|
||||||
|
cp [hl]
|
||||||
|
jp c, .dont_evolve_1
|
||||||
|
|
||||||
|
call IsMonHoldingEverstone
|
||||||
|
jp z, .dont_evolve_1
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld de, TempMonAttack
|
||||||
|
ld hl, TempMonDefense
|
||||||
|
ld c, 2
|
||||||
|
call StringCmp
|
||||||
|
ld a, ATK_EQ_DEF
|
||||||
|
jr z, .got_tyrogue_evo
|
||||||
|
ld a, ATK_LT_DEF
|
||||||
|
jr c, .got_tyrogue_evo
|
||||||
|
ld a, ATK_GT_DEF
|
||||||
|
.got_tyrogue_evo
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
jp nz, .dont_evolve_2
|
||||||
|
|
||||||
|
inc hl
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
|
||||||
|
.happiness
|
||||||
|
ld a, [TempMonHappiness]
|
||||||
|
cp 220
|
||||||
|
jp c, .dont_evolve_2
|
||||||
|
|
||||||
|
call IsMonHoldingEverstone
|
||||||
|
jp z, .dont_evolve_2
|
||||||
|
|
||||||
|
ld a, [hli]
|
||||||
|
cp TR_ANYTIME
|
||||||
|
jr z, .proceed
|
||||||
|
cp TR_MORNDAY
|
||||||
|
jr z, .happiness_daylight
|
||||||
|
|
||||||
|
; TR_NITE
|
||||||
|
ld a, [TimeOfDay]
|
||||||
|
cp NITE
|
||||||
|
jp nz, .dont_evolve_3
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
.happiness_daylight
|
||||||
|
ld a, [TimeOfDay]
|
||||||
|
cp NITE
|
||||||
|
jp z, .dont_evolve_3
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
|
||||||
|
.trade
|
||||||
|
ld a, [wLinkMode]
|
||||||
|
and a
|
||||||
|
jp z, .dont_evolve_2
|
||||||
|
|
||||||
|
call IsMonHoldingEverstone
|
||||||
|
jp z, .dont_evolve_2
|
||||||
|
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
inc a
|
||||||
|
jr z, .proceed
|
||||||
|
|
||||||
|
ld a, [wLinkMode]
|
||||||
|
cp LINK_TIMECAPSULE
|
||||||
|
jp z, .dont_evolve_3
|
||||||
|
|
||||||
|
ld a, [TempMonItem]
|
||||||
|
cp b
|
||||||
|
jp nz, .dont_evolve_3
|
||||||
|
|
||||||
|
xor a
|
||||||
|
ld [TempMonItem], a
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
|
||||||
|
.item
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
ld a, [CurItem]
|
||||||
|
cp b
|
||||||
|
jp nz, .dont_evolve_3
|
||||||
|
|
||||||
|
ld a, [wd1e9]
|
||||||
|
and a
|
||||||
|
jp z, .dont_evolve_3
|
||||||
|
ld a, [wLinkMode]
|
||||||
|
and a
|
||||||
|
jp nz, .dont_evolve_3
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
|
||||||
|
.level
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
ld a, [TempMonLevel]
|
||||||
|
cp b
|
||||||
|
jp c, .dont_evolve_3
|
||||||
|
call IsMonHoldingEverstone
|
||||||
|
jp z, .dont_evolve_3
|
||||||
|
|
||||||
|
.proceed
|
||||||
|
ld a, [TempMonLevel]
|
||||||
|
ld [CurPartyLevel], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wd268], a
|
||||||
|
|
||||||
|
push hl
|
||||||
|
|
||||||
|
ld a, [hl]
|
||||||
|
ld [Buffer2], a
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call GetNick
|
||||||
|
call CopyName1
|
||||||
|
ld hl, Text_WhatEvolving
|
||||||
|
call PrintText
|
||||||
|
|
||||||
|
ld c, 50
|
||||||
|
call DelayFrames
|
||||||
|
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
hlcoord 0, 0
|
||||||
|
lb bc, 12, 20
|
||||||
|
call ClearBox
|
||||||
|
|
||||||
|
ld a, $1
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call ClearSprites
|
||||||
|
|
||||||
|
callba EvolutionAnimation
|
||||||
|
|
||||||
|
push af
|
||||||
|
call ClearSprites
|
||||||
|
pop af
|
||||||
|
jp c, CancelEvolution
|
||||||
|
|
||||||
|
ld hl, Text_CongratulationsYourPokemon
|
||||||
|
call PrintText
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
ld a, [hl]
|
||||||
|
ld [CurSpecies], a
|
||||||
|
ld [TempMonSpecies], a
|
||||||
|
ld [Buffer2], a
|
||||||
|
ld [wd265], a
|
||||||
|
call GetPokemonName
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld hl, Text_EvolvedIntoPKMN
|
||||||
|
call PrintTextBoxText
|
||||||
|
callba MobileFn_106094
|
||||||
|
|
||||||
|
ld de, MUSIC_NONE
|
||||||
|
call PlayMusic
|
||||||
|
ld de, SFX_CAUGHT_MON
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
|
||||||
|
ld c, 40
|
||||||
|
call DelayFrames
|
||||||
|
|
||||||
|
call ClearTileMap
|
||||||
|
call UpdateSpeciesNameIfNotNicknamed
|
||||||
|
call GetBaseData
|
||||||
|
|
||||||
|
ld hl, TempMonExp + 2
|
||||||
|
ld de, TempMonMaxHP
|
||||||
|
ld b, $1
|
||||||
|
predef CalcPkmnStats
|
||||||
|
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMons
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld e, l
|
||||||
|
ld d, h
|
||||||
|
ld bc, MON_MAXHP
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
ld c, [hl]
|
||||||
|
ld hl, TempMonMaxHP + 1
|
||||||
|
ld a, [hld]
|
||||||
|
sub c
|
||||||
|
ld c, a
|
||||||
|
ld a, [hl]
|
||||||
|
sbc b
|
||||||
|
ld b, a
|
||||||
|
ld hl, TempMonHP + 1
|
||||||
|
ld a, [hl]
|
||||||
|
add c
|
||||||
|
ld [hld], a
|
||||||
|
ld a, [hl]
|
||||||
|
adc b
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
ld hl, TempMonSpecies
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
ld a, [CurSpecies]
|
||||||
|
ld [wd265], a
|
||||||
|
xor a
|
||||||
|
ld [MonType], a
|
||||||
|
call LearnLevelMoves
|
||||||
|
ld a, [wd265]
|
||||||
|
dec a
|
||||||
|
call SetSeenAndCaughtMon
|
||||||
|
|
||||||
|
ld a, [wd265]
|
||||||
|
cp UNOWN
|
||||||
|
jr nz, .skip_unown
|
||||||
|
|
||||||
|
ld hl, TempMonDVs
|
||||||
|
predef GetUnownLetter
|
||||||
|
callab UpdateUnownDex
|
||||||
|
|
||||||
|
.skip_unown
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ld a, [TempMonSpecies]
|
||||||
|
ld [hl], a
|
||||||
|
push hl
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
jp CheckForEvolvablePokemon
|
||||||
|
; 423f8
|
||||||
|
|
||||||
|
.dont_evolve_1
|
||||||
|
inc hl
|
||||||
|
.dont_evolve_2
|
||||||
|
inc hl
|
||||||
|
.dont_evolve_3
|
||||||
|
inc hl
|
||||||
|
jp .loop
|
||||||
|
; 423fe
|
||||||
|
|
||||||
|
; dummy pop
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
Evolution_ReturnToMap: ; 423ff
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ld a, [wLinkMode]
|
||||||
|
and a
|
||||||
|
ret nz
|
||||||
|
ld a, [wBattleMode]
|
||||||
|
and a
|
||||||
|
ret nz
|
||||||
|
ld a, [wd268]
|
||||||
|
and a
|
||||||
|
call nz, RestartMapMusic
|
||||||
|
ret
|
||||||
|
; 42414
|
||||||
|
|
||||||
|
UpdateSpeciesNameIfNotNicknamed: ; 42414
|
||||||
|
ld a, [CurSpecies]
|
||||||
|
push af
|
||||||
|
ld a, [BaseDexNo]
|
||||||
|
ld [wd265], a
|
||||||
|
call GetPokemonName
|
||||||
|
pop af
|
||||||
|
ld [CurSpecies], a
|
||||||
|
ld hl, StringBuffer1
|
||||||
|
ld de, StringBuffer2
|
||||||
|
.loop
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
cp [hl]
|
||||||
|
inc hl
|
||||||
|
ret nz
|
||||||
|
cp "@"
|
||||||
|
jr nz, .loop
|
||||||
|
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call AddNTimes
|
||||||
|
push hl
|
||||||
|
ld a, [CurSpecies]
|
||||||
|
ld [wd265], a
|
||||||
|
call GetPokemonName
|
||||||
|
ld hl, StringBuffer1
|
||||||
|
pop de
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
jp CopyBytes
|
||||||
|
; 42454
|
||||||
|
|
||||||
|
CancelEvolution: ; 42454
|
||||||
|
ld hl, Text_StoppedEvolving
|
||||||
|
call PrintText
|
||||||
|
call ClearTileMap
|
||||||
|
pop hl
|
||||||
|
jp CheckForEvolvablePokemon
|
||||||
|
; 42461
|
||||||
|
|
||||||
|
IsMonHoldingEverstone: ; 42461
|
||||||
|
push hl
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMon1Item
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hl]
|
||||||
|
cp EVERSTONE
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 42473
|
||||||
|
|
||||||
|
Text_CongratulationsYourPokemon: ; 0x42473
|
||||||
|
; Congratulations! Your @ @
|
||||||
|
text_jump UnknownText_0x1c4b92
|
||||||
|
db "@"
|
||||||
|
; 0x42478
|
||||||
|
|
||||||
|
Text_EvolvedIntoPKMN: ; 0x42478
|
||||||
|
; evolved into @ !
|
||||||
|
text_jump UnknownText_0x1c4baf
|
||||||
|
db "@"
|
||||||
|
; 0x4247d
|
||||||
|
|
||||||
|
Text_StoppedEvolving: ; 0x4247d
|
||||||
|
; Huh? @ stopped evolving!
|
||||||
|
text_jump UnknownText_0x1c4bc5
|
||||||
|
db "@"
|
||||||
|
; 0x42482
|
||||||
|
|
||||||
|
Text_WhatEvolving: ; 0x42482
|
||||||
|
; What? @ is evolving!
|
||||||
|
text_jump UnknownText_0x1c4be3
|
||||||
|
db "@"
|
||||||
|
; 0x42487
|
||||||
|
|
||||||
|
|
||||||
|
LearnLevelMoves: ; 42487
|
||||||
|
ld a, [wd265]
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
dec a
|
||||||
|
ld b, 0
|
||||||
|
ld c, a
|
||||||
|
ld hl, EvosAttacksPointers
|
||||||
|
rept 2
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
.skip_evos
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr nz, .skip_evos
|
||||||
|
|
||||||
|
.find_move
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .done
|
||||||
|
|
||||||
|
ld b, a
|
||||||
|
ld a, [CurPartyLevel]
|
||||||
|
cp b
|
||||||
|
ld a, [hli]
|
||||||
|
jr nz, .find_move
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld d, a
|
||||||
|
ld hl, PartyMon1Moves
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
|
||||||
|
ld b, NUM_MOVES
|
||||||
|
.check_move
|
||||||
|
ld a, [hli]
|
||||||
|
cp d
|
||||||
|
jr z, .has_move
|
||||||
|
dec b
|
||||||
|
jr nz, .check_move
|
||||||
|
jr .learn
|
||||||
|
.has_move
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
jr .find_move
|
||||||
|
|
||||||
|
.learn
|
||||||
|
ld a, d
|
||||||
|
ld [wd262], a
|
||||||
|
ld [wd265], a
|
||||||
|
call GetMoveName
|
||||||
|
call CopyName1
|
||||||
|
predef LearnMove
|
||||||
|
pop hl
|
||||||
|
jr .find_move
|
||||||
|
|
||||||
|
.done
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
ld [wd265], a
|
||||||
|
ret
|
||||||
|
; 424e1
|
||||||
|
|
||||||
|
|
||||||
|
FillMoves: ; 424e1
|
||||||
|
; Fill in moves at de for CurPartySpecies at CurPartyLevel
|
||||||
|
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
push bc
|
||||||
|
ld hl, EvosAttacksPointers
|
||||||
|
ld b, 0
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
dec a
|
||||||
|
add a
|
||||||
|
rl b
|
||||||
|
ld c, a
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
.GoToAttacks
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr nz, .GoToAttacks
|
||||||
|
jr .GetLevel
|
||||||
|
|
||||||
|
.NextMove
|
||||||
|
pop de
|
||||||
|
.GetMove
|
||||||
|
inc hl
|
||||||
|
.GetLevel
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jp z, .done
|
||||||
|
ld b, a
|
||||||
|
ld a, [CurPartyLevel]
|
||||||
|
cp b
|
||||||
|
jp c, .done
|
||||||
|
ld a, [Buffer1]
|
||||||
|
and a
|
||||||
|
jr z, .CheckMove
|
||||||
|
ld a, [wd002]
|
||||||
|
cp b
|
||||||
|
jr nc, .GetMove
|
||||||
|
|
||||||
|
.CheckMove
|
||||||
|
push de
|
||||||
|
ld c, NUM_MOVES
|
||||||
|
.CheckRepeat
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
cp [hl]
|
||||||
|
jr z, .NextMove
|
||||||
|
dec c
|
||||||
|
jr nz, .CheckRepeat
|
||||||
|
pop de
|
||||||
|
push de
|
||||||
|
ld c, NUM_MOVES
|
||||||
|
.CheckSlot
|
||||||
|
ld a, [de]
|
||||||
|
and a
|
||||||
|
jr z, .LearnMove
|
||||||
|
inc de
|
||||||
|
dec c
|
||||||
|
jr nz, .CheckSlot
|
||||||
|
pop de
|
||||||
|
push de
|
||||||
|
push hl
|
||||||
|
ld h, d
|
||||||
|
ld l, e
|
||||||
|
call ShiftMoves
|
||||||
|
ld a, [Buffer1]
|
||||||
|
and a
|
||||||
|
jr z, .ShiftedMove
|
||||||
|
push de
|
||||||
|
ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
|
||||||
|
add hl, bc
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
call ShiftMoves
|
||||||
|
pop de
|
||||||
|
|
||||||
|
.ShiftedMove
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
.LearnMove
|
||||||
|
ld a, [hl]
|
||||||
|
ld [de], a
|
||||||
|
ld a, [Buffer1]
|
||||||
|
and a
|
||||||
|
jr z, .NextMove
|
||||||
|
push hl
|
||||||
|
ld a, [hl]
|
||||||
|
ld hl, MON_PP - MON_MOVES
|
||||||
|
add hl, de
|
||||||
|
push hl
|
||||||
|
dec a
|
||||||
|
ld hl, Moves + MOVE_PP
|
||||||
|
ld bc, MOVE_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, BANK(Moves)
|
||||||
|
call GetFarByte
|
||||||
|
pop hl
|
||||||
|
ld [hl], a
|
||||||
|
pop hl
|
||||||
|
jr .NextMove
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop bc
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 4256e
|
||||||
|
|
||||||
|
ShiftMoves: ; 4256e
|
||||||
|
ld c, NUM_MOVES - 1
|
||||||
|
.loop
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
ret
|
||||||
|
; 42577
|
||||||
|
|
||||||
|
|
||||||
|
EvoFlagAction: ; 42577
|
||||||
|
push de
|
||||||
|
ld d, $0
|
||||||
|
predef FlagPredef
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
; 42581
|
||||||
|
|
||||||
|
GetPreEvolution: ; 42581
|
||||||
|
; Find the first mon to evolve into CurPartySpecies.
|
||||||
|
|
||||||
|
; Return carry and the new species in CurPartySpecies
|
||||||
|
; if a pre-evolution is found.
|
||||||
|
|
||||||
|
ld c, 0
|
||||||
|
.loop ; For each Pokemon...
|
||||||
|
ld hl, EvosAttacksPointers
|
||||||
|
ld b, 0
|
||||||
|
rept 2
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
.loop2 ; For each evolution...
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
|
||||||
|
cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
|
||||||
|
jr nz, .not_tyrogue
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
.not_tyrogue
|
||||||
|
inc hl
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .found_preevo
|
||||||
|
inc hl
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr nz, .loop2
|
||||||
|
|
||||||
|
.no_evolve
|
||||||
|
inc c
|
||||||
|
ld a, c
|
||||||
|
cp NUM_POKEMON
|
||||||
|
jr c, .loop
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.found_preevo
|
||||||
|
inc c
|
||||||
|
ld a, c
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 425b1
|
@ -1920,7 +1920,7 @@ Function28b87: ; 28b87
|
|||||||
ld a, [PartyCount]
|
ld a, [PartyCount]
|
||||||
dec a
|
dec a
|
||||||
ld [CurPartyMon], a
|
ld [CurPartyMon], a
|
||||||
callab Function421d8
|
callab EvolvePokemon
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
call Function28ef8
|
call Function28ef8
|
||||||
call Function28eff
|
call Function28eff
|
||||||
|
@ -839,92 +839,92 @@ YouHaveNoPKMNString: ; 0x50556
|
|||||||
db "You have no <PK><MN>!@"
|
db "You have no <PK><MN>!@"
|
||||||
|
|
||||||
|
|
||||||
Function50566: ; 50566
|
PrintPartyMenuActionText: ; 50566
|
||||||
ld a, [CurPartyMon]
|
ld a, [CurPartyMon]
|
||||||
ld hl, PartyMonNicknames
|
ld hl, PartyMonNicknames
|
||||||
call GetNick
|
call GetNick
|
||||||
ld a, [PartyMenuActionText]
|
ld a, [PartyMenuActionText]
|
||||||
and $f
|
and $f
|
||||||
ld hl, Unknown_5057b
|
ld hl, .MenuActionTexts
|
||||||
call Function505c1
|
call .PrintText
|
||||||
ret
|
ret
|
||||||
; 5057b
|
; 5057b
|
||||||
|
|
||||||
Unknown_5057b: ; 5057b
|
.MenuActionTexts: ; 5057b
|
||||||
dw UnknownText_0x50594
|
dw .Text_CuredOfPoison
|
||||||
dw UnknownText_0x5059e
|
dw .Text_BurnWasHealed
|
||||||
dw UnknownText_0x505a3
|
dw .Text_Defrosted
|
||||||
dw UnknownText_0x505a8
|
dw .Text_WokeUp
|
||||||
dw UnknownText_0x50599
|
dw .Text_RidOfParalysis
|
||||||
dw UnknownText_0x5058f
|
dw .Text_RecoveredSomeHP
|
||||||
dw UnknownText_0x505ad
|
dw .Text_HealthReturned
|
||||||
dw UnknownText_0x505b2
|
dw .Text_Revitalized
|
||||||
dw UnknownText_0x505b7
|
dw .Text_GrewToLevel
|
||||||
dw UnknownText_0x505bc
|
dw .Text_CameToItsSenses
|
||||||
; 5058f
|
; 5058f
|
||||||
|
|
||||||
UnknownText_0x5058f: ; 0x5058f
|
.Text_RecoveredSomeHP: ; 0x5058f
|
||||||
; recovered @ HP!
|
; recovered @ HP!
|
||||||
text_jump UnknownText_0x1bc0a2
|
text_jump UnknownText_0x1bc0a2
|
||||||
db "@"
|
db "@"
|
||||||
; 0x50594
|
; 0x50594
|
||||||
|
|
||||||
UnknownText_0x50594: ; 0x50594
|
.Text_CuredOfPoison: ; 0x50594
|
||||||
; 's cured of poison.
|
; 's cured of poison.
|
||||||
text_jump UnknownText_0x1bc0bb
|
text_jump UnknownText_0x1bc0bb
|
||||||
db "@"
|
db "@"
|
||||||
; 0x50599
|
; 0x50599
|
||||||
|
|
||||||
UnknownText_0x50599: ; 0x50599
|
.Text_RidOfParalysis: ; 0x50599
|
||||||
; 's rid of paralysis.
|
; 's rid of paralysis.
|
||||||
text_jump UnknownText_0x1bc0d2
|
text_jump UnknownText_0x1bc0d2
|
||||||
db "@"
|
db "@"
|
||||||
; 0x5059e
|
; 0x5059e
|
||||||
|
|
||||||
UnknownText_0x5059e: ; 0x5059e
|
.Text_BurnWasHealed: ; 0x5059e
|
||||||
; 's burn was healed.
|
; 's burn was healed.
|
||||||
text_jump UnknownText_0x1bc0ea
|
text_jump UnknownText_0x1bc0ea
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505a3
|
; 0x505a3
|
||||||
|
|
||||||
UnknownText_0x505a3: ; 0x505a3
|
.Text_Defrosted: ; 0x505a3
|
||||||
; was defrosted.
|
; was defrosted.
|
||||||
text_jump UnknownText_0x1bc101
|
text_jump UnknownText_0x1bc101
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505a8
|
; 0x505a8
|
||||||
|
|
||||||
UnknownText_0x505a8: ; 0x505a8
|
.Text_WokeUp: ; 0x505a8
|
||||||
; woke up.
|
; woke up.
|
||||||
text_jump UnknownText_0x1bc115
|
text_jump UnknownText_0x1bc115
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505ad
|
; 0x505ad
|
||||||
|
|
||||||
UnknownText_0x505ad: ; 0x505ad
|
.Text_HealthReturned: ; 0x505ad
|
||||||
; 's health returned.
|
; 's health returned.
|
||||||
text_jump UnknownText_0x1bc123
|
text_jump UnknownText_0x1bc123
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505b2
|
; 0x505b2
|
||||||
|
|
||||||
UnknownText_0x505b2: ; 0x505b2
|
.Text_Revitalized: ; 0x505b2
|
||||||
; is revitalized.
|
; is revitalized.
|
||||||
text_jump UnknownText_0x1bc13a
|
text_jump UnknownText_0x1bc13a
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505b7
|
; 0x505b7
|
||||||
|
|
||||||
UnknownText_0x505b7: ; 0x505b7
|
.Text_GrewToLevel: ; 0x505b7
|
||||||
; grew to level @ !@ @
|
; grew to level @ !@ @
|
||||||
text_jump UnknownText_0x1bc14f
|
text_jump UnknownText_0x1bc14f
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505bc
|
; 0x505bc
|
||||||
|
|
||||||
UnknownText_0x505bc: ; 0x505bc
|
.Text_CameToItsSenses: ; 0x505bc
|
||||||
; came to its senses.
|
; came to its senses.
|
||||||
text_jump UnknownText_0x1bc16e
|
text_jump UnknownText_0x1bc16e
|
||||||
db "@"
|
db "@"
|
||||||
; 0x505c1
|
; 0x505c1
|
||||||
|
|
||||||
|
|
||||||
Function505c1: ; 505c1
|
.PrintText: ; 505c1
|
||||||
ld e, a
|
ld e, a
|
||||||
ld d, 0
|
ld d, 0
|
||||||
rept 2
|
rept 2
|
||||||
@ -935,7 +935,7 @@ endr
|
|||||||
ld l, a
|
ld l, a
|
||||||
ld a, [Options]
|
ld a, [Options]
|
||||||
push af
|
push af
|
||||||
set 4, a
|
set NO_TEXT_SCROLL, a
|
||||||
ld [Options], a
|
ld [Options], a
|
||||||
call PrintText
|
call PrintText
|
||||||
pop af
|
pop af
|
||||||
|
@ -330,7 +330,7 @@ Function90e3f: ; 90e3f
|
|||||||
.kanto
|
.kanto
|
||||||
ld e, 1
|
ld e, 1
|
||||||
.ok
|
.ok
|
||||||
callba Function91ae1
|
callba PokegearMap
|
||||||
ld a, $7
|
ld a, $7
|
||||||
ld bc, $12
|
ld bc, $12
|
||||||
hlcoord 1, 2
|
hlcoord 1, 2
|
||||||
@ -1919,7 +1919,8 @@ endr
|
|||||||
.kanto
|
.kanto
|
||||||
jp LoadStation_PlacesAndPeople
|
jp LoadStation_PlacesAndPeople
|
||||||
; 91ae1
|
; 91ae1
|
||||||
Function91ae1: ; 91ae1
|
|
||||||
|
PokegearMap: ; 91ae1
|
||||||
ld a, e
|
ld a, e
|
||||||
and a
|
and a
|
||||||
jr nz, .kanto
|
jr nz, .kanto
|
||||||
|
@ -58,7 +58,7 @@ PredefPointers:: ; 856b
|
|||||||
add_predef GetMonFrontpic
|
add_predef GetMonFrontpic
|
||||||
add_predef LearnLevelMoves
|
add_predef LearnLevelMoves
|
||||||
add_predef FillMoves
|
add_predef FillMoves
|
||||||
add_predef Function421e6
|
add_predef EvolveAfterBattle
|
||||||
add_predef Function28f63
|
add_predef Function28f63
|
||||||
add_predef Function28f24
|
add_predef Function28f24
|
||||||
add_predef CopyPkmnToTempMon
|
add_predef CopyPkmnToTempMon
|
||||||
@ -97,7 +97,7 @@ PredefPointers:: ; 856b
|
|||||||
add_predef DecompressPredef ; $40
|
add_predef DecompressPredef ; $40
|
||||||
add_predef CheckTypeMatchup
|
add_predef CheckTypeMatchup
|
||||||
add_predef ConvertMon_1to2
|
add_predef ConvertMon_1to2
|
||||||
add_predef Functionfb877
|
add_predef NewPokedexEntry
|
||||||
add_predef AnimateMon_Slow_Normal
|
add_predef AnimateMon_Slow_Normal
|
||||||
add_predef PlaceStatusString
|
add_predef PlaceStatusString
|
||||||
add_predef LoadMonAnimation
|
add_predef LoadMonAnimation
|
||||||
|
@ -215,7 +215,7 @@ Special_GameCornerPrizeMonCheckDex: ; c230
|
|||||||
call FadeToMenu
|
call FadeToMenu
|
||||||
ld a, [ScriptVar]
|
ld a, [ScriptVar]
|
||||||
ld [wd265], a
|
ld [wd265], a
|
||||||
callba Functionfb877
|
callba NewPokedexEntry
|
||||||
call ExitAllMenus
|
call ExitAllMenus
|
||||||
ret
|
ret
|
||||||
; c252
|
; c252
|
||||||
|
@ -664,7 +664,7 @@ UnknownText_0x12a5b: ; 0x12a5b
|
|||||||
|
|
||||||
CantUseItem: ; 12a60
|
CantUseItem: ; 12a60
|
||||||
ld hl, CantUseItemText
|
ld hl, CantUseItemText
|
||||||
call Function2012
|
call MenuTextBoxWaitButton
|
||||||
ret
|
ret
|
||||||
; 12a67
|
; 12a67
|
||||||
|
|
||||||
@ -1241,14 +1241,14 @@ OpenPartyStats: ; 12e00
|
|||||||
|
|
||||||
MonMenu_Cut: ; 12e1b
|
MonMenu_Cut: ; 12e1b
|
||||||
callba CutFunction
|
callba CutFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12e2d
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e2d
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12e30
|
; 12e30
|
||||||
@ -1256,160 +1256,161 @@ MonMenu_Cut: ; 12e1b
|
|||||||
|
|
||||||
MonMenu_Fly: ; 12e30
|
MonMenu_Fly: ; 12e30
|
||||||
callba FlyFunction
|
callba FlyFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $2
|
cp $2
|
||||||
jr z, .asm_12e4c
|
jr z, .Fail
|
||||||
cp $0
|
cp $0
|
||||||
jr z, .asm_12e4f
|
jr z, .Error
|
||||||
callba MobileFn_1060b5
|
callba MobileFn_1060b5
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e4c
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e4f
|
.Error
|
||||||
ld a, $0
|
ld a, $0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e52
|
.Unused
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ret
|
ret
|
||||||
; 12e55
|
; 12e55
|
||||||
|
|
||||||
MonMenu_Flash: ; 12e55
|
MonMenu_Flash: ; 12e55
|
||||||
callba Functionc8ac
|
callba Functionc8ac
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12e67
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e67
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12e6a
|
; 12e6a
|
||||||
|
|
||||||
MonMenu_Strength: ; 12e6a
|
MonMenu_Strength: ; 12e6a
|
||||||
callba StrengthFunction
|
callba StrengthFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12e7c
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e7c
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12e7f
|
; 12e7f
|
||||||
|
|
||||||
MonMenu_Whirlpool: ; 12e7f
|
MonMenu_Whirlpool: ; 12e7f
|
||||||
callba WhirlpoolFunction
|
callba WhirlpoolFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12e91
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12e91
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12e94
|
; 12e94
|
||||||
|
|
||||||
MonMenu_Waterfall: ; 12e94
|
MonMenu_Waterfall: ; 12e94
|
||||||
callba Functioncade
|
callba Functioncade
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12ea6
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12ea6
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12ea9
|
; 12ea9
|
||||||
|
|
||||||
MonMenu_Teleport: ; 12ea9
|
MonMenu_Teleport: ; 12ea9
|
||||||
callba TeleportFunction
|
callba TeleportFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_12eba
|
jr z, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12eba
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12ebd
|
; 12ebd
|
||||||
|
|
||||||
MonMenu_Surf: ; 12ebd
|
MonMenu_Surf: ; 12ebd
|
||||||
callba SurfFunction
|
callba SurfFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_12ece
|
jr z, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12ece
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12ed1
|
; 12ed1
|
||||||
|
|
||||||
MonMenu_Dig: ; 12ed1
|
MonMenu_Dig: ; 12ed1
|
||||||
callba DigFunction
|
callba DigFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12ee3
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12ee3
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12ee6
|
; 12ee6
|
||||||
|
|
||||||
MonMenu_Softboiled_MilkDrink: ; 12ee6
|
MonMenu_Softboiled_MilkDrink: ; 12ee6
|
||||||
call Function12f05
|
call .CheckMonHasEnoughHP
|
||||||
jr nc, .asm_12ef3
|
jr nc, .NotEnoughHP
|
||||||
callba Functionf3df
|
callba Softboiled_MilkDrinkFunction
|
||||||
jr .asm_12ef9
|
jr .finish
|
||||||
|
|
||||||
.asm_12ef3
|
.NotEnoughHP
|
||||||
ld hl, UnknownText_0x12f00
|
ld hl, .Text_NotEnoughHP
|
||||||
call PrintText
|
call PrintText
|
||||||
|
|
||||||
.asm_12ef9
|
.finish
|
||||||
xor a
|
xor a
|
||||||
ld [PartyMenuActionText], a
|
ld [PartyMenuActionText], a
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12f00
|
; 12f00
|
||||||
|
|
||||||
UnknownText_0x12f00: ; 0x12f00
|
.Text_NotEnoughHP: ; 0x12f00
|
||||||
; Not enough HP!
|
; Not enough HP!
|
||||||
text_jump UnknownText_0x1c1ce3
|
text_jump UnknownText_0x1c1ce3
|
||||||
db "@"
|
db "@"
|
||||||
; 0x12f05
|
; 0x12f05
|
||||||
|
|
||||||
Function12f05: ; 12f05
|
.CheckMonHasEnoughHP: ; 12f05
|
||||||
|
; Need to have at least (MaxHP / 5) HP left.
|
||||||
ld a, MON_MAXHP
|
ld a, MON_MAXHP
|
||||||
call GetPartyParamLocation
|
call GetPartyParamLocation
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [hDividend + 0], a
|
ld [hDividend + 0], a
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [hDividend + 1], a
|
ld [hDividend + 1], a
|
||||||
ld a, $5
|
ld a, 5
|
||||||
ld [hDivisor], a
|
ld [hDivisor], a
|
||||||
ld b, $2
|
ld b, 2
|
||||||
call Divide
|
call Divide
|
||||||
ld a, MON_HP + 1
|
ld a, MON_HP + 1
|
||||||
call GetPartyParamLocation
|
call GetPartyParamLocation
|
||||||
@ -1423,28 +1424,28 @@ Function12f05: ; 12f05
|
|||||||
|
|
||||||
MonMenu_Headbutt: ; 12f26
|
MonMenu_Headbutt: ; 12f26
|
||||||
callba HeadbuttFunction
|
callba HeadbuttFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12f38
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12f38
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12f3b
|
; 12f3b
|
||||||
|
|
||||||
MonMenu_RockSmash: ; 12f3b
|
MonMenu_RockSmash: ; 12f3b
|
||||||
callba RockSmashFunction
|
callba RockSmashFunction
|
||||||
ld a, [wd0ec]
|
ld a, [wFieldMoveSucceeded]
|
||||||
cp $1
|
cp $1
|
||||||
jr nz, .asm_12f4d
|
jr nz, .Fail
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_12f4d
|
.Fail
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ret
|
ret
|
||||||
; 12f50
|
; 12f50
|
||||||
|
@ -147,7 +147,7 @@ Function91a04: ; 91a04
|
|||||||
ld e, $1
|
ld e, $1
|
||||||
|
|
||||||
.okay
|
.okay
|
||||||
callba Function91ae1
|
callba PokegearMap
|
||||||
ld a, $7
|
ld a, $7
|
||||||
ld bc, 6
|
ld bc, 6
|
||||||
hlcoord 1, 0
|
hlcoord 1, 0
|
||||||
|
@ -546,7 +546,7 @@ PlayClickSFX:: ; 2009
|
|||||||
ret
|
ret
|
||||||
; 0x2012
|
; 0x2012
|
||||||
|
|
||||||
Function2012:: ; 2012
|
MenuTextBoxWaitButton:: ; 2012
|
||||||
call MenuTextBox
|
call MenuTextBox
|
||||||
call CloseText
|
call CloseText
|
||||||
call ExitMenu
|
call ExitMenu
|
||||||
|
@ -714,7 +714,7 @@ FarString:: ; 13d4
|
|||||||
ret
|
ret
|
||||||
; 13e0
|
; 13e0
|
||||||
|
|
||||||
Function13e0:: ; 13e0
|
PokeFluteTerminatorCharacter:: ; 13e0
|
||||||
ld hl, .stop
|
ld hl, .stop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
747
main.asm
747
main.asm
@ -2957,7 +2957,7 @@ SpecialGiveShuckle: ; 7305
|
|||||||
|
|
||||||
; Caught data.
|
; Caught data.
|
||||||
ld b, 0
|
ld b, 0
|
||||||
callba SetPartymonCaughtData
|
callba SetGiftPartyMonCaughtData
|
||||||
|
|
||||||
; Holding a Berry.
|
; Holding a Berry.
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
@ -4530,7 +4530,7 @@ endr
|
|||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [bc], a
|
ld [bc], a
|
||||||
|
|
||||||
callba Functionf8b9
|
callba RestoreAllPP
|
||||||
ret
|
ret
|
||||||
; c699
|
; c699
|
||||||
|
|
||||||
@ -8308,7 +8308,7 @@ endr
|
|||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
predef GetUnownLetter
|
predef GetUnownLetter
|
||||||
callab Functionfba18
|
callab UpdateUnownDex
|
||||||
|
|
||||||
.done
|
.done
|
||||||
scf ; When this function returns, the carry flag indicates success vs failure.
|
scf ; When this function returns, the carry flag indicates success vs failure.
|
||||||
@ -8420,7 +8420,7 @@ AddTempmonToParty: ; da96
|
|||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
predef GetUnownLetter
|
predef GetUnownLetter
|
||||||
callab Functionfba18
|
callab UpdateUnownDex
|
||||||
ld a, [wdef4]
|
ld a, [wdef4]
|
||||||
and a
|
and a
|
||||||
jr nz, .done
|
jr nz, .done
|
||||||
@ -9014,7 +9014,7 @@ SentPkmnIntoBox: ; de6e
|
|||||||
jr nz, .asm_df20
|
jr nz, .asm_df20
|
||||||
ld hl, sBoxMon1DVs
|
ld hl, sBoxMon1DVs
|
||||||
predef GetUnownLetter
|
predef GetUnownLetter
|
||||||
callab Functionfba18
|
callab UpdateUnownDex
|
||||||
|
|
||||||
.asm_df20
|
.asm_df20
|
||||||
ld hl, sBoxMon1Moves
|
ld hl, sBoxMon1Moves
|
||||||
@ -9697,7 +9697,7 @@ endr
|
|||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld [hl], 01001 % $100
|
ld [hl], 01001 % $100
|
||||||
pop bc
|
pop bc
|
||||||
callba SetPartymonCaughtData
|
callba SetGiftPartyMonCaughtData
|
||||||
jr .skip_nickname
|
jr .skip_nickname
|
||||||
|
|
||||||
.asm_e35e
|
.asm_e35e
|
||||||
@ -9721,7 +9721,7 @@ endr
|
|||||||
call Random
|
call Random
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
callba SetBoxMonCaughtData
|
callba SetGiftBoxMonCaughtData
|
||||||
jr .skip_nickname
|
jr .skip_nickname
|
||||||
|
|
||||||
.asm_e390
|
.asm_e390
|
||||||
@ -9732,11 +9732,11 @@ endr
|
|||||||
ld a, b
|
ld a, b
|
||||||
and a
|
and a
|
||||||
jr z, .asm_e3a0
|
jr z, .asm_e3a0
|
||||||
callba Function4db83
|
callba SetBoxMonCaughtData
|
||||||
jr .asm_e3a6
|
jr .asm_e3a6
|
||||||
|
|
||||||
.asm_e3a0
|
.asm_e3a0
|
||||||
callba Function4db49
|
callba SetCaughtData
|
||||||
|
|
||||||
.asm_e3a6
|
.asm_e3a6
|
||||||
callba GiveANickname_YesNo
|
callba GiveANickname_YesNo
|
||||||
@ -13569,7 +13569,7 @@ LevelUpHappinessMod: ; 2709e
|
|||||||
|
|
||||||
INCLUDE "trainers/dvs.asm"
|
INCLUDE "trainers/dvs.asm"
|
||||||
|
|
||||||
Function2715c: ; 2715c
|
_ReturnToBattle_UseBall: ; 2715c
|
||||||
call ClearBGPalettes
|
call ClearBGPalettes
|
||||||
call ClearTileMap
|
call ClearTileMap
|
||||||
ld a, [BattleType]
|
ld a, [BattleType]
|
||||||
@ -16258,690 +16258,7 @@ Function41af7: ; 41af7
|
|||||||
|
|
||||||
INCLUDE "battle/moves/moves.asm"
|
INCLUDE "battle/moves/moves.asm"
|
||||||
|
|
||||||
|
INCLUDE "engine/evolve.asm"
|
||||||
Function421d8: ; 421d8
|
|
||||||
ld hl, EvolvableFlags
|
|
||||||
xor a
|
|
||||||
ld [hl], a
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld c, a
|
|
||||||
ld b, $1
|
|
||||||
call Function42577
|
|
||||||
|
|
||||||
Function421e6: ; 421e6
|
|
||||||
xor a
|
|
||||||
ld [wd268], a
|
|
||||||
dec a
|
|
||||||
ld [CurPartyMon], a
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
ld hl, PartyCount
|
|
||||||
|
|
||||||
push hl
|
|
||||||
|
|
||||||
Function421f5: ; 421f5
|
|
||||||
ld hl, CurPartyMon
|
|
||||||
inc [hl]
|
|
||||||
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
inc hl
|
|
||||||
ld a, [hl]
|
|
||||||
cp $ff
|
|
||||||
jp z, Function423ff
|
|
||||||
|
|
||||||
ld [Buffer1], a
|
|
||||||
|
|
||||||
push hl
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld c, a
|
|
||||||
ld hl, EvolvableFlags
|
|
||||||
ld b, 2
|
|
||||||
call Function42577
|
|
||||||
ld a, c
|
|
||||||
and a
|
|
||||||
jp z, Function421f5
|
|
||||||
|
|
||||||
ld a, [Buffer1]
|
|
||||||
dec a
|
|
||||||
ld b, 0
|
|
||||||
ld c, a
|
|
||||||
ld hl, EvosAttacksPointers
|
|
||||||
rept 2
|
|
||||||
add hl, bc
|
|
||||||
endr
|
|
||||||
ld a, [hli]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
|
|
||||||
push hl
|
|
||||||
xor a
|
|
||||||
ld [MonType], a
|
|
||||||
predef CopyPkmnToTempMon
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
.asm_42230
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr z, Function421f5
|
|
||||||
|
|
||||||
ld b, a
|
|
||||||
|
|
||||||
cp EVOLVE_TRADE
|
|
||||||
jr z, .trade
|
|
||||||
|
|
||||||
ld a, [wLinkMode]
|
|
||||||
and a
|
|
||||||
jp nz, .asm_423f9
|
|
||||||
|
|
||||||
ld a, b
|
|
||||||
cp EVOLVE_ITEM
|
|
||||||
jp z, .item
|
|
||||||
|
|
||||||
ld a, [wd1e9]
|
|
||||||
and a
|
|
||||||
jp nz, .asm_423f9
|
|
||||||
|
|
||||||
ld a, b
|
|
||||||
cp EVOLVE_LEVEL
|
|
||||||
jp z, .level
|
|
||||||
|
|
||||||
cp EVOLVE_HAPPINESS
|
|
||||||
jr z, .happiness
|
|
||||||
|
|
||||||
|
|
||||||
; EVOLVE_STAT
|
|
||||||
ld a, [TempMonLevel]
|
|
||||||
cp [hl]
|
|
||||||
jp c, .asm_423f8
|
|
||||||
|
|
||||||
call Function42461
|
|
||||||
jp z, .asm_423f8
|
|
||||||
|
|
||||||
push hl
|
|
||||||
ld de, TempMonAttack
|
|
||||||
ld hl, TempMonDefense
|
|
||||||
ld c, 2
|
|
||||||
call StringCmp
|
|
||||||
ld a, ATK_EQ_DEF
|
|
||||||
jr z, .asm_4227a
|
|
||||||
ld a, ATK_LT_DEF
|
|
||||||
jr c, .asm_4227a
|
|
||||||
ld a, ATK_GT_DEF
|
|
||||||
.asm_4227a
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
inc hl
|
|
||||||
cp [hl]
|
|
||||||
jp nz, .asm_423f9
|
|
||||||
|
|
||||||
inc hl
|
|
||||||
jr .asm_422fd
|
|
||||||
|
|
||||||
|
|
||||||
.happiness
|
|
||||||
ld a, [TempMonHappiness]
|
|
||||||
cp 220
|
|
||||||
jp c, .asm_423f9
|
|
||||||
|
|
||||||
call Function42461
|
|
||||||
jp z, .asm_423f9
|
|
||||||
|
|
||||||
ld a, [hli]
|
|
||||||
cp TR_ANYTIME
|
|
||||||
jr z, .asm_422fd
|
|
||||||
cp TR_MORNDAY
|
|
||||||
jr z, .asm_422a4
|
|
||||||
|
|
||||||
; TR_NITE
|
|
||||||
ld a, [TimeOfDay]
|
|
||||||
cp NITE
|
|
||||||
jp nz, .asm_423fa
|
|
||||||
jr .asm_422fd
|
|
||||||
|
|
||||||
.asm_422a4
|
|
||||||
ld a, [TimeOfDay]
|
|
||||||
cp NITE
|
|
||||||
jp z, .asm_423fa
|
|
||||||
jr .asm_422fd
|
|
||||||
|
|
||||||
|
|
||||||
.trade
|
|
||||||
ld a, [wLinkMode]
|
|
||||||
and a
|
|
||||||
jp z, .asm_423f9
|
|
||||||
|
|
||||||
call Function42461
|
|
||||||
jp z, .asm_423f9
|
|
||||||
|
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
|
||||||
inc a
|
|
||||||
jr z, .asm_422fd
|
|
||||||
|
|
||||||
ld a, [wLinkMode]
|
|
||||||
cp LINK_TIMECAPSULE
|
|
||||||
jp z, .asm_423fa
|
|
||||||
|
|
||||||
ld a, [TempMonItem]
|
|
||||||
cp b
|
|
||||||
jp nz, .asm_423fa
|
|
||||||
|
|
||||||
xor a
|
|
||||||
ld [TempMonItem], a
|
|
||||||
jr .asm_422fd
|
|
||||||
|
|
||||||
|
|
||||||
.item
|
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
|
||||||
ld a, [CurItem]
|
|
||||||
cp b
|
|
||||||
jp nz, .asm_423fa
|
|
||||||
|
|
||||||
ld a, [wd1e9]
|
|
||||||
and a
|
|
||||||
jp z, .asm_423fa
|
|
||||||
ld a, [wLinkMode]
|
|
||||||
and a
|
|
||||||
jp nz, .asm_423fa
|
|
||||||
jr .asm_422fd
|
|
||||||
|
|
||||||
|
|
||||||
.level
|
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
|
||||||
ld a, [TempMonLevel]
|
|
||||||
cp b
|
|
||||||
jp c, .asm_423fa
|
|
||||||
call Function42461
|
|
||||||
jp z, .asm_423fa
|
|
||||||
|
|
||||||
.asm_422fd
|
|
||||||
ld a, [TempMonLevel]
|
|
||||||
ld [CurPartyLevel], a
|
|
||||||
ld a, $1
|
|
||||||
ld [wd268], a
|
|
||||||
|
|
||||||
push hl
|
|
||||||
|
|
||||||
ld a, [hl]
|
|
||||||
ld [Buffer2], a
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld hl, PartyMonNicknames
|
|
||||||
call GetNick
|
|
||||||
call CopyName1
|
|
||||||
ld hl, UnknownText_0x42482
|
|
||||||
call PrintText
|
|
||||||
|
|
||||||
ld c, 50
|
|
||||||
call DelayFrames
|
|
||||||
|
|
||||||
xor a
|
|
||||||
ld [hBGMapMode], a
|
|
||||||
hlcoord 0, 0
|
|
||||||
lb bc, 12, 20
|
|
||||||
call ClearBox
|
|
||||||
|
|
||||||
ld a, $1
|
|
||||||
ld [hBGMapMode], a
|
|
||||||
call ClearSprites
|
|
||||||
|
|
||||||
callba EvolutionAnimation
|
|
||||||
|
|
||||||
push af
|
|
||||||
call ClearSprites
|
|
||||||
pop af
|
|
||||||
jp c, Function42454
|
|
||||||
|
|
||||||
ld hl, UnknownText_0x42473
|
|
||||||
call PrintText
|
|
||||||
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
ld a, [hl]
|
|
||||||
ld [CurSpecies], a
|
|
||||||
ld [TempMonSpecies], a
|
|
||||||
ld [Buffer2], a
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
|
|
||||||
push hl
|
|
||||||
ld hl, UnknownText_0x42478
|
|
||||||
call PrintTextBoxText
|
|
||||||
callba MobileFn_106094
|
|
||||||
|
|
||||||
ld de, MUSIC_NONE
|
|
||||||
call PlayMusic
|
|
||||||
ld de, SFX_CAUGHT_MON
|
|
||||||
call PlaySFX
|
|
||||||
call WaitSFX
|
|
||||||
|
|
||||||
ld c, 40
|
|
||||||
call DelayFrames
|
|
||||||
|
|
||||||
call ClearTileMap
|
|
||||||
call Function42414
|
|
||||||
call GetBaseData
|
|
||||||
|
|
||||||
ld hl, TempMonExp + 2
|
|
||||||
ld de, TempMonMaxHP
|
|
||||||
ld b, $1
|
|
||||||
predef CalcPkmnStats
|
|
||||||
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld hl, PartyMons
|
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
|
||||||
call AddNTimes
|
|
||||||
ld e, l
|
|
||||||
ld d, h
|
|
||||||
ld bc, MON_MAXHP
|
|
||||||
add hl, bc
|
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
|
||||||
ld c, [hl]
|
|
||||||
ld hl, TempMonMaxHP + 1
|
|
||||||
ld a, [hld]
|
|
||||||
sub c
|
|
||||||
ld c, a
|
|
||||||
ld a, [hl]
|
|
||||||
sbc b
|
|
||||||
ld b, a
|
|
||||||
ld hl, TempMonHP + 1
|
|
||||||
ld a, [hl]
|
|
||||||
add c
|
|
||||||
ld [hld], a
|
|
||||||
ld a, [hl]
|
|
||||||
adc b
|
|
||||||
ld [hl], a
|
|
||||||
|
|
||||||
ld hl, TempMonSpecies
|
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
|
||||||
call CopyBytes
|
|
||||||
|
|
||||||
ld a, [CurSpecies]
|
|
||||||
ld [wd265], a
|
|
||||||
xor a
|
|
||||||
ld [MonType], a
|
|
||||||
call LearnLevelMoves
|
|
||||||
ld a, [wd265]
|
|
||||||
dec a
|
|
||||||
call SetSeenAndCaughtMon
|
|
||||||
|
|
||||||
ld a, [wd265]
|
|
||||||
cp UNOWN
|
|
||||||
jr nz, .asm_423ec
|
|
||||||
|
|
||||||
ld hl, TempMonDVs
|
|
||||||
predef GetUnownLetter
|
|
||||||
callab Functionfba18
|
|
||||||
|
|
||||||
.asm_423ec
|
|
||||||
pop de
|
|
||||||
pop hl
|
|
||||||
ld a, [TempMonSpecies]
|
|
||||||
ld [hl], a
|
|
||||||
push hl
|
|
||||||
ld l, e
|
|
||||||
ld h, d
|
|
||||||
jp Function421f5
|
|
||||||
; 423f8
|
|
||||||
|
|
||||||
.asm_423f8
|
|
||||||
inc hl
|
|
||||||
.asm_423f9
|
|
||||||
inc hl
|
|
||||||
.asm_423fa
|
|
||||||
inc hl
|
|
||||||
jp .asm_42230
|
|
||||||
; 423fe
|
|
||||||
|
|
||||||
Function423fe: ; 423fe
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
Function423ff: ; 423ff
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ld a, [wLinkMode]
|
|
||||||
and a
|
|
||||||
ret nz
|
|
||||||
ld a, [wBattleMode]
|
|
||||||
and a
|
|
||||||
ret nz
|
|
||||||
ld a, [wd268]
|
|
||||||
and a
|
|
||||||
call nz, RestartMapMusic
|
|
||||||
ret
|
|
||||||
; 42414
|
|
||||||
|
|
||||||
Function42414: ; 42414
|
|
||||||
ld a, [CurSpecies]
|
|
||||||
push af
|
|
||||||
ld a, [BaseDexNo]
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
pop af
|
|
||||||
ld [CurSpecies], a
|
|
||||||
ld hl, StringBuffer1
|
|
||||||
ld de, StringBuffer2
|
|
||||||
.asm_4242b
|
|
||||||
ld a, [de]
|
|
||||||
inc de
|
|
||||||
cp [hl]
|
|
||||||
inc hl
|
|
||||||
ret nz
|
|
||||||
cp "@"
|
|
||||||
jr nz, .asm_4242b
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld bc, PKMN_NAME_LENGTH
|
|
||||||
ld hl, PartyMonNicknames
|
|
||||||
call AddNTimes
|
|
||||||
push hl
|
|
||||||
ld a, [CurSpecies]
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
ld hl, StringBuffer1
|
|
||||||
pop de
|
|
||||||
ld bc, PKMN_NAME_LENGTH
|
|
||||||
jp CopyBytes
|
|
||||||
; 42454
|
|
||||||
|
|
||||||
Function42454: ; 42454
|
|
||||||
ld hl, UnknownText_0x4247d
|
|
||||||
call PrintText
|
|
||||||
call ClearTileMap
|
|
||||||
pop hl
|
|
||||||
jp Function421f5
|
|
||||||
; 42461
|
|
||||||
|
|
||||||
Function42461: ; 42461
|
|
||||||
push hl
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld hl, PartyMon1Item
|
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
|
||||||
call AddNTimes
|
|
||||||
ld a, [hl]
|
|
||||||
cp EVERSTONE
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
; 42473
|
|
||||||
|
|
||||||
UnknownText_0x42473: ; 0x42473
|
|
||||||
; Congratulations! Your @ @
|
|
||||||
text_jump UnknownText_0x1c4b92
|
|
||||||
db "@"
|
|
||||||
; 0x42478
|
|
||||||
|
|
||||||
UnknownText_0x42478: ; 0x42478
|
|
||||||
; evolved into @ !
|
|
||||||
text_jump UnknownText_0x1c4baf
|
|
||||||
db "@"
|
|
||||||
; 0x4247d
|
|
||||||
|
|
||||||
UnknownText_0x4247d: ; 0x4247d
|
|
||||||
; Huh? @ stopped evolving!
|
|
||||||
text_jump UnknownText_0x1c4bc5
|
|
||||||
db "@"
|
|
||||||
; 0x42482
|
|
||||||
|
|
||||||
UnknownText_0x42482: ; 0x42482
|
|
||||||
; What? @ is evolving!
|
|
||||||
text_jump UnknownText_0x1c4be3
|
|
||||||
db "@"
|
|
||||||
; 0x42487
|
|
||||||
|
|
||||||
|
|
||||||
LearnLevelMoves: ; 42487
|
|
||||||
ld a, [wd265]
|
|
||||||
ld [CurPartySpecies], a
|
|
||||||
dec a
|
|
||||||
ld b, 0
|
|
||||||
ld c, a
|
|
||||||
ld hl, EvosAttacksPointers
|
|
||||||
rept 2
|
|
||||||
add hl, bc
|
|
||||||
endr
|
|
||||||
ld a, [hli]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
|
|
||||||
.skip_evos
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr nz, .skip_evos
|
|
||||||
|
|
||||||
.find_move
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr z, .done
|
|
||||||
|
|
||||||
ld b, a
|
|
||||||
ld a, [CurPartyLevel]
|
|
||||||
cp b
|
|
||||||
ld a, [hli]
|
|
||||||
jr nz, .find_move
|
|
||||||
|
|
||||||
push hl
|
|
||||||
ld d, a
|
|
||||||
ld hl, PartyMon1Moves
|
|
||||||
ld a, [CurPartyMon]
|
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
|
||||||
call AddNTimes
|
|
||||||
|
|
||||||
ld b, NUM_MOVES
|
|
||||||
.check_move
|
|
||||||
ld a, [hli]
|
|
||||||
cp d
|
|
||||||
jr z, .has_move
|
|
||||||
dec b
|
|
||||||
jr nz, .check_move
|
|
||||||
jr .learn
|
|
||||||
.has_move
|
|
||||||
|
|
||||||
pop hl
|
|
||||||
jr .find_move
|
|
||||||
|
|
||||||
.learn
|
|
||||||
ld a, d
|
|
||||||
ld [wd262], a
|
|
||||||
ld [wd265], a
|
|
||||||
call GetMoveName
|
|
||||||
call CopyName1
|
|
||||||
predef LearnMove
|
|
||||||
pop hl
|
|
||||||
jr .find_move
|
|
||||||
|
|
||||||
.done
|
|
||||||
ld a, [CurPartySpecies]
|
|
||||||
ld [wd265], a
|
|
||||||
ret
|
|
||||||
; 424e1
|
|
||||||
|
|
||||||
|
|
||||||
FillMoves: ; 424e1
|
|
||||||
; Fill in moves at de for CurPartySpecies at CurPartyLevel
|
|
||||||
|
|
||||||
push hl
|
|
||||||
push de
|
|
||||||
push bc
|
|
||||||
ld hl, EvosAttacksPointers
|
|
||||||
ld b, 0
|
|
||||||
ld a, [CurPartySpecies]
|
|
||||||
dec a
|
|
||||||
add a
|
|
||||||
rl b
|
|
||||||
ld c, a
|
|
||||||
add hl, bc
|
|
||||||
ld a, [hli]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
.GoToAttacks
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr nz, .GoToAttacks
|
|
||||||
jr .GetLevel
|
|
||||||
|
|
||||||
.NextMove
|
|
||||||
pop de
|
|
||||||
.GetMove
|
|
||||||
inc hl
|
|
||||||
.GetLevel
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jp z, .done
|
|
||||||
ld b, a
|
|
||||||
ld a, [CurPartyLevel]
|
|
||||||
cp b
|
|
||||||
jp c, .done
|
|
||||||
ld a, [Buffer1]
|
|
||||||
and a
|
|
||||||
jr z, .CheckMove
|
|
||||||
ld a, [wd002]
|
|
||||||
cp b
|
|
||||||
jr nc, .GetMove
|
|
||||||
|
|
||||||
.CheckMove
|
|
||||||
push de
|
|
||||||
ld c, NUM_MOVES
|
|
||||||
.CheckRepeat
|
|
||||||
ld a, [de]
|
|
||||||
inc de
|
|
||||||
cp [hl]
|
|
||||||
jr z, .NextMove
|
|
||||||
dec c
|
|
||||||
jr nz, .CheckRepeat
|
|
||||||
pop de
|
|
||||||
push de
|
|
||||||
ld c, NUM_MOVES
|
|
||||||
.CheckSlot
|
|
||||||
ld a, [de]
|
|
||||||
and a
|
|
||||||
jr z, .LearnMove
|
|
||||||
inc de
|
|
||||||
dec c
|
|
||||||
jr nz, .CheckSlot
|
|
||||||
pop de
|
|
||||||
push de
|
|
||||||
push hl
|
|
||||||
ld h, d
|
|
||||||
ld l, e
|
|
||||||
call ShiftMoves
|
|
||||||
ld a, [Buffer1]
|
|
||||||
and a
|
|
||||||
jr z, .ShiftedMove
|
|
||||||
push de
|
|
||||||
ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
|
|
||||||
add hl, bc
|
|
||||||
ld d, h
|
|
||||||
ld e, l
|
|
||||||
call ShiftMoves
|
|
||||||
pop de
|
|
||||||
|
|
||||||
.ShiftedMove
|
|
||||||
pop hl
|
|
||||||
|
|
||||||
.LearnMove
|
|
||||||
ld a, [hl]
|
|
||||||
ld [de], a
|
|
||||||
ld a, [Buffer1]
|
|
||||||
and a
|
|
||||||
jr z, .NextMove
|
|
||||||
push hl
|
|
||||||
ld a, [hl]
|
|
||||||
ld hl, MON_PP - MON_MOVES
|
|
||||||
add hl, de
|
|
||||||
push hl
|
|
||||||
dec a
|
|
||||||
ld hl, Moves + MOVE_PP
|
|
||||||
ld bc, MOVE_LENGTH
|
|
||||||
call AddNTimes
|
|
||||||
ld a, BANK(Moves)
|
|
||||||
call GetFarByte
|
|
||||||
pop hl
|
|
||||||
ld [hl], a
|
|
||||||
pop hl
|
|
||||||
jr .NextMove
|
|
||||||
|
|
||||||
.done
|
|
||||||
pop bc
|
|
||||||
pop de
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
; 4256e
|
|
||||||
|
|
||||||
ShiftMoves: ; 4256e
|
|
||||||
ld c, NUM_MOVES - 1
|
|
||||||
.loop
|
|
||||||
inc de
|
|
||||||
ld a, [de]
|
|
||||||
ld [hli], a
|
|
||||||
dec c
|
|
||||||
jr nz, .loop
|
|
||||||
ret
|
|
||||||
; 42577
|
|
||||||
|
|
||||||
|
|
||||||
Function42577: ; 42577
|
|
||||||
push de
|
|
||||||
ld d, $0
|
|
||||||
predef FlagPredef
|
|
||||||
pop de
|
|
||||||
ret
|
|
||||||
; 42581
|
|
||||||
|
|
||||||
GetPreEvolution: ; 42581
|
|
||||||
; Find the first mon to evolve into CurPartySpecies.
|
|
||||||
|
|
||||||
; Return carry and the new species in CurPartySpecies
|
|
||||||
; if a pre-evolution is found.
|
|
||||||
|
|
||||||
ld c, 0
|
|
||||||
.loop ; For each Pokemon...
|
|
||||||
ld hl, EvosAttacksPointers
|
|
||||||
ld b, 0
|
|
||||||
rept 2
|
|
||||||
add hl, bc
|
|
||||||
endr
|
|
||||||
ld a, [hli]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
.loop2 ; For each evolution...
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
|
|
||||||
cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
|
|
||||||
jr nz, .not_tyrogue
|
|
||||||
inc hl
|
|
||||||
|
|
||||||
.not_tyrogue
|
|
||||||
inc hl
|
|
||||||
ld a, [CurPartySpecies]
|
|
||||||
cp [hl]
|
|
||||||
jr z, .found_preevo
|
|
||||||
inc hl
|
|
||||||
ld a, [hl]
|
|
||||||
and a
|
|
||||||
jr nz, .loop2
|
|
||||||
|
|
||||||
.no_evolve
|
|
||||||
inc c
|
|
||||||
ld a, c
|
|
||||||
cp NUM_POKEMON
|
|
||||||
jr c, .loop
|
|
||||||
and a
|
|
||||||
ret
|
|
||||||
|
|
||||||
.found_preevo
|
|
||||||
inc c
|
|
||||||
ld a, c
|
|
||||||
ld [CurPartySpecies], a
|
|
||||||
scf
|
|
||||||
ret
|
|
||||||
; 425b1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "bank11", ROMX, BANK[$11]
|
SECTION "bank11", ROMX, BANK[$11]
|
||||||
|
|
||||||
@ -20888,7 +20205,7 @@ CheckPartyFullAfterContest: ; 4d9e5
|
|||||||
call GetPartyLocation
|
call GetPartyLocation
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [CurPartyLevel], a
|
ld [CurPartyLevel], a
|
||||||
call Function4db49
|
call SetCaughtData
|
||||||
ld a, [PartyCount]
|
ld a, [PartyCount]
|
||||||
dec a
|
dec a
|
||||||
ld hl, PartyMon1CaughtLocation
|
ld hl, PartyMon1CaughtLocation
|
||||||
@ -20950,7 +20267,7 @@ CheckPartyFullAfterContest: ; 4d9e5
|
|||||||
ld a, [sBoxMon1Level]
|
ld a, [sBoxMon1Level]
|
||||||
ld [CurPartyLevel], a
|
ld [CurPartyLevel], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
call Function4db83
|
call SetBoxMonCaughtData
|
||||||
ld a, BANK(sBoxMon1CaughtLocation)
|
ld a, BANK(sBoxMon1CaughtLocation)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld hl, sBoxMon1CaughtLocation
|
ld hl, sBoxMon1CaughtLocation
|
||||||
@ -20987,12 +20304,12 @@ TextJump_GiveANickname: ; 0x4db44
|
|||||||
; 0x4db49
|
; 0x4db49
|
||||||
|
|
||||||
|
|
||||||
Function4db49: ; 4db49
|
SetCaughtData: ; 4db49
|
||||||
ld a, [PartyCount]
|
ld a, [PartyCount]
|
||||||
dec a
|
dec a
|
||||||
ld hl, PartyMon1CaughtLevel
|
ld hl, PartyMon1CaughtLevel
|
||||||
call GetPartyLocation
|
call GetPartyLocation
|
||||||
Function4db53: ; 4db53
|
SetBoxmonOrEggmonCaughtData: ; 4db53
|
||||||
ld a, [TimeOfDay]
|
ld a, [TimeOfDay]
|
||||||
inc a
|
inc a
|
||||||
rrca
|
rrca
|
||||||
@ -21026,34 +20343,34 @@ Function4db53: ; 4db53
|
|||||||
ret
|
ret
|
||||||
; 4db83
|
; 4db83
|
||||||
|
|
||||||
Function4db83: ; 4db83
|
SetBoxMonCaughtData: ; 4db83
|
||||||
ld a, BANK(sBoxMon1CaughtLevel)
|
ld a, BANK(sBoxMon1CaughtLevel)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld hl, sBoxMon1CaughtLevel
|
ld hl, sBoxMon1CaughtLevel
|
||||||
call Function4db53
|
call SetBoxmonOrEggmonCaughtData
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
ret
|
ret
|
||||||
; 4db92
|
; 4db92
|
||||||
|
|
||||||
SetBoxMonCaughtData: ; 4db92
|
SetGiftBoxMonCaughtData: ; 4db92
|
||||||
push bc
|
push bc
|
||||||
ld a, BANK(sBoxMon1CaughtLevel)
|
ld a, BANK(sBoxMon1CaughtLevel)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld hl, sBoxMon1CaughtLevel
|
ld hl, sBoxMon1CaughtLevel
|
||||||
pop bc
|
pop bc
|
||||||
call SetPkmnCaughtData
|
call SetGiftMonCaughtData
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
ret
|
ret
|
||||||
; 4dba3
|
; 4dba3
|
||||||
|
|
||||||
SetPartymonCaughtData: ; 4dba3
|
SetGiftPartyMonCaughtData: ; 4dba3
|
||||||
ld a, [PartyCount]
|
ld a, [PartyCount]
|
||||||
dec a
|
dec a
|
||||||
ld hl, PartyMon1CaughtLevel
|
ld hl, PartyMon1CaughtLevel
|
||||||
push bc
|
push bc
|
||||||
call GetPartyLocation
|
call GetPartyLocation
|
||||||
pop bc
|
pop bc
|
||||||
SetPkmnCaughtData: ; 4dbaf
|
SetGiftMonCaughtData: ; 4dbaf
|
||||||
xor a
|
xor a
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld a, $7e
|
ld a, $7e
|
||||||
@ -21064,7 +20381,7 @@ SetPkmnCaughtData: ; 4dbaf
|
|||||||
; 4dbb8
|
; 4dbb8
|
||||||
|
|
||||||
|
|
||||||
Function4dbb8: ; 4dbb8 (13:5bb8)
|
SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
|
||||||
ld a, [CurPartyMon]
|
ld a, [CurPartyMon]
|
||||||
ld hl, PartyMon1CaughtLevel
|
ld hl, PartyMon1CaughtLevel
|
||||||
call GetPartyLocation
|
call GetPartyLocation
|
||||||
@ -21072,7 +20389,7 @@ Function4dbb8: ; 4dbb8 (13:5bb8)
|
|||||||
push af
|
push af
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [CurPartyLevel], a
|
ld [CurPartyLevel], a
|
||||||
call Function4db53
|
call SetBoxmonOrEggmonCaughtData
|
||||||
pop af
|
pop af
|
||||||
ld [CurPartyLevel], a
|
ld [CurPartyLevel], a
|
||||||
ret
|
ret
|
||||||
@ -34954,7 +34271,7 @@ PlaySlowCry: ; fb841
|
|||||||
ret
|
ret
|
||||||
; fb877
|
; fb877
|
||||||
|
|
||||||
Functionfb877: ; fb877
|
NewPokedexEntry: ; fb877
|
||||||
ld a, [hMapAnims]
|
ld a, [hMapAnims]
|
||||||
push af
|
push af
|
||||||
xor a
|
xor a
|
||||||
@ -35300,22 +34617,22 @@ Pokered_MonIndices: ; fb91c
|
|||||||
; fba18
|
; fba18
|
||||||
|
|
||||||
|
|
||||||
Functionfba18: ; fba18
|
UpdateUnownDex: ; fba18
|
||||||
ld a, [UnownLetter]
|
ld a, [UnownLetter]
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, 26
|
ld b, 26
|
||||||
ld hl, UnownDex
|
ld hl, UnownDex
|
||||||
.asm_fba21
|
.loop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_fba2b
|
jr z, .done
|
||||||
cp c
|
cp c
|
||||||
ret z
|
ret z
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_fba21
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_fba2b
|
.done
|
||||||
dec hl
|
dec hl
|
||||||
ld [hl], c
|
ld [hl], c
|
||||||
ret
|
ret
|
||||||
@ -35324,8 +34641,8 @@ Functionfba18: ; fba18
|
|||||||
|
|
||||||
Functionfba2e: ; fba2e (3e:7a2e)
|
Functionfba2e: ; fba2e (3e:7a2e)
|
||||||
hlcoord 4, 15
|
hlcoord 4, 15
|
||||||
ld bc, $c
|
ld bc, 12
|
||||||
ld a, $7f
|
ld a, " "
|
||||||
call ByteFill
|
call ByteFill
|
||||||
ld a, [wc7dd]
|
ld a, [wc7dd]
|
||||||
ld e, a
|
ld e, a
|
||||||
@ -35650,7 +34967,7 @@ Functionfcc63: ; fcc63
|
|||||||
jr c, .asm_fcd1c
|
jr c, .asm_fcd1c
|
||||||
ld b, 1
|
ld b, 1
|
||||||
.asm_fcd1c
|
.asm_fcd1c
|
||||||
callba SetPartymonCaughtData
|
callba SetGiftPartyMonCaughtData
|
||||||
|
|
||||||
ld e, TRADE_NICK
|
ld e, TRADE_NICK
|
||||||
call GetTradeAttribute
|
call GetTradeAttribute
|
||||||
|
@ -6465,7 +6465,7 @@ Function102b32: ; 102b32
|
|||||||
ld [CurPartyMon], a
|
ld [CurPartyMon], a
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [wd1e9], a
|
ld [wd1e9], a
|
||||||
callba Function421d8
|
callba EvolvePokemon
|
||||||
call Function102d9a
|
call Function102d9a
|
||||||
call Function102dd3
|
call Function102dd3
|
||||||
call Function102dec
|
call Function102dec
|
||||||
@ -6769,7 +6769,7 @@ Function102d48: ; 102d48
|
|||||||
ld hl, PartyMon1DVs
|
ld hl, PartyMon1DVs
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
predef GetUnownLetter
|
predef GetUnownLetter
|
||||||
callba Functionfba18
|
callba UpdateUnownDex
|
||||||
ld a, [wdef4]
|
ld a, [wdef4]
|
||||||
and a
|
and a
|
||||||
jr nz, .asm_102d98
|
jr nz, .asm_102d98
|
||||||
|
@ -7676,7 +7676,7 @@ Function11b7e5: ; 11b7e5
|
|||||||
ld [wd1e9], a
|
ld [wd1e9], a
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ld [wLinkMode], a
|
ld [wLinkMode], a
|
||||||
callba Function421d8
|
callba EvolvePokemon
|
||||||
xor a
|
xor a
|
||||||
ld [wLinkMode], a
|
ld [wLinkMode], a
|
||||||
callba Function14a58
|
callba Function14a58
|
||||||
|
@ -303,7 +303,7 @@ Function17d0f3: ; 17d0f3
|
|||||||
ld [wd1e9], a
|
ld [wd1e9], a
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ld [wLinkMode], a
|
ld [wLinkMode], a
|
||||||
callba Function421d8
|
callba EvolvePokemon
|
||||||
xor a
|
xor a
|
||||||
ld [wLinkMode], a
|
ld [wLinkMode], a
|
||||||
callba Function14a58
|
callba Function14a58
|
||||||
@ -415,7 +415,7 @@ Function17d1f1: ; 17d1f1
|
|||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
predef GetUnownLetter
|
predef GetUnownLetter
|
||||||
callab Functionfba18
|
callab UpdateUnownDex
|
||||||
ld a, [wdef4]
|
ld a, [wdef4]
|
||||||
and a
|
and a
|
||||||
jr nz, .asm_17d223
|
jr nz, .asm_17d223
|
||||||
@ -2362,7 +2362,7 @@ Function17ded9: ; 17ded9
|
|||||||
push hl
|
push hl
|
||||||
push bc
|
push bc
|
||||||
predef TryAddMonToParty
|
predef TryAddMonToParty
|
||||||
callba Function4db49
|
callba SetCaughtData
|
||||||
pop bc
|
pop bc
|
||||||
pop hl
|
pop hl
|
||||||
bit 1, b
|
bit 1, b
|
||||||
@ -2400,7 +2400,7 @@ Function17ded9: ; 17ded9
|
|||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld b, a
|
ld b, a
|
||||||
push hl
|
push hl
|
||||||
callba SetPartymonCaughtData
|
callba SetGiftPartyMonCaughtData
|
||||||
pop hl
|
pop hl
|
||||||
pop bc
|
pop bc
|
||||||
jr .asm_17df5e
|
jr .asm_17df5e
|
||||||
@ -2558,7 +2558,7 @@ Function17e026: ; 17e026
|
|||||||
push hl
|
push hl
|
||||||
callba LoadEnemyMon
|
callba LoadEnemyMon
|
||||||
callba SentPkmnIntoBox
|
callba SentPkmnIntoBox
|
||||||
callba Function4db83
|
callba SetBoxMonCaughtData
|
||||||
pop hl
|
pop hl
|
||||||
pop bc
|
pop bc
|
||||||
ld a, BANK(sBoxMonNicknames)
|
ld a, BANK(sBoxMonNicknames)
|
||||||
@ -2587,7 +2587,7 @@ Function17e026: ; 17e026
|
|||||||
ld b, a
|
ld b, a
|
||||||
push hl
|
push hl
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
callba SetBoxMonCaughtData
|
callba SetGiftBoxMonCaughtData
|
||||||
ld a, $1
|
ld a, $1
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
pop hl
|
pop hl
|
||||||
|
Loading…
Reference in New Issue
Block a user