diff options
Diffstat (limited to 'engine/link/time_capsule.asm')
-rw-r--r-- | engine/link/time_capsule.asm | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/engine/link/time_capsule.asm b/engine/link/time_capsule.asm new file mode 100644 index 000000000..f90b7e249 --- /dev/null +++ b/engine/link/time_capsule.asm @@ -0,0 +1,147 @@ +; These functions seem to be related to backwards compatibility + +ValidateOTTrademon: ; fb57e + ld a, [wd003] + ld hl, wOTPartyMon1Species + call GetPartyLocation + push hl + ld a, [wd003] + 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, [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 [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 +; fb5dd + +Functionfb5dd: ; fb5dd + ld a, [wd002] + 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, [wd003] + ld hl, wOTPartyMon1HP + call GetPartyLocation + ld a, [hli] + or [hl] + jr nz, .done + scf + ret + +.done + and a + ret +; fb60d + +PlaceTradePartnerNamesAndParty: ; fb60d + 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: ; 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/pokemon/gen1_base_special.asm" |