pokecrystal-board/engine/gfx/sprite_anims.asm

877 lines
12 KiB
NASM
Raw Normal View History

2018-06-24 07:09:41 -07:00
DoAnimFrame:
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
add hl, bc
ld e, [hl]
ld d, 0
ld hl, .Jumptable
add hl, de
2015-12-26 18:59:03 -08:00
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp hl
2018-06-24 07:09:41 -07:00
.Jumptable:
; 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
2018-01-02 09:25:13 -08:00
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 .GSIntroHoOhLugia
2018-01-02 09:25:13 -08:00
dw .EZChatCursor
dw .MobileTradeSentPulse
dw .MobileTradeOTPulse
dw .IntroSuicune
dw .IntroPichuWooper
dw .Celebi
dw .IntroUnown
dw .IntroUnownF
dw .IntroSuicuneAway
2018-06-24 07:09:41 -07:00
.Null:
ret
2018-06-24 07:09:41 -07:00
.PartyMon
2015-12-15 15:59:49 -08:00
ld a, [wMenuCursorY]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
cp [hl]
jr z, .PartyMonSwitch
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
2015-12-06 19:36:09 -08:00
ld [hl], 8 * 2
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], 0
ret
2018-06-24 07:09:41 -07:00
.PartyMonSwitch
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
2015-12-06 19:36:09 -08:00
ld [hl], 8 * 3
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
ld d, a
inc [hl]
and $f
ret nz
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld e, [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld a, d
and $10 ; bit 4
jr z, .load_zero
ld a, e
and a
2015-12-06 19:36:09 -08:00
jr z, .load_minus_two
cp $1
2015-12-06 19:36:09 -08:00
jr z, .load_minus_one
.load_zero
xor a
ld [hl], a
ret
2015-12-04 05:46:11 -08:00
2015-12-06 19:36:09 -08:00
.load_minus_one
ld a, -1
ld [hl], a
ret
2015-12-04 05:46:11 -08:00
2015-12-06 19:36:09 -08:00
.load_minus_two
ld a, -2
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.PartyMonSelected
2015-12-15 15:59:49 -08:00
ld a, [wMenuCursorY]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
cp [hl]
2015-12-06 19:36:09 -08:00
jr z, .three_offset_right
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
2015-12-06 19:36:09 -08:00
ld [hl], 8 * 2
ret
2015-12-04 05:46:11 -08:00
2015-12-06 19:36:09 -08:00
.three_offset_right
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
2015-12-06 19:36:09 -08:00
ld [hl], 8 * 3
ret
2018-06-24 07:09:41 -07:00
.GSTitleTrail
2016-05-13 22:11:01 -07:00
call .AnonymousJumptable
jp hl
2016-05-13 22:11:01 -07:00
; Anonymous dw (see .AnonymousJumptable)
dw .four_zero
dw .four_one
2018-06-24 07:09:41 -07:00
.four_zero
2016-05-13 22:11:01 -07:00
call .IncrementJumptableIndex
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
ld a, [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
and $3
ld [hl], a
inc [hl]
swap a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], a
2018-06-24 07:09:41 -07:00
.four_one
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $a4
jr nc, .asm_8d356
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
add $4
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
inc [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
sla a
sla a
ld d, $2
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
add $3
ld [hl], a
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
.asm_8d356
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
.GSIntroHoOhLugia
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
inc a
ld [hl], a
ld d, $2
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.NamingScreenCursor
2017-12-24 09:47:30 -08:00
callfar NamingScreen_AnimateCursor
ret
2018-06-24 07:09:41 -07:00
.MailCursor
2017-12-24 09:47:30 -08:00
callfar ComposeMail_AnimateCursor
ret
2018-06-24 07:09:41 -07:00
.GameFreakLogo:
callfar PlaceGameFreakLogo
ret
2018-06-24 07:09:41 -07:00
.GSIntroStar
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
and a
jr z, .asm_8d3ba
dec [hl]
2015-12-26 18:59:03 -08:00
dec [hl]
ld d, a
and $1f
jr nz, .asm_8d395
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
dec [hl]
.asm_8d395
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld a, [hl]
push af
push de
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
add [hl]
ld [hl], a
ret
2015-12-04 05:46:11 -08:00
.asm_8d3ba
ld a, 1
ld [wIntroSceneFrameCounter], a
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.GSIntroSparkle
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hli]
or [hl]
jr z, .asm_8d41e
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0F
add hl, bc
ld d, [hl]
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld a, [hl]
push af
push de
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0E
add hl, bc
ld [hl], e
inc hl
ld [hl], d
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], e
inc hl
ld [hl], d
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld a, [hl]
xor $20
ld [hl], a
ret
2015-12-04 05:46:11 -08:00
.asm_8d41e
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.SlotsGolem:
callfar Slots_AnimateGolem
ret
2018-06-24 07:09:41 -07:00
.SlotsChansey:
2017-12-24 09:47:30 -08:00
callfar Slots_AnimateChansey
ld hl, wcf64
ld a, [hl]
cp $2
ret nz
ld [hl], $3
ld a, SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
2015-12-05 12:38:25 -08:00
call _ReinitSpriteAnimFrame
ret
2018-06-24 07:09:41 -07:00
.SlotsChanseyEgg:
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld a, [hl]
dec [hl]
ld e, a
and $1
2015-12-10 19:26:31 -08:00
jr z, .move_vertical
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
2015-12-10 19:26:31 -08:00
cp 15 * 8
jr c, .move_right
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ld a, $4
ld [wcf64], a
ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
call PlaySFX
ret
2015-12-04 05:46:11 -08:00
2015-12-10 19:26:31 -08:00
.move_right
inc [hl]
2015-12-10 19:26:31 -08:00
.move_vertical
ld a, e
ld d, $20
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.UnusedCursor
2017-12-24 09:47:30 -08:00
callfar ret_e00ed
ret
2018-06-24 07:09:41 -07:00
.PokegearArrow
2017-12-24 09:47:30 -08:00
callfar AnimatePokegearModeIndicatorArrow
ret
2018-06-24 07:09:41 -07:00
.DummyGameCursor
2017-12-24 09:47:30 -08:00
callfar DummyGame_InterpretJoypad_AnimateCursor
ret
2018-06-24 07:09:41 -07:00
.TradePokeBall
2016-05-13 22:11:01 -07:00
call .AnonymousJumptable
jp hl
2016-05-13 22:11:01 -07:00
; Anonymous dw (see .AnonymousJumptable)
dw .TradePokeBall_zero
dw .TradePokeBall_one
dw .TradePokeBall_two
dw .TradePokeBall_three
dw .TradePokeBall_four
dw .TradePokeBall_five
2018-06-24 07:09:41 -07:00
.TradePokeBall_zero
2018-01-18 21:16:08 -08:00
ld a, SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_WOBBLE
2015-12-05 12:38:25 -08:00
call _ReinitSpriteAnimFrame
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld [hl], $2
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], $20
ret
2018-06-24 07:09:41 -07:00
.TradePokeBall_two
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
and a
jr z, .asm_8d4af
dec [hl]
ret
.asm_8d4af
2016-05-13 22:11:01 -07:00
call .IncrementJumptableIndex
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], $40
2018-06-24 07:09:41 -07:00
.TradePokeBall_three
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
cp $30
jr c, .asm_8d4cd
dec [hl]
ld d, $28
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
.asm_8d4cd
ld de, SFX_GOT_SAFARI_BALLS
call PlaySFX
jr .TradePokeBall_five
2018-06-24 07:09:41 -07:00
.TradePokeBall_one
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld [hl], $4
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], $30
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld [hl], $24
ret
2018-06-24 07:09:41 -07:00
.TradePokeBall_four
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
and a
jr z, .asm_8d51c
ld d, a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
call Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
inc [hl]
ld a, [hl]
and $3f
ret nz
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld [hl], $20
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
2016-05-13 22:11:01 -07:00
call .IncrementJumptableIndex
ret
2018-06-24 07:09:41 -07:00
.TradePokeBall_five
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.TradeTubeBulge
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
inc [hl]
2015-12-26 18:59:03 -08:00
inc [hl]
cp $b0
jr nc, .delete
and $3
ret nz
ld de, SFX_POKEBALLS_PLACED_ON_TABLE
call PlaySFX
ret
.delete
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.TrademonInTube
2017-12-24 09:47:30 -08:00
callfar TradeAnim_AnimateTrademonInTube
ret
2018-06-24 07:09:41 -07:00
.RevealNewMon:
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
cp $80
2015-12-18 17:07:09 -08:00
jr nc, .finish_EggShell
ld d, a
add $8
ld [hl], a
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld a, [hl]
xor $20
ld [hl], a
push af
push de
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2015-12-18 17:07:09 -08:00
.finish_EggShell
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.RadioTuningKnob:
2017-12-24 09:47:30 -08:00
callfar AnimateTuningKnob
ret
2018-06-24 07:09:41 -07:00
.CutLeaves
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld [hl], e
inc hl
ld [hl], d
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
inc [hl]
push af
push de
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.FlyFrom:
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
and a
ret z
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
inc [hl]
cp $40
ret c
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
2015-12-26 18:59:03 -08:00
dec [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, a
cp $40
2015-12-18 17:07:09 -08:00
jr nc, .skip
add $8
ld [hl], a
2015-12-18 17:07:09 -08:00
.skip
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0E
add hl, bc
ld a, [hl]
inc [hl]
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.FlyLeaf:
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
2015-12-18 17:07:09 -08:00
cp -9 * 8
jr nc, .delete_leaf
inc [hl]
2015-12-26 18:59:03 -08:00
inc [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
2015-12-04 05:46:11 -08:00
2015-12-18 17:07:09 -08:00
ld d, $40
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
inc [hl]
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2015-12-18 17:07:09 -08:00
.delete_leaf
2015-12-04 05:46:11 -08:00
call DeinitializeSprite
ret
2018-06-24 07:09:41 -07:00
.FlyTo:
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
2015-12-18 17:07:09 -08:00
cp 10 * 8 + 4
ret z
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
inc [hl]
2015-12-26 18:59:03 -08:00
inc [hl]
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0E
add hl, bc
ld a, [hl]
inc [hl]
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.MobileTradeSentPulse
2017-12-24 09:47:30 -08:00
farcall Function108bc7
ret
2018-06-24 07:09:41 -07:00
.MobileTradeOTPulse
2017-12-24 09:47:30 -08:00
farcall Function108be0
ret
2018-06-24 07:09:41 -07:00
.IntroSuicune
2019-04-19 15:55:04 -07:00
ld a, [wIntroSceneTimer]
and a
jr nz, .asm_8d645
ret
.asm_8d645
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], $0
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld a, SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2
2015-12-05 12:38:25 -08:00
call _ReinitSpriteAnimFrame
ret
2018-06-24 07:09:41 -07:00
.IntroPichuWooper
2015-12-04 05:46:11 -08:00
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
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
.asm_8d67f
ret
2018-06-24 07:09:41 -07:00
.IntroUnown
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld d, [hl]
inc [hl]
inc [hl]
inc [hl]
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
push af
push de
call .Sprites_Sine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call .Sprites_Cosine
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.IntroUnownF
ld a, [wcf64]
cp $40
ret nz
ld a, SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2
2015-12-05 12:38:25 -08:00
call _ReinitSpriteAnimFrame
ret
2018-06-24 07:09:41 -07:00
.IntroSuicuneAway
2015-12-04 05:46:11 -08:00
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
add $10
ld [hl], a
ret
2018-06-24 07:09:41 -07:00
.EZChatCursor
2017-12-24 09:47:30 -08:00
farcall AnimateEZChatCursor
ret
2018-06-24 07:09:41 -07:00
.Celebi
2017-12-24 09:47:30 -08:00
farcall UpdateCelebiPosition
ret
2018-06-24 07:09:41 -07:00
.AnonymousJumptable:
ld hl, sp+0
ld e, [hl]
inc hl
ld d, [hl]
inc de
2015-12-04 05:46:11 -08:00
2016-05-13 22:11:01 -07:00
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
2018-06-24 07:09:41 -07:00
.IncrementJumptableIndex:
2016-05-13 22:11:01 -07:00
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
inc [hl]
ret
2018-06-24 07:09:41 -07:00
.Sprites_Sine:
call Sprites_Sine
ret
2018-06-24 07:09:41 -07:00
.Sprites_Cosine:
call Sprites_Cosine
ret