summaryrefslogtreecommitdiff
path: root/engine/gfx/sprite_anims.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2018-04-04 23:56:40 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2018-04-04 23:56:40 -0400
commit81306889e33c599f8015bc4e653929bb7de00967 (patch)
tree7a812968ba565a13ef400cdcb5230e6e8185a1ec /engine/gfx/sprite_anims.asm
parent145efc13535fbc9d8ab2786d29209d97aebf0481 (diff)
parentf750d4f4185529cfb440ac7825d202ebcf160766 (diff)
Merge branch 'master' of https://github.com/pret/pokecrystal
Diffstat (limited to 'engine/gfx/sprite_anims.asm')
-rw-r--r--engine/gfx/sprite_anims.asm889
1 files changed, 889 insertions, 0 deletions
diff --git a/engine/gfx/sprite_anims.asm b/engine/gfx/sprite_anims.asm
new file mode 100644
index 000000000..9353b71c9
--- /dev/null
+++ b/engine/gfx/sprite_anims.asm
@@ -0,0 +1,889 @@
+DoAnimFrame: ; 8d24b
+ ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 8d25b
+
+.Jumptable: ; 8d25b (23:525b)
+; entries correspond to SPRITE_ANIM_SEQ_* constants
+ dw .Null
+ dw .PartyMon
+ dw .PartyMonSwitch
+ dw .PartyMonSelected
+ dw .GSTitleTrail
+ dw .NamingScreenCursor
+ dw .GameFreakLogo
+ dw .GSIntroStar
+ dw .GSIntroSparkle
+ dw .SlotsGolem
+ dw .SlotsChansey
+ dw .SlotsChanseyEgg
+ dw .MailCursor
+ dw .UnusedCursor
+ dw .DummyGameCursor
+ dw .PokegearArrow
+ dw .TradePokeBall
+ dw .TradeTubeBulge
+ dw .TrademonInTube
+ dw .RevealNewMon
+ dw .RadioTuningKnob
+ dw .CutLeaves
+ dw .FlyFrom
+ dw .FlyLeaf
+ dw .FlyTo
+ dw .GSIntroHoOh
+ dw .EZChatCursor
+ dw .MobileTradeSentPulse
+ dw .MobileTradeOTPulse
+ dw .IntroSuicune
+ dw .IntroPichuWooper
+ dw .Celebi
+ dw .IntroUnown
+ dw .IntroUnownF
+ dw .IntroSuicuneAway
+
+.Null: ; 8d2a1 (23:52a1)
+ ret
+
+.PartyMon ; 8d2a2 (23:52a2)
+ ld a, [wMenuCursorY]
+
+ ld hl, SPRITEANIMSTRUCT_INDEX
+ add hl, bc
+ cp [hl]
+ jr z, .PartyMonSwitch
+
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], 8 * 2
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.PartyMonSwitch ; 8d2b9 (23:52b9)
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], 8 * 3
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ inc [hl]
+ and $f
+ ret nz
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld e, [hl]
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, d
+ and $10 ; bit 4
+ jr z, .load_zero
+ ld a, e
+ and a
+ jr z, .load_minus_two
+ cp $1
+ jr z, .load_minus_one
+.load_zero
+ xor a
+ ld [hl], a
+ ret
+
+.load_minus_one
+ ld a, -1
+ ld [hl], a
+ ret
+
+.load_minus_two
+ ld a, -2
+ ld [hl], a
+ ret
+
+.PartyMonSelected ; 8d2ea (23:52ea)
+ ld a, [wMenuCursorY]
+
+ ld hl, SPRITEANIMSTRUCT_INDEX
+ add hl, bc
+ cp [hl]
+ jr z, .three_offset_right
+
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], 8 * 2
+ ret
+
+.three_offset_right
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], 8 * 3
+ ret
+
+.GSTitleTrail ; 8d302 (23:5302)
+ call .AnonymousJumptable
+ jp hl
+; 8d306 (23:5306)
+
+; Anonymous dw (see .AnonymousJumptable)
+ dw .four_zero
+ dw .four_one
+; 8d30a
+
+.four_zero ; 8d30a
+ call .IncrementJumptableIndex
+
+ ld hl, SPRITEANIMSTRUCT_INDEX
+ add hl, bc
+ ld a, [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ and $3
+ ld [hl], a
+ inc [hl]
+ swap a
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], a
+
+.four_one ; 8d321
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $a4
+ jr nc, .asm_8d356
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ add $4
+
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ sla a
+ sla a
+ ld d, $2
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ add $3
+ ld [hl], a
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_8d356
+ call DeinitializeSprite
+ ret
+; 8d35a
+
+.GSIntroHoOh ; 8d35a (23:535a)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ ld d, $2
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.NamingScreenCursor ; 8d36c (23:536c)
+ callfar NamingScreen_AnimateCursor
+ ret
+
+.MailCursor ; 8d373 (23:5373)
+ callfar ComposeMail_AnimateCursor
+ ret
+
+.GameFreakLogo: ; 8d37a (23:537a)
+ callfar GameFreakLogoJumper
+ ret
+
+.GSIntroStar ; 8d381 (23:5381)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8d3ba
+ dec [hl]
+ dec [hl]
+ ld d, a
+ and $1f
+ jr nz, .asm_8d395
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ dec [hl]
+.asm_8d395
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+.asm_8d3ba
+ ld a, $1
+ ld [wcf64], a
+ call DeinitializeSprite
+ ret
+
+.GSIntroSparkle ; 8d3c3 (23:53c3)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_8d41e
+
+ ld hl, SPRITEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, -$10
+ add hl, de
+ ld e, l
+ ld d, h
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld a, [hl]
+ xor $20
+ ld [hl], a
+ ret
+
+.asm_8d41e
+ call DeinitializeSprite
+ ret
+
+.SlotsGolem: ; 8d422 (23:5422)
+ callfar Slots_AnimateGolem
+ ret
+
+.SlotsChansey: ; 8d429 (23:5429)
+ callfar Slots_AnimateChansey
+ ld hl, wcf64
+ ld a, [hl]
+ cp $2
+ ret nz
+ ld [hl], $3
+ ld a, SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
+ call _ReinitSpriteAnimFrame
+ ret
+
+.SlotsChanseyEgg: ; 8d43e (23:543e)
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld e, a
+ and $1
+ jr z, .move_vertical
+
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp 15 * 8
+ jr c, .move_right
+ call DeinitializeSprite
+ ld a, $4
+ ld [wcf64], a
+ ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
+ call PlaySFX
+ ret
+
+.move_right
+ inc [hl]
+.move_vertical
+ ld a, e
+ ld d, $20
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.UnusedCursor ; 8d46e (23:546e)
+ callfar ret_e00ed
+ ret
+
+.PokegearArrow ; 8d475 (23:5475)
+ callfar AnimatePokegearModeIndicatorArrow
+ ret
+
+.DummyGameCursor ; 8d47c (23:547c)
+ callfar DummyGame_InterpretJoypad_AnimateCursor
+ ret
+
+.TradePokeBall ; 8d483 (23:5483)
+ call .AnonymousJumptable
+ jp hl
+; 8d487 (23:5487)
+
+; Anonymous dw (see .AnonymousJumptable)
+ dw .TradePokeBall_zero
+ dw .TradePokeBall_one
+ dw .TradePokeBall_two
+ dw .TradePokeBall_three
+ dw .TradePokeBall_four
+ dw .TradePokeBall_five
+; 8d493
+
+.TradePokeBall_zero ; 8d493
+ ld a, SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_WOBBLE
+ call _ReinitSpriteAnimFrame
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld [hl], $2
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $20
+ ret
+; 8d4a5
+
+.TradePokeBall_two ; 8d4a5
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8d4af
+ dec [hl]
+ ret
+
+.asm_8d4af
+ call .IncrementJumptableIndex
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $40
+
+.TradePokeBall_three ; 8d4b8
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_8d4cd
+ dec [hl]
+ ld d, $28
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_8d4cd
+ ld de, SFX_GOT_SAFARI_BALLS
+ call PlaySFX
+ jr .TradePokeBall_five
+; 8d4d5
+
+.TradePokeBall_one ; 8d4d5
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld [hl], $4
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $30
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld [hl], $24
+ ret
+; 8d4e8
+
+.TradePokeBall_four ; 8d4e8
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8d51c
+ ld d, a
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ call Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $20
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ sub $c
+ ld [hl], a
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ ret
+
+.asm_8d51c
+ xor a
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ call .IncrementJumptableIndex
+ ret
+
+.TradePokeBall_five ; 8d526
+ call DeinitializeSprite
+ ret
+; 8d52a
+
+.TradeTubeBulge ; 8d52a (23:552a)
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ cp $b0
+ jr nc, .delete
+ and $3
+ ret nz
+ ld de, SFX_POKEBALLS_PLACED_ON_TABLE
+ call PlaySFX
+ ret
+
+.delete
+ call DeinitializeSprite
+ ret
+
+.TrademonInTube ; 8d543 (23:5543)
+ callfar TradeAnim_AnimateTrademonInTube
+ ret
+
+.RevealNewMon: ; 8d54a (23:554a)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .finish_EggShell
+ ld d, a
+ add $8
+ ld [hl], a
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld a, [hl]
+ xor $20
+ ld [hl], a
+
+ push af
+ push de
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+
+ pop de
+ pop af
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.finish_EggShell
+ call DeinitializeSprite
+ ret
+
+.RadioTuningKnob: ; 8d578 (23:5578)
+ callfar AnimateTuningKnob
+ ret
+
+.CutLeaves ; 8d57f (23:557f)
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $80
+ add hl, de
+ ld e, l
+ ld d, h
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ push de
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.FlyFrom: ; 8d5b0 (23:55b0)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ cp $40
+ ret c
+
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ dec [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ cp $40
+ jr nc, .skip
+ add $8
+ ld [hl], a
+.skip
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.FlyLeaf: ; 8d5e2 (23:55e2)
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp -9 * 8
+ jr nc, .delete_leaf
+ inc [hl]
+ inc [hl]
+
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+
+ ld d, $40
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.delete_leaf
+ call DeinitializeSprite
+ ret
+
+.FlyTo: ; 8d607 (23:5607)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp 10 * 8 + 4
+ ret z
+
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+ inc [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ and a
+ jr z, .asm_8d621
+ sub $2
+ ld [hl], a
+.asm_8d621
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.MobileTradeSentPulse ; 8d630 (23:5630)
+ farcall Function108bc7
+ ret
+
+.MobileTradeOTPulse ; 8d637 (23:5637)
+ farcall Function108be0
+ ret
+
+.IntroSuicune ; 8d63e (23:563e)
+ ld a, [wcf65]
+ and a
+ jr nz, .asm_8d645
+ ret
+.asm_8d645
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $0
+
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ xor $ff
+ inc a
+ ld d, $20
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld a, SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2
+ call _ReinitSpriteAnimFrame
+ ret
+
+.IntroPichuWooper ; 8d666 (23:5666)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ cp $14
+ jr nc, .asm_8d67f
+ add $2
+ ld [hl], a
+ xor $ff
+ inc a
+ ld d, $20
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+.asm_8d67f
+ ret
+
+.IntroUnown ; 8d680 (23:5680)
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld d, [hl]
+ inc [hl]
+ inc [hl]
+ inc [hl]
+
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call .Sprites_Sine
+
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call .Sprites_Cosine
+
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.IntroUnownF ; 8d6a2 (23:56a2)
+ ld a, [wcf64]
+ cp $40
+ ret nz
+ ld a, SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2
+ call _ReinitSpriteAnimFrame
+ ret
+
+.IntroSuicuneAway ; 8d6ae (23:56ae)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ add $10
+ ld [hl], a
+ ret
+
+.EZChatCursor ; 8d6b7 (23:56b7)
+ farcall AnimateEZChatCursor
+ ret
+
+.Celebi ; 8d6be (23:56be)
+ farcall UpdateCelebiPosition
+ ret
+
+.AnonymousJumptable: ; 8d6c5 (23:56c5)
+ ld hl, sp+$0
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8d6d8 (23:56d8)
+
+.IncrementJumptableIndex: ; 8d6d8
+ ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
+ add hl, bc
+ inc [hl]
+ ret
+; 8d6de
+
+.Sprites_Sine: ; 8d6de (23:56de)
+ call Sprites_Sine
+ ret
+
+.Sprites_Cosine: ; 8d6e2 (23:56e2)
+ call Sprites_Cosine
+ ret
+; 8d6e6 (23:56e6)