aboutsummaryrefslogtreecommitdiffstats
path: root/engine/mon_party_sprites.asm
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
committerdannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
commit5647ca687b92954dcf37a6ea6bfbc9a341c32de4 (patch)
treedde1937a1bfdb3a835f4155e1c2eb8f1aaf86f63 /engine/mon_party_sprites.asm
parentMerge pull request #55 from Deokishisu/patch-1 (diff)
downloadpokeyellow-5647ca687b92954dcf37a6ea6bfbc9a341c32de4.tar.gz
pokeyellow-5647ca687b92954dcf37a6ea6bfbc9a341c32de4.tar.xz
pokeyellow-5647ca687b92954dcf37a6ea6bfbc9a341c32de4.zip
Sync with pokered
Diffstat (limited to 'engine/mon_party_sprites.asm')
-rwxr-xr-xengine/mon_party_sprites.asm445
1 files changed, 0 insertions, 445 deletions
diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm
deleted file mode 100755
index 6f17f876..00000000
--- a/engine/mon_party_sprites.asm
+++ /dev/null
@@ -1,445 +0,0 @@
-AnimatePartyMon_ForceSpeed1:
- xor a
- ld [wCurrentMenuItem], a
- ld b, a
- inc a
- jr GetAnimationSpeed
-
-; wPartyMenuHPBarColors contains the party mon's health bar colors
-; 0: green
-; 1: yellow
-; 2: red
-AnimatePartyMon:
- ld hl, wPartyMenuHPBarColors
- ld a, [wCurrentMenuItem]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
-
-GetAnimationSpeed:
- ld c, a
- ld hl, PartyMonSpeeds
- add hl, bc
- ld a, [wOnSGB]
- xor $1
- add [hl]
- ld c, a
- add a
- ld b, a
- ld a, [wAnimCounter]
- and a
- jr z, .resetSprites
- cp c
- jr z, .animateSprite
-.incTimer
- inc a
- cp b
- jr nz, .skipResetTimer
- xor a ; reset timer
-.skipResetTimer
- ld [wAnimCounter], a
- jp DelayFrame
-.resetSprites
- push bc
- ld hl, wMonPartySpritesSavedOAM
- ld de, wOAMBuffer
- ld bc, $60
- call CopyData
- pop bc
- xor a
- jr .incTimer
-.animateSprite
- push bc
- ld hl, wOAMBuffer + $02 ; OAM tile id
- ld bc, $10
- ld a, [wCurrentMenuItem]
- call AddNTimes
- ld c, $40 ; amount to increase the tile id by
- ld a, [hl]
- cp $4 ; tile ID for SPRITE_BALL_M
- jr z, .editCoords
- cp $8 ; tile ID for SPRITE_HELIX
- jr nz, .editTileIDS
-; SPRITE_BALL_M and SPRITE_HELIX only shake up and down
-.editCoords
- dec hl
- dec hl ; dec hl to the OAM y coord
- ld c, $1 ; amount to increase the y coord by
-; otherwise, load a second sprite frame
-.editTileIDS
- ld b, $4
- ld de, $4
-.loop
- ld a, [hl]
- add c
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop
- pop bc
- ld a, c
- jr .incTimer
-
-; Party mon animations cycle between 2 frames.
-; The members of the PartyMonSpeeds array specify the number of V-blanks
-; that each frame lasts for green HP, yellow HP, and red HP in order.
-; On the naming screen, the yellow HP speed is always used.
-PartyMonSpeeds:
- db 5, 16, 32
-
-LoadMonPartySpriteGfx:
-; Load mon party sprite tile patterns into VRAM during V-blank.
- ld hl, MonPartySpritePointers
- ld a, $1e
-
-LoadAnimSpriteGfx:
-; Load animated sprite tile patterns into VRAM during V-blank. hl is the address
-; of an array of structures that contain arguments for CopyVideoData and a is
-; the number of structures in the array.
- ld bc, $0
-.loop
- push af
- push bc
- push hl
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call CopyVideoData
- pop hl
- pop bc
- ld a, $6
- add c
- ld c, a
- pop af
- dec a
- jr nz, .loop
- ret
-
-LoadMonPartySpriteGfxWithLCDDisabled:
-; Load mon party sprite tile patterns into VRAM immediately by disabling the
-; LCD.
- call DisableLCD
- ld hl, MonPartySpritePointers
- ld a, $1e
- ld bc, $0
-.loop
- push af
- push bc
- push hl
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- ld a, [hli]
- ld c, a
- swap c
- ld b, $0
- ld a, [hli]
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- call FarCopyData
- pop hl
- pop bc
- ld a, $6
- add c
- ld c, a
- pop af
- dec a
- jr nz, .loop
- jp EnableLCD
-
-MonPartySpritePointers:
- dw SlowbroSprite + $c0
- db $40 / $10 ; 40 bytes
- db BANK(SlowbroSprite)
- dw vSprites
-
- dw BallSprite
- db $80 / $10 ; $80 bytes
- db BANK(BallSprite)
- dw vSprites + $40
-
- dw ClefairySprite + $c0
- db $40 / $10 ; $40 bytes
- db BANK(ClefairySprite)
- dw vSprites + $c0
-
- dw BirdSprite + $c0
- db $40 / $10 ; $40 bytes
- db BANK(BirdSprite)
- dw vSprites + $100
-
- dw SeelSprite
- db $40 / $10 ; $40 bytes
- db BANK(SeelSprite)
- dw vSprites + $140
-
- dw MonPartySprites + $40
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $180
-
- dw MonPartySprites + $50
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $1a0
-
- dw MonPartySprites + $60
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $1c0
-
- dw MonPartySprites + $70
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $1e0
-
- dw MonPartySprites + $80
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $200
-
- dw MonPartySprites + $90
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $220
-
- dw MonPartySprites + $A0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $240
-
- dw MonPartySprites + $B0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $260
-
- dw PikachuSprite
- db $40 / $10 ; $40 bytes
- db BANK(PikachuSprite)
- dw vSprites + $280
-
- dw MonPartySprites + $100
- db $40 / $10 ; $40 bytes
- db BANK(MonPartySprites)
- dw vSprites + $380
-
- dw SlowbroSprite
- db $40 / $10 ; $40 bytes
- db BANK(SlowbroSprite)
- dw vSprites + $400
-
- dw BallSprite
- db $80 / $10 ; $80 bytes
- db BANK(BallSprite)
- dw vSprites + $440
-
- dw ClefairySprite
- db $40 / $10 ; $40 bytes
- db BANK(ClefairySprite)
- dw vSprites + $4c0
-
- dw BirdSprite
- db $40 / $10 ; $40 bytes
- db BANK(BirdSprite)
- dw vSprites + $500
-
- dw SeelSprite + $C0
- db $40 / $10 ; $40 bytes
- db BANK(SeelSprite)
- dw vSprites + $540
-
- dw MonPartySprites
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $580
-
- dw MonPartySprites + $10
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $5a0
-
- dw MonPartySprites + $20
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $5c0
-
- dw MonPartySprites + $30
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $5E0
-
- dw MonPartySprites + $C0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $600
-
- dw MonPartySprites + $D0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $620
-
- dw MonPartySprites + $E0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $640
-
- dw MonPartySprites + $F0
- db $10 / $10 ; $10 bytes
- db BANK(MonPartySprites)
- dw vSprites + $660
-
- dw PikachuSprite + $C0
- db $40 / $10 ; $40 bytes
- db BANK(PikachuSprite)
- dw vSprites + $680
-
- dw MonPartySprites + $140
- db $40 / $10 ; $40 bytes
- db BANK(MonPartySprites)
- dw vSprites + $780
-
-WriteMonPartySpriteOAMByPartyIndex:
-; Write OAM blocks for the party mon in [hPartyMonIndex].
- push hl
- push de
- push bc
- ld a, [hPartyMonIndex]
- cp $ff
- jr z, .asm_7191f
- ld hl, wPartySpecies
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- call GetPartyMonSpriteID
- ld [wOAMBaseTile], a
- call WriteMonPartySpriteOAM
- pop bc
- pop de
- pop hl
- ret
-
-.asm_7191f
- ld hl, wOAMBuffer
- ld de, wMonPartySpritesSavedOAM
- ld bc, $60
- call CopyData
- pop bc
- pop de
- pop hl
- ret
-
-WriteMonPartySpriteOAMBySpecies:
-; Write OAM blocks for the party sprite of the species in
-; [wMonPartySpriteSpecies].
- xor a
- ld [hPartyMonIndex], a
- ld a, [wMonPartySpriteSpecies]
- call GetPartyMonSpriteID
- ld [wOAMBaseTile], a
- jr WriteMonPartySpriteOAM
-
-UnusedPartyMonSpriteFunction:
-; This function is unused and doesn't appear to do anything useful. It looks
-; like it may have been intended to load the tile patterns and OAM data for
-; the mon party sprite associated with the species in [wcf91].
-; However, its calculations are off and it loads garbage data.
- ld a, [wcf91]
- call GetPartyMonSpriteID
- push af
- ld hl, vSprites
- call .LoadTilePatterns
- pop af
- add $5A
- ld hl, vSprites + $40
- call .LoadTilePatterns
- xor a
- ld [wMonPartySpriteSpecies], a
- jr WriteMonPartySpriteOAMBySpecies
-
-.LoadTilePatterns
- push hl
- add a
- ld c, a
- ld b, 0
- ld hl, MonPartySpritePointers
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- pop hl
- jp CopyVideoData
-
-WriteMonPartySpriteOAM:
-; Write the OAM blocks for the first animation frame into the OAM buffer and
-; make a copy at wMonPartySpritesSavedOAM.
- push af
- ld c, $10
- ld h, wOAMBuffer / $100
- ld a, [hPartyMonIndex]
- swap a
- ld l, a
- add $10
- ld b, a
- pop af
- cp SPRITE_HELIX << 2
- jr z, .helix
- call WriteSymmetricMonPartySpriteOAM
- jr .makeCopy
-.helix
- call WriteAsymmetricMonPartySpriteOAM
-; Make a copy of the OAM buffer with the first animation frame written so that
-; we can flip back to it from the second frame by copying it back.
-.makeCopy
- ld hl, wOAMBuffer
- ld de, wMonPartySpritesSavedOAM
- ld bc, $60
- jp CopyData
-
-GetPartyMonSpriteID:
- ld [wd11e], a
- predef IndexToPokedex
- ld a, [wd11e]
- ld c, a
- dec a
- srl a
- ld hl, MonPartyData
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- bit 0, c
- jr nz, .skipSwap
- swap a ; use lower nybble if pokedex num is even
-.skipSwap
- and $f0
- srl a
- srl a
- ret
-
-INCLUDE "data/mon_party_sprites.asm"
-
-MonPartySprites:
- INCBIN "gfx/mon_ow_sprites.2bpp"