diff options
author | libjet <libj3t@gmail.com> | 2020-06-06 01:56:28 +0100 |
---|---|---|
committer | libjet <libj3t@gmail.com> | 2020-06-06 01:56:28 +0100 |
commit | 29e2695d6eb6bf954ffbaa4993b23c6209cade89 (patch) | |
tree | 084473a6fa20948cf092573e0a2798a5669b7c69 /engine | |
parent | 5f43075c6d59069c929e271d36bb60381e33f606 (diff) |
Add engine/link/time_capsule.asm
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/link/time_capsule.asm | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/engine/link/time_capsule.asm b/engine/link/time_capsule.asm new file mode 100755 index 00000000..f0aa9460 --- /dev/null +++ b/engine/link/time_capsule.asm @@ -0,0 +1,138 @@ +ValidateOTTrademon:: + ld a, [wceee] + ld hl, wOTPartyMon1Species + call GetPartyLocation + push hl + ld a, [wceee] + 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, [wceee] + 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 + +Functionfb6ed:: + ld a, [wceed] + 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, [wceee] + ld hl, wOTPartyMon1HP + call GetPartyLocation + ld a, [hli] + or [hl] + jr nz, .done + scf + ret + +.done + and a + ret + +PlaceTradePartnerNamesAndParty: + hlcoord 2, 0 + ld de, wPlayerName + call PlaceString + hlcoord 2, 8 + ld de, wOTPlayerName + call PlaceString + 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" |