mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
(This is not expected to be their final location, but it makes them easier to relocate when necessary, and easier for users to edit until the whole project's file structure is finalized.)
280 lines
4.0 KiB
NASM
Executable File
280 lines
4.0 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
|
|
|
|
KantoMonSpecials: ; fb656
|
|
INCLUDE "data/time_capsule/special_stats.asm"
|
|
; fb6ed
|
|
|
|
|
|
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
|
|
|
|
Pokered_MonIndices: ; fb91c
|
|
INCLUDE "data/time_capsule/mon_order.asm"
|
|
; fba18
|