diff options
author | entrpntr <entrpntr@gmail.com> | 2020-05-23 00:51:50 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-05-23 00:51:50 -0400 |
commit | 3a50abc46a294ee670beddff327e7f6cf21bb61c (patch) | |
tree | 9d48232303d1419f5d31c0118ecdfc66d6050fec /engine/link | |
parent | bfddbf6b11ca4a6220b5b03d66ed1208931a59de (diff) |
Add engine/events/mom_phone.asm and engine/link/mystery_gift_3.asm.
Diffstat (limited to 'engine/link')
-rw-r--r-- | engine/link/mystery_gift_3.asm | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/engine/link/mystery_gift_3.asm b/engine/link/mystery_gift_3.asm new file mode 100644 index 00000000..b7053679 --- /dev/null +++ b/engine/link/mystery_gift_3.asm @@ -0,0 +1,190 @@ +StagePartyDataForMysteryGift: +; You will be sending this data to your mystery gift partner. +; Structure is the same as a trainer with species and moves +; defined. + ld a, BANK(sPokemonData) + call OpenSRAM + ld de, wMysteryGiftStaging + ld bc, sPokemonData + wPartyMons - wPokemonData + ld hl, sPokemonData + wPartySpecies - wPokemonData +.loop + ld a, [hli] + cp -1 + jr z, .party_end + cp EGG + jr z, .next + push hl + ; copy level + ld hl, MON_LEVEL + add hl, bc + ld a, [hl] + ld [de], a + inc de + ; copy species + ld hl, MON_SPECIES + add hl, bc + ld a, [hl] + ld [de], a + inc de + ; copy moves + ld hl, MON_MOVES + add hl, bc + push bc + ld bc, NUM_MOVES + call CopyBytes + pop bc + pop hl +.next + push hl + ld hl, PARTYMON_STRUCT_LENGTH + add hl, bc + ld b, h + ld c, l + pop hl + jr .loop +.party_end + ld a, -1 + ld [de], a + ld a, $26 + ld [wc900], a + jp CloseSRAM + +InitMysteryGiftLayout: + call ClearBGPalettes + call DisableLCD + ld hl, MysteryGiftGFX + ld de, vTiles2 tile $00 + ld a, BANK(MysteryGiftGFX) + ld bc, $20 tiles + call FarCopyBytes + farcall Function1704d + farcall Function1706b + ld hl, vTiles2 tile $3d + ld a, $ff + ld bc, 1 tiles + call ByteFill + hlcoord 0, 0 + ld a, $3d + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + call ByteFill + hlcoord 3, 7 + lb bc, 9, 15 + call ClearBox + hlcoord 0, 0 + ld a, $1e + ld [hli], a + inc a + ld [hl], a + hlcoord 0, 1 + ld a, $33 + ld [hli], a + inc a + ld [hl], a + hlcoord 3, 1 + ld a, 0 + call .Load15GFX + hlcoord 3, 2 + ld a, $f + call .Load15GFX + hlcoord 8, 0 + ld a, $20 + call .Load4GFX + hlcoord 9, 3 + ld a, $24 + call .Load3GFX + hlcoord 9, 4 + ld [hl], $27 + hlcoord 1, 2 + ld a, $2e + call .Load15Column + hlcoord 18, 5 + ld a, $2a + call .Load11Column + hlcoord 2, 5 + ld a, $28 + call .Load16Row + hlcoord 2, 16 + ld a, $2c + call .Load16Row + hlcoord 2, 5 + ld a, $35 + call .Load4GFX + hlcoord 18, 5 + ld [hl], $29 + hlcoord 18, 16 + ld [hl], $2b + hlcoord 1, 16 + ld [hl], $2d + hlcoord 2, 6 + ld a, $39 + call .Load16Row + hlcoord 2, 15 + ld a, $3b + call .Load16Row + hlcoord 2, 6 + ld a, $3c + call .Load9Column + hlcoord 17, 6 + ld a, $3a + call .Load9Column + hlcoord 2, 6 + ld [hl], $2f + hlcoord 17, 6 + ld [hl], $30 + hlcoord 2, 15 + ld [hl], $32 + hlcoord 17, 15 + ld [hl], $31 + call EnableLCD + call WaitBGMap + ld b, SCGB_MYSTERY_GIFT + call GetSGBLayout + jp SetPalettes + +.Load3GFX: + ld b, 3 + jr .gfx_loop + +.Load4GFX: + ld b, 4 + jr .gfx_loop + +.Load15GFX: + ld b, 15 + +.gfx_loop + ld [hli], a + inc a + dec b + jr nz, .gfx_loop + ret + +.Load9Column: + ld b, 9 + jr .col_loop + +.Load11Column: + ld b, 11 + jr .col_loop + +.Load15Column: + ld b, 15 + +.col_loop + ld [hl], a + ld de, SCREEN_WIDTH + add hl, de + dec b + jr nz, .col_loop + ret + +.Load16Row: + ld b, 16 +.row_loop + ld [hli], a + dec b + jr nz, .row_loop + ret + +MysteryGiftGFX: +INCBIN "gfx/mystery_gift/mystery_gift.2bpp" |