mirror of https://github.com/pret/pokecrystal.git
278 lines
3.9 KiB
NASM
Executable File
278 lines
3.9 KiB
NASM
Executable File
; These functions seem to be related to backwards compatibility
|
|
|
|
ValidateOTTrademon: ; fb57e
|
|
ld a, [wd003]
|
|
ld hl, OTPartyMon1Species
|
|
call GetPartyLocation
|
|
push hl
|
|
ld a, [wd003]
|
|
inc a
|
|
ld c, a
|
|
ld b, 0
|
|
ld hl, OTPartyCount
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
cp EGG
|
|
jr z, .matching_or_egg
|
|
cp [hl]
|
|
jr nz, .abnormal
|
|
|
|
.matching_or_egg
|
|
ld b, h
|
|
ld c, l
|
|
ld hl, MON_LEVEL
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp MAX_LEVEL + 1
|
|
jr nc, .abnormal
|
|
ld a, [wLinkMode]
|
|
cp LINK_TIMECAPSULE
|
|
jr nz, .normal
|
|
ld hl, OTPartySpecies
|
|
ld a, [wd003]
|
|
ld c, a
|
|
ld b, 0
|
|
add hl, bc
|
|
ld a, [hl]
|
|
|
|
; Magnemite and Magneton's types changed
|
|
; from Electric to Electric/Steel.
|
|
cp MAGNEMITE
|
|
jr z, .normal
|
|
cp MAGNETON
|
|
jr z, .normal
|
|
|
|
ld [CurSpecies], a
|
|
call GetBaseData
|
|
ld hl, wLinkOTPartyMonTypes
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [BaseType1]
|
|
cp [hl]
|
|
jr nz, .abnormal
|
|
inc hl
|
|
ld a, [BaseType2]
|
|
cp [hl]
|
|
jr nz, .abnormal
|
|
|
|
.normal
|
|
and a
|
|
ret
|
|
|
|
.abnormal
|
|
scf
|
|
ret
|
|
; fb5dd
|
|
|
|
Functionfb5dd: ; fb5dd
|
|
ld a, [wd002]
|
|
ld d, a
|
|
ld a, [PartyCount]
|
|
ld b, a
|
|
ld c, $0
|
|
.loop
|
|
ld a, c
|
|
cp d
|
|
jr z, .next
|
|
push bc
|
|
ld a, c
|
|
ld hl, PartyMon1HP
|
|
call GetPartyLocation
|
|
pop bc
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr nz, .done
|
|
|
|
.next
|
|
inc c
|
|
dec b
|
|
jr nz, .loop
|
|
ld a, [wd003]
|
|
ld hl, OTPartyMon1HP
|
|
call GetPartyLocation
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr nz, .done
|
|
scf
|
|
ret
|
|
|
|
.done
|
|
and a
|
|
ret
|
|
; fb60d
|
|
|
|
PlaceTradePartnerNamesAndParty: ; fb60d
|
|
hlcoord 4, 0
|
|
ld de, PlayerName
|
|
call PlaceString
|
|
ld a, $14
|
|
ld [bc], a
|
|
hlcoord 4, 8
|
|
ld de, OTPlayerName
|
|
call PlaceString
|
|
ld a, $14
|
|
ld [bc], a
|
|
hlcoord 7, 1
|
|
ld de, PartySpecies
|
|
call .PlaceSpeciesNames
|
|
hlcoord 7, 9
|
|
ld de, OTPartySpecies
|
|
.PlaceSpeciesNames: ; fb634
|
|
ld c, $0
|
|
.loop
|
|
ld a, [de]
|
|
cp -1
|
|
ret z
|
|
ld [wd265], a
|
|
push bc
|
|
push hl
|
|
push de
|
|
push hl
|
|
ld a, c
|
|
ld [hProduct], a
|
|
call GetPokemonName
|
|
pop hl
|
|
call PlaceString
|
|
pop de
|
|
inc de
|
|
pop hl
|
|
ld bc, SCREEN_WIDTH
|
|
add hl, bc
|
|
pop bc
|
|
inc c
|
|
jr .loop
|
|
; fb656
|
|
|
|
|
|
INCLUDE "data/time_capsule/special_stats.asm"
|
|
|
|
|
|
INCLUDE "event/name_rater.asm"
|
|
|
|
|
|
PlaySlowCry: ; fb841
|
|
ld a, [ScriptVar]
|
|
call LoadCryHeader
|
|
jr c, .done
|
|
|
|
ld hl, CryPitch
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld bc, -$140
|
|
add hl, bc
|
|
ld a, l
|
|
ld [CryPitch], a
|
|
ld a, h
|
|
ld [CryPitch + 1], a
|
|
ld hl, CryLength
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld bc, $60
|
|
add hl, bc
|
|
ld a, l
|
|
ld [CryLength], a
|
|
ld a, h
|
|
ld [CryLength + 1], a
|
|
callba _PlayCryHeader
|
|
call WaitSFX
|
|
|
|
.done
|
|
ret
|
|
; fb877
|
|
|
|
NewPokedexEntry: ; fb877
|
|
ld a, [hMapAnims]
|
|
push af
|
|
xor a
|
|
ld [hMapAnims], a
|
|
call LowVolume
|
|
call ClearBGPalettes
|
|
call ClearTileMap
|
|
call UpdateSprites
|
|
call ClearSprites
|
|
ld a, [wPokedexStatus]
|
|
push af
|
|
ld a, [hSCX]
|
|
add $5
|
|
ld [hSCX], a
|
|
xor a
|
|
ld [wPokedexStatus], a
|
|
callba _NewPokedexEntry
|
|
call WaitPressAorB_BlinkCursor
|
|
ld a, $1
|
|
ld [wPokedexStatus], a
|
|
callba DisplayDexEntry
|
|
call WaitPressAorB_BlinkCursor
|
|
pop af
|
|
ld [wPokedexStatus], a
|
|
call MaxVolume
|
|
call RotateThreePalettesRight
|
|
ld a, [hSCX]
|
|
add -5 ; 251 ; NUM_POKEMON
|
|
ld [hSCX], a
|
|
call .ReturnFromDexRegistration
|
|
pop af
|
|
ld [hMapAnims], a
|
|
ret
|
|
; fb8c8
|
|
|
|
.ReturnFromDexRegistration: ; fb8c8
|
|
call ClearTileMap
|
|
call LoadFontsExtra
|
|
call LoadStandardFont
|
|
callba Pokedex_PlaceFrontpicTopLeftCorner
|
|
call WaitBGMap2
|
|
callba GetEnemyMonDVs
|
|
ld a, [hli]
|
|
ld [TempMonDVs], a
|
|
ld a, [hl]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
call SetPalettes
|
|
ret
|
|
; fb8f1
|
|
|
|
ConvertMon_2to1: ; fb8f1
|
|
; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
|
|
push bc
|
|
push hl
|
|
ld a, [wd265]
|
|
ld b, a
|
|
ld c, 0
|
|
ld hl, Pokered_MonIndices
|
|
.loop
|
|
inc c
|
|
ld a, [hli]
|
|
cp b
|
|
jr nz, .loop
|
|
ld a, c
|
|
ld [wd265], a
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
; fb908
|
|
|
|
ConvertMon_1to2: ; fb908
|
|
; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
|
|
push bc
|
|
push hl
|
|
ld a, [wd265]
|
|
dec a
|
|
ld hl, Pokered_MonIndices
|
|
ld b, 0
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wd265], a
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
; fb91c
|
|
|
|
|
|
INCLUDE "data/time_capsule/mon_order.asm"
|