mirror of https://github.com/pret/pokecrystal.git
145 lines
2.0 KiB
NASM
145 lines
2.0 KiB
NASM
; These functions seem to be related to backwards compatibility
|
|
|
|
ValidateOTTrademon:
|
|
ld a, [wCurOTTradePartyMon]
|
|
ld hl, wOTPartyMon1Species
|
|
call GetPartyLocation
|
|
push hl
|
|
ld a, [wCurOTTradePartyMon]
|
|
inc a
|
|
ld c, a
|
|
ld b, 0
|
|
ld hl, wOTPartyCount
|
|
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, wOTPartySpecies
|
|
ld a, [wCurOTTradePartyMon]
|
|
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 [wCurSpecies], a
|
|
call GetBaseData
|
|
ld hl, wLinkOTPartyMonTypes
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [wBaseType1]
|
|
cp [hl]
|
|
jr nz, .abnormal
|
|
inc hl
|
|
ld a, [wBaseType2]
|
|
cp [hl]
|
|
jr nz, .abnormal
|
|
|
|
.normal
|
|
and a
|
|
ret
|
|
|
|
.abnormal
|
|
scf
|
|
ret
|
|
|
|
CheckAnyOtherAliveMonsForTrade:
|
|
ld a, [wCurTradePartyMon]
|
|
ld d, a
|
|
ld a, [wPartyCount]
|
|
ld b, a
|
|
ld c, 0
|
|
.loop
|
|
ld a, c
|
|
cp d
|
|
jr z, .next
|
|
push bc
|
|
ld a, c
|
|
ld hl, wPartyMon1HP
|
|
call GetPartyLocation
|
|
pop bc
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr nz, .done
|
|
|
|
.next
|
|
inc c
|
|
dec b
|
|
jr nz, .loop
|
|
ld a, [wCurOTTradePartyMon]
|
|
ld hl, wOTPartyMon1HP
|
|
call GetPartyLocation
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr nz, .done
|
|
scf
|
|
ret
|
|
|
|
.done
|
|
and a
|
|
ret
|
|
|
|
PlaceTradePartnerNamesAndParty:
|
|
hlcoord 4, 0
|
|
ld de, wPlayerName
|
|
call PlaceString
|
|
ld a, $14
|
|
ld [bc], a
|
|
hlcoord 4, 8
|
|
ld de, wOTPlayerName
|
|
call PlaceString
|
|
ld a, $14
|
|
ld [bc], a
|
|
hlcoord 7, 1
|
|
ld de, wPartySpecies
|
|
call .PlaceSpeciesNames
|
|
hlcoord 7, 9
|
|
ld de, wOTPartySpecies
|
|
.PlaceSpeciesNames:
|
|
ld c, 0
|
|
.loop
|
|
ld a, [de]
|
|
cp -1
|
|
ret z
|
|
ld [wNamedObjectIndexBuffer], a
|
|
push bc
|
|
push hl
|
|
push de
|
|
push hl
|
|
ld a, c
|
|
ldh [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
|
|
|
|
INCLUDE "data/pokemon/gen1_base_special.asm"
|