pokecrystal/engine/battle_anims/functions.asm

4166 lines
66 KiB
NASM
Executable File

DoBattleAnimFrame: ; ccfbe
ld hl, BATTLEANIMSTRUCT_FUNCTION
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
; ccfce
.Jumptable:
; entries correspond to BATTLEANIMFUNC_* constants
dw BattleAnimFunction_Null ; 00
dw BattleAnimFunction_01 ; 01
dw BattleAnimFunction_02 ; 02
dw BattleAnimFunction_03 ; 03
dw BattleAnimFunction_04 ; 04
dw BattleAnimFunction_ThrowFromPlayerToEnemy ; 05
dw BattleAnimFunction_ThrowFromPlayerToEnemyAndDisappear ; 06
dw BattleAnimFunction_07 ; 07
dw BattleAnimFunction_08 ; 08
dw BattleAnimFunction_09 ; 09
dw BattleAnimFunction_0A ; 0a
dw BattleAnimFunction_RazorLeaf ; 0b
dw BattleAnimFunction_0C ; 0c
dw BattleAnimFunction_0D ; 0d
dw BattleAnimFunction_0E ; 0e
dw BattleAnimFunction_0F ; 0f
dw BattleAnimFunction_10 ; 10
dw BattleAnimFunction_11 ; 11
dw BattleAnimFunction_PokeBall ; 12
dw BattleAnimFunction_PokeBallBlocked ; 13
dw BattleAnimFunction_14 ; 14
dw BattleAnimFunction_15 ; 15
dw BattleAnimFunction_16 ; 16
dw BattleAnimFunction_17 ; 17
dw BattleAnimFunction_18 ; 18
dw BattleAnimFunction_19 ; 19
dw BattleAnimFunction_1A ; 1a
dw BattleAnimFunction_1B ; 1b
dw BattleAnimFunction_1C ; 1c
dw BattleAnimFunction_1D ; 1d
dw BattleAnimFunction_1E ; 1e
dw BattleAnimFunction_1F ; 1f
dw BattleAnimFunction_LeechSeed ; 20
dw BattleAnimFunction_21 ; 21
dw BattleAnimFunction_22 ; 22
dw BattleAnimFunction_23 ; 23
dw BattleAnimFunction_24 ; 24
dw BattleAnimFunction_25 ; 25
dw BattleAnimFunction_26 ; 26
dw BattleAnimFunction_27 ; 27
dw BattleAnimFunction_28 ; 28
dw BattleAnimFunction_SpiralDescent ; 29
dw BattleAnimFunction_PoisonGas ; 2a
dw BattleAnimFunction_Horn ; 2b
dw BattleAnimFunction_2C ; 2c
dw BattleAnimFunction_2D ; 2d
dw BattleAnimFunction_2E ; 2e
dw BattleAnimFunction_2F ; 2f
dw BattleAnimFunction_30 ; 30
dw BattleAnimFunction_31 ; 31
dw BattleAnimFunction_32 ; 32
dw BattleAnimFunction_33 ; 33
dw BattleAnimFunction_34 ; 34
dw BattleAnimFunction_35 ; 35
dw BattleAnimFunction_36 ; 36
dw BattleAnimFunction_37 ; 37
dw BattleAnimFunction_38 ; 38
dw BattleAnimFunction_39 ; 39
dw BattleAnimFunction_3A ; 3a
dw BattleAnimFunction_3B ; 3b
dw BattleAnimFunction_3C ; 3c
dw BattleAnimFunction_3D ; 3d
dw BattleAnimFunction_3E ; 3e
dw BattleAnimFunction_3F ; 3f
dw BattleAnimFunction_40 ; 40
dw BattleAnimFunction_41 ; 41
dw BattleAnimFunction_42 ; 42
dw BattleAnimFunction_43 ; 43
dw BattleAnimFunction_44 ; 44
dw BattleAnimFunction_45 ; 45
dw BattleAnimFunction_46 ; 46
dw BattleAnimFunction_47 ; 47
dw BattleAnimFunction_48 ; 48
dw BattleAnimFunction_49 ; 49
dw BattleAnimFunction_4A ; 4a
dw BattleAnimFunction_4B ; 4b
dw BattleAnimFunction_4C ; 4c
dw BattleAnimFunction_4D ; 4d
dw BattleAnimFunction_4E ; 4e
dw BattleAnimFunction_4F ; 4f
BattleAnimFunction_Null: ; cd06e (33:506e)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
.one
call DeinitBattleAnimation
.zero
ret
BattleAnimFunction_ThrowFromPlayerToEnemyAndDisappear: ; cd079 (33:5079)
call BattleAnimFunction_ThrowFromPlayerToEnemy
ret c
call DeinitBattleAnimation
ret
BattleAnimFunction_ThrowFromPlayerToEnemy: ; cd081 (33:5081)
; If x coord at $88 or beyond, abort.
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
ret nc
; Move right 2 pixels
add $2
ld [hl], a
; Move down 1 pixel
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
; Decrease ??? and hold onto its previous value (argument of the sine function)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
; Get ???, which is the amplitude of the sine function
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
call BattleAnim_Sine
; Store the result in the Y offset
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
; Carry flag denotes success
scf
ret
BattleAnimFunction_04: ; cd0a6 (33:50a6)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
jr c, .asm_cd0b3
call DeinitBattleAnimation
ret
.asm_cd0b3
add $2
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
inc [hl]
inc [hl]
ld d, $10
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
sra a
sra a
sra a
sra a
ld [hl], a
ret
BattleAnimFunction_03: ; cd0e3 (33:50e3)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
.zero
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 7, [hl]
ld a, $0
jr z, .asm_cd0f9
ld a, $20
.asm_cd0f9
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $7f
ld [hl], a
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ret
BattleAnimFunction_01: ; cd12a (33:512a)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
.one
call DeinitBattleAnimation
ret
.zero
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
ret nc
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
call Functionce70a
ret
BattleAnimFunction_02: ; cd146 (33:5146)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
jr nc, .asm_cd158
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
call Functionce70a
ret
.asm_cd158
call DeinitBattleAnimation
ret
BattleAnimFunction_PokeBall: ; cd15c (33:515c)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
dw .four
dw .five
dw .six
dw .seven
dw .eight
dw .nine
dw .ten
dw .eleven
.zero ; init
call GetBallAnimPal
call BattleAnim_IncAnonJumptableIndex
ret
.one
call BattleAnimFunction_ThrowFromPlayerToEnemy
ret c
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
add [hl]
ld [hl], a
ld a, BATTLEANIMFRAMESET_0B
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ret
.three
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_09
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $0
inc hl
ld [hl], $10
.four
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hli]
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec a
ld [hl], a
and $1f
ret nz
ld [hl], a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
sub $4
ld [hl], a
ret nz
ld a, BATTLEANIMFRAMESET_0C
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ret
.six
ld a, BATTLEANIMFRAMESET_0D
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
dec [hl]
.two
.five
.nine
ret
.seven
call GetBallAnimPal
ld a, BATTLEANIMFRAMESET_0A
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $20
.eight
.ten
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hli]
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec a
ld [hl], a
and $1f
jr z, .eleven
and $f
ret nz
call BattleAnim_IncAnonJumptableIndex
ret
.eleven
call DeinitBattleAnimation
ret
BattleAnimFunction_PokeBallBlocked: ; cd212 (33:5212)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
.zero
call GetBallAnimPal
call BattleAnim_IncAnonJumptableIndex
ret
.one
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $70
jr nc, .next
call BattleAnimFunction_ThrowFromPlayerToEnemy
ret
.next
call BattleAnim_IncAnonJumptableIndex
.two
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp $80
jr nc, .done
add $4
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
dec [hl]
dec [hl]
ret
.done
call DeinitBattleAnimation
ret
GetBallAnimPal: ; cd249 (33:5249)
ld hl, BallColors
ld a, [rSVBK]
push af
ld a, BANK(wCurItem)
ld [rSVBK], a
ld a, [wCurItem]
ld e, a
pop af
ld [rSVBK], a
.IsInArray:
ld a, [hli]
cp -1
jr z, .load
cp e
jr z, .load
inc hl
jr .IsInArray
.load
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_PALETTE
add hl, bc
ld [hl], a
ret
; cd26c (33:526c)
INCLUDE "data/battle_anims/ball_colors.asm"
BattleAnimFunction_10: ; cd284 (33:5284)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
dw .four
.zero
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
swap a
and $f
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
ret
.one
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
ret nc
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
call Functionce70a
ret
.two
call DeinitBattleAnimation
ret
.three
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_0F
call ReinitBattleAnimFrameset
.four
ret
BattleAnimFunction_07: ; cd2be (33:52be)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
.zero
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $30
inc hl
ld [hl], $48
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hli]
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $3f
ret nz
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $20
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
sub [hl]
jr z, .done
jr c, .done
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
ret
.done
call DeinitBattleAnimation
ret
BattleAnimFunction_08: ; cd306 (33:5306)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
.zero
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $80
jr nc, .next
call .SetCoords
ret
.next
call BattleAnim_IncAnonJumptableIndex
.one
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $0
.two
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $40
jr nc, .loop_back
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $18
call BattleAnim_Cosine
sub $18
sra a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $18
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
add [hl]
ld [hl], a
ret
.loop_back
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f0
jr z, .finish
sub $10
ld d, a
ld a, [hl]
and $f
or d
ld [hl], a
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
dec [hl]
ret
.finish
call BattleAnim_IncAnonJumptableIndex
.three
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $b0
jr c, .retain
call DeinitBattleAnimation
ret
.retain
call .SetCoords
ret
.SetCoords:
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
add [hl]
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld e, a
srl e
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
.loop
dec [hl]
dec e
jr nz, .loop
ret
BattleAnimFunction_09: ; cd3ae (33:53ae)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
.zero
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $0
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .done_one
dec [hl]
ret
.done_one
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
swap a
and $f
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
ret
.two
call DeinitBattleAnimation
ret
BattleAnimFunction_0A: ; cd3f2 (33:53f2)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
dw .four
dw .five
dw .six
dw .seven
dw .eight
dw .nine
.zero
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
cp $7
jr z, .seven
ld a, BATTLEANIMFRAMESET_11
call ReinitBattleAnimFrameset
ret
.seven
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
jr nc, .set_up_eight
add $2
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ret
.set_up_eight
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_10
call ReinitBattleAnimFrameset
.eight
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $10
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ret
.nine
call DeinitBattleAnimation
ret
.one
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
dec [hl]
ret
.four
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
inc [hl]
.two
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
dec [hl]
ret
.five
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
inc [hl]
.three
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
inc [hl]
.six
ret
BattleAnimFunction_RazorLeaf: ; cd478 (33:5478)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
dw .four
dw .five
dw .six
dw .seven
dw .eight
.zero
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $40
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $30
jr nc, .sine_cosine
call BattleAnim_IncAnonJumptableIndex
xor a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hli], a
ld [hl], a
ld a, BATTLEANIMFRAMESET_17
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 6, [hl]
ret z
ld hl, BATTLEANIMSTRUCT_FRAME
add hl, bc
ld [hl], $5
ret
.sine_cosine
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $3f
ld d, a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
call Functioncd557
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ret
.two
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $20
jr nz, .sine_cosine_2
call DeinitBattleAnimation
ret
.sine_cosine_2
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $10
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 6, [hl]
jr nz, .decrease
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
jr .finish
.decrease
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
dec [hl]
.finish
ld de, $80
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ret
.three
ld a, BATTLEANIMFRAMESET_16
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_01
add hl, bc
res 5, [hl]
.four
.five
.six
.seven
call BattleAnim_IncAnonJumptableIndex
ret
.eight
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $c0
ret nc
ld a, $8
call Functionce70a
ret
Functioncd557: ; cd557 (33:5557)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
bit 7, a
jr nz, .negative
cp $20
jr nc, .plus_256
cp $18
jr nc, .plus_384
ld de, $200
ret
.plus_384
ld de, $180
ret
.plus_256
ld de, $100
ret
.negative
and $3f
cp $20
jr nc, .minus_256
cp $18
jr nc, .minus_384
ld de, -$200
ret
.minus_384
ld de, -$180
ret
.minus_256
ld de, -$100
ret
BattleAnimFunction_4E: ; cd58a (33:558a)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
.zero
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $40
rlca
rlca
add $19
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld [hl], a
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $40
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $30
jr nc, .sine_cosine
call DeinitBattleAnimation
ret
.sine_cosine
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $3f
ld d, a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
call Functioncd557
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ret
BattleAnimFunction_0C: ; cd5e9 (33:55e9)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
.zero
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $c
.one
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .next
dec [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
call Functionce70a
ret
.next
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $0
ld a, BATTLEANIMFRAMESET_22
call ReinitBattleAnimFrameset
.two
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $98
jr nc, .okay
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld h, [hl]
ld l, a
ld de, $60
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], d
.okay
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp $20
ret c
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f0
ld e, a
ld d, $ff
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld [hl], d
ret
BattleAnimFunction_0D: ; cd66a (33:566a)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
dw .four
.zero
call BattleAnim_IncAnonJumptableIndex
ld a, rSCY - $ff00
ld [hLCDCPointer], a
ld a, $58
ld [hLYOverrideStart], a
ld a, $5e
ld [hLYOverrideEnd], a
ret
.one
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld e, [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp e
jr nc, .asm_cd69b
call BattleAnim_IncAnonJumptableIndex
xor a
ld [hLYOverrideStart], a
ret
.asm_cd69b
dec a
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $10
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
add [hl]
sub $10
ret c
ld [hLYOverrideStart], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
inc a
and $7
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
inc [hl]
.two
ret
.three
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp $70
jr c, asm_cd6da
xor a
ld [hLCDCPointer], a
ld [hLYOverrideStart], a
ld [hLYOverrideEnd], a
.four
call DeinitBattleAnimation
ret
asm_cd6da: ; cd6da (33:56da)
inc a
inc a
ld [hl], a
sub $10
ret c
ld [hLYOverrideStart], a
ret
BattleAnimFunction_0E: ; cd6e3 (33:56e3)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd6ea
dw Functioncd6f7
Functioncd6ea: ; cd6ea (33:56ea)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, BATTLEANIMFRAMESET_24
add [hl] ; offset
call ReinitBattleAnimFrameset
Functioncd6f7: ; cd6f7 (33:56f7)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $b8
jr c, .asm_cd704
call DeinitBattleAnimation
ret
.asm_cd704
ld a, $2
call Functionce70a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
ld d, $8
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
BattleAnimFunction_0F: ; cd71a (33:571a)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd725
dw Functioncd728
dw Functioncd763
dw Functioncd776
Functioncd725: ; cd725 (33:5725)
call BattleAnim_IncAnonJumptableIndex
Functioncd728: ; cd728 (33:5728)
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp $30
jr c, .asm_cd747
ld a, $2
call Functionce70a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
ld d, $8
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
.asm_cd747
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_28
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], $0
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld [hl], $30
ld hl, BATTLEANIMSTRUCT_01
add hl, bc
ld a, [hl]
and $1
ld [hl], a
Functioncd763: ; cd763 (33:5763)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $18
jr nc, .asm_cd76e
inc [hl]
ret
.asm_cd76e
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_29
call ReinitBattleAnimFrameset
Functioncd776: ; cd776 (33:5776)
ret
BattleAnimFunction_11: ; cd777 (33:5777)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $38
jr c, .asm_cd784
call DeinitBattleAnimation
ret
.asm_cd784
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld l, [hl]
ld h, a
ld de, $80
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
xor $10
ld [hl], a
ret
BattleAnimFunction_14: ; cd7a4 (33:57a4)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd7ab
dw Functioncd7d2
Functioncd7ab: ; cd7ab (33:57ab)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f0
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
sla a
sla a
sla a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld [hl], $1
Functioncd7d2: ; cd7d2 (33:57d2)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and a
jr nz, .asm_cd7de
call DeinitBattleAnimation
ret
.asm_cd7de
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld d, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
xor $1
ld [hl], a
ret z
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
dec [hl]
ret
BattleAnimFunction_15: ; cd80c (33:580c)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd81f
dw Functioncd817
dw Functioncd81f
dw Functioncd820
Functioncd817: ; cd817 (33:5817)
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_35
call ReinitBattleAnimFrameset
Functioncd81f: ; cd81f (33:581f)
ret
Functioncd820: ; cd820 (33:5820)
call DeinitBattleAnimation
ret
BattleAnimFunction_16: ; cd824 (33:5824)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd835
dw Functioncd860
dw Functioncd88f
dw Functioncd88f
dw Functioncd88f
dw Functioncd88f
dw Functioncd893
Functioncd835: ; cd835 (33:5835)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 7, [hl]
jr nz, .asm_cd852
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $10
jr .asm_cd858
.asm_cd852
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $30
.asm_cd858
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $7f
ld [hl], a
Functioncd860: ; cd860 (33:5860)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
bit 7, a
jr nz, .load_no_inc
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
inc a
jr .reinit
.load_no_inc
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
.reinit
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $1f
ret nz
Functioncd88f: ; cd88f (33:588f)
call BattleAnim_IncAnonJumptableIndex
ret
Functioncd893: ; cd893 (33:5893)
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], $1
ret
BattleAnimFunction_17: ; cd89a (33:589a)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd8ab
dw Functioncd8cc
dw Functioncd8f5
dw Functioncd8f5
dw Functioncd8f5
dw Functioncd8f5
dw Functioncd8f9
Functioncd8ab: ; cd8ab (33:58ab)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 7, [hl]
jr nz, .asm_cd8be
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $10
jr .asm_cd8c4
.asm_cd8be
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $30
.asm_cd8c4
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $7f
ld [hl], a
Functioncd8cc: ; cd8cc (33:58cc)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
bit 7, a
jr nz, .asm_cd8e6
ld a, $3d
jr .asm_cd8e8
.asm_cd8e6
ld a, $3c
.asm_cd8e8
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
inc [hl]
ld a, [hl]
and $1f
ret nz
Functioncd8f5: ; cd8f5 (33:58f5)
call BattleAnim_IncAnonJumptableIndex
ret
Functioncd8f9: ; cd8f9 (33:58f9)
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], $1
ret
BattleAnimFunction_18: ; cd900 (33:5900)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd907
dw Functioncd913
Functioncd907: ; cd907 (33:5907)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $28
inc hl
ld [hl], $0
Functioncd913: ; cd913 (33:5913)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld d, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .asm_cd950
ld d, a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld e, [hl]
ld hl, hTransferVirtualOAM ; $ff80
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], d
ret
.asm_cd950
call DeinitBattleAnimation
ret
BattleAnimFunction_19: ; cd954 (33:5954)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncd961
dw Functioncd96a
dw Functioncd96e
dw Functioncd96a
dw Functioncd97b
Functioncd961: ; cd961 (33:5961)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld [hl], $0
Functioncd96a: ; cd96a (33:596a)
call Functioncd99a
ret
Functioncd96e: ; cd96e (33:596e)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
jr c, asm_cd988
call BattleAnim_IncAnonJumptableIndex
ret
Functioncd97b: ; cd97b (33:597b)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $b8
jr c, asm_cd988
call DeinitBattleAnimation
ret
asm_cd988: ; cd988 (33:5988)
call Functioncd99a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
inc [hl]
ld a, [hl]
and $1
ret nz
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ret
Functioncd99a: ; cd99a (33:599a)
call Functioncd9f4
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
push af
push de
call BattleAnim_Sine
sra a
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
sub $8
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and a
jr z, .asm_cd9d7
cp $c2
jr c, .asm_cd9e2
.asm_cd9d7
dec a
ld [hl], a
and $7
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
inc [hl]
ret
.asm_cd9e2
xor a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hli], a
ld [hl], a
ret
Functioncd9f4: ; cd9f4 (33:59f4)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld e, [hl]
ld d, 0
ld hl, Unknown_cda01
add hl, de
ld d, [hl]
ret
; cda01 (33:5a01)
Unknown_cda01: ; cda01
db 8, 6, 5, 4, 5, 6, 8, 12, 16
; cda0a
BattleAnimFunction_1C: ; cda0a (33:5a0a)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $30
jr nc, .asm_cda17
call DeinitBattleAnimation
ret
.asm_cda17
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld e, a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
sub e
ld [hl], a
srl e
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
.asm_cda2c
inc [hl]
dec e
jr nz, .asm_cda2c
ret
BattleAnimFunction_1F: ; cda31 (33:5a31)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncda4c
dw Functioncda3a
dw Functioncda4c
Functioncda3a: ; cda3a (33:5a3a)
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld a, [hl]
inc a
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $8
Functioncda4c: ; cda4c (33:5a4c)
ret
BattleAnimFunction_LeechSeed: ; cda4d (33:5a4d)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw .three
.zero: ; cda58 (33:5a58)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $40
ret
.one: ; cda62 (33:5a62)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $20
jr c, .sprout
call Functioncda8d
ret
.sprout
ld [hl], $40
ld a, BATTLEANIMFRAMESET_57
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ret
.two: ; cda7a (33:5a7a)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and a
jr z, .flutter
dec [hl]
ret
.flutter
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_58
call ReinitBattleAnimFrameset
.three: ; cda8c (33:5a8c)
ret
Functioncda8d: ; cda8d (33:5a8d)
dec [hl]
ld d, $20
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_02
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld e, [hl]
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld d, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld h, [hl]
ld a, h
and $f
swap a
ld l, a
ld a, h
and $f0
swap a
ld h, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and $1
ret nz
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ret
BattleAnimFunction_3F: ; cdad6 (33:5ad6)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdadf
dw Functioncdae9
dw Functioncdaf9
Functioncdadf: ; cdadf (33:5adf)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $40
ret
Functioncdae9: ; cdae9 (33:5ae9)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $20
jr c, .asm_cdaf6
call Functioncda8d
ret
.asm_cdaf6
call BattleAnim_IncAnonJumptableIndex
Functioncdaf9: ; cdaf9 (33:5af9)
ret
BattleAnimFunction_1A: ; cdafa (33:5afa)
call BattleAnimFunction_03
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
add $f
ld [hl], a
ret
BattleAnimFunction_1B: ; cdb06 (33:5b06)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdb13
dw Functioncdb14
dw Functioncdb28
dw Functioncdb50
dw Functioncdb65
Functioncdb13: ; cdb13 (33:5b13)
ret
Functioncdb14: ; cdb14 (33:5b14)
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp $30
jr c, .asm_cdb24
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], $0
ret
.asm_cdb24
add $4
ld [hl], a
ret
Functioncdb28: ; cdb28 (33:5b28)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $98
ret nc
inc [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_01
add hl, bc
set 0, [hl]
ld hl, BATTLEANIMSTRUCT_02
add hl, bc
ld [hl], $90
ld hl, BATTLEANIMSTRUCT_FRAME
add hl, bc
ld [hl], $0
ld hl, BATTLEANIMSTRUCT_DURATION
add hl, bc
ld [hl], $2
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ret
Functioncdb50: ; cdb50 (33:5b50)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $2c
ld hl, BATTLEANIMSTRUCT_FRAME
add hl, bc
ld [hl], $0
ld hl, BATTLEANIMSTRUCT_DURATION
add hl, bc
ld [hl], $80
Functioncdb65: ; cdb65 (33:5b65)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $98
ret nc
inc [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
ld d, $8
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
BattleAnimFunction_1D: ; cdb80 (33:5b80)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdb9f
dw Functioncdbb3
dw Functioncdbcf
dw Functioncdbeb
dw Functioncdc74
dw Functioncdc1a
dw Functioncdbc1
dw Functioncdc1e
dw Functioncdc27
dw Functioncdc39
dw Functioncdc74
dw Functioncdc48
dw Functioncdc57
dw Functioncdc74
Functioncdb9f: ; cdb9f (33:5b9f)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $28
inc hl
ld [hl], $10
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
ret
Functioncdbb3: ; cdbb3 (33:5bb3)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $40
jr nc, .asm_cdbbd
inc [hl]
.asm_cdbbd
call Functioncdc75
ret
Functioncdbc1: ; cdbc1 (33:5bc1)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $4b
jr nc, .asm_cdbcb
inc [hl]
.asm_cdbcb
call Functioncdc75
ret
Functioncdbcf: ; cdbcf (33:5bcf)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $88
jr nc, .asm_cdbe6
and $f
jr nz, asm_cdbfa
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $10
call BattleAnim_IncAnonJumptableIndex
ret
.asm_cdbe6
call BattleAnim_IncAnonJumptableIndex
inc [hl]
ret
Functioncdbeb: ; cdbeb (33:5beb)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and a
jr z, .asm_cdbf5
dec [hl]
ret
.asm_cdbf5
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
dec [hl]
asm_cdbfa: ; cdbfa (33:5bfa)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
inc [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld d, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld e, [hl]
ld hl, hTransferVirtualOAM ; $ff80
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ret
Functioncdc1a: ; cdc1a (33:5c1a)
call DeinitBattleAnimation
ret
Functioncdc1e: ; cdc1e (33:5c1e)
ld a, BATTLEANIMFRAMESET_4E
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ret
Functioncdc27: ; cdc27 (33:5c27)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
ld d, $2
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
Functioncdc39: ; cdc39 (33:5c39)
ld a, BATTLEANIMFRAMESET_50
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], $4
call BattleAnim_IncAnonJumptableIndex
ret
Functioncdc48: ; cdc48 (33:5c48)
ld a, BATTLEANIMFRAMESET_4F
call ReinitBattleAnimFrameset
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $40
ret
Functioncdc57: ; cdc57 (33:5c57)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $20
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $30
jr c, .asm_cdc71
dec [hl]
ret
.asm_cdc71
call BattleAnim_IncAnonJumptableIndex
Functioncdc74: ; cdc74 (33:5c74)
ret
Functioncdc75: ; cdc75 (33:5c75)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hli]
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $3f
ret nz
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $20
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
sub $8
ld [hl], a
ret nz
xor a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hli], a
ld [hl], a
call BattleAnim_IncAnonJumptableIndex
ret
BattleAnimFunction_1E: ; cdca6 (33:5ca6)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
and a
jr z, .asm_cdcb6
cp $d8
jr nc, .asm_cdcb6
call DeinitBattleAnimation
ret
.asm_cdcb6
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
sub d
ld [hl], a
ret
BattleAnimFunction_21: ; cdcc3 (33:5cc3)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdcca
dw Functioncdced
Functioncdcca: ; cdcca (33:5cca)
ld a, [hBattleTurn]
and a
jr z, .asm_cdcd9
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
xor $ff
add $3
ld [hl], a
.asm_cdcd9
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $8
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, BATTLEANIMFRAMESET_59
add [hl]
call ReinitBattleAnimFrameset
ret
Functioncdced: ; cdced (33:5ced)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .asm_cdcfa
dec [hl]
call Functioncdcfe
ret
.asm_cdcfa
call DeinitBattleAnimation
ret
Functioncdcfe: ; cdcfe (33:5cfe)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
ld d, $10
call BattleAnim_Sine
ld d, a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and a
jr z, .asm_cdd20
dec a
ret z
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], d
ret
.asm_cdd20
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, d
xor $ff
inc a
ld [hl], a
ret
BattleAnimFunction_22: ; cdd2a (33:5d2a)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdd31
dw Functioncdd4f
Functioncdd31: ; cdd31 (33:5d31)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $3f
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $80
rlca
ld [hl], a
add BATTLEANIMFRAMESET_5D
call ReinitBattleAnimFrameset
ret
Functioncdd4f: ; cdd4f (33:5d4f)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
swap a
ld d, a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
inc [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $80
ret nc
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and $3
jr nz, .asm_cdd87
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
.asm_cdd87
and $1
ret nz
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
inc [hl]
ret
BattleAnimFunction_23: ; cdd90 (33:5d90)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdd97
dw Functioncddbc
Functioncdd97: ; cdd97 (33:5d97)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $80
rlca
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
add [hl]
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $7f
ld [hl], a
Functioncddbc: ; cddbc (33:5dbc)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $10
push af
push de
call BattleAnim_Sine
sra a
sra a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
and $3f
jr z, .asm_cddf0
and $1f
ret nz
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc a
jr .asm_cddf5
.asm_cddf0
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
.asm_cddf5
call ReinitBattleAnimFrameset
ret
BattleAnimFunction_24: ; cddf9 (33:5df9)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncde02
dw Functioncde20
dw Functioncde21
Functioncde02: ; cde02 (33:5e02)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
add BATTLEANIMFRAMESET_63
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld e, [hl]
ld d, 0
ld hl, Unknown_cde25
add hl, de
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
Functioncde20: ; cde20 (33:5e20)
ret
Functioncde21: ; cde21 (33:5e21)
call DeinitBattleAnimation
ret
; cde25 (33:5e25)
Unknown_cde25: ; cde25
db $ec, $f8, $00
; cde28
BattleAnimFunction_25: ; cde28 (33:5e28)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
ld d, $4
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld d, [hl]
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld e, [hl]
ld hl, $ffa0
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], e
ret
BattleAnimFunction_26: ; cde54 (33:5e54)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
dec [hl]
ld d, $10
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
inc [hl]
ret
BattleAnimFunction_27: ; cde6b (33:5e6b)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncde72
dw Functioncde88
Functioncde72: ; cde72 (33:5e72)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and a
jr nz, .asm_cde83
ld hl, BATTLEANIMSTRUCT_01
add hl, bc
set 6, [hl]
.asm_cde83
add BATTLEANIMFRAMESET_6A
call ReinitBattleAnimFrameset
Functioncde88: ; cde88 (33:5e88)
ret
BattleAnimFunction_28: ; cde89 (33:5e89)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncde90
dw Functioncdebf
Functioncde90: ; cde90 (33:5e90)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $0
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld e, [hl]
ld a, e
and $70
swap a
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, e
and $80
jr nz, .asm_cdeb2
ld a, e
and $f
ld [hl], a
ret
.asm_cdeb2
ld a, e
and $f
xor $ff
inc a
ld [hl], a
ld a, BATTLEANIMFRAMESET_6E
call ReinitBattleAnimFrameset
ret
Functioncdebf: ; cdebf (33:5ebf)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .asm_cdec9
dec [hl]
ret
.asm_cdec9
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
ret
BattleAnimFunction_SpiralDescent: ; cdedd (33:5edd)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $18
push af
push de
call BattleAnim_Sine
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $7
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $28
jr nc, .delete
inc [hl]
ret
.delete
call DeinitBattleAnimation
ret
BattleAnimFunction_2D: ; cdf1b (33:5f1b)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $18
push af
push de
call BattleAnim_Sine
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $3
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $28
jr nc, .asm_cdf55
inc [hl]
ret
.asm_cdf55
call DeinitBattleAnimation
ret
BattleAnimFunction_PoisonGas: ; cdf59 (33:5f59)
call BattleAnim_AnonJumptable
.anon_dw
dw Functioncdf60
dw BattleAnimFunction_SpiralDescent
Functioncdf60: ; cdf60 (33:5f60)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
jr nc, .next
inc [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
ld d, $18
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
and $1
ret nz
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
dec [hl]
ret
.next
call BattleAnim_IncAnonJumptableIndex
ret
BattleAnimFunction_34: ; cdf8c (33:5f8c)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $18
push af
push de
call BattleAnim_Sine
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
inc [hl]
inc [hl]
ld a, [hl]
and $7
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $e8
jr z, .asm_cdfc7
dec [hl]
ret
.asm_cdfc7
call DeinitBattleAnimation
ret
BattleAnimFunction_3C: ; cdfcb (33:5fcb)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $18
push af
push de
call BattleAnim_Sine
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
inc [hl]
inc [hl]
ld a, [hl]
and $3
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $d0
jr z, .asm_ce007
dec [hl]
dec [hl]
ret
.asm_ce007
call DeinitBattleAnimation
ret
BattleAnimFunction_35: ; ce00b (33:600b)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce014
dw Functionce023
dw Functionce05f
Functionce014: ; ce014 (33:6014)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $34
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $10
Functionce023: ; ce023 (33:6023)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $6c
jr c, .asm_ce02d
ret
.asm_ce02d
ld a, $2
call Functionce70a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld d, [hl]
call BattleAnim_Sine
bit 7, a
jr nz, .asm_ce046
xor $ff
inc a
.asm_ce046
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
sub $4
ld [hl], a
and $1f
cp $20
ret nz
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
srl [hl]
ret
Functionce05f: ; ce05f (33:605f)
call DeinitBattleAnimation
ret
BattleAnimFunction_Horn: ; ce063 (33:6063)
call BattleAnim_AnonJumptable
.anon_dw
dw .zero
dw .one
dw .two
dw Functionce09e
.zero: ; ce06e (33:606e)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ret
.one: ; ce083 (33:6083)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $58
ret nc
ld a, $2
call Functionce70a
ret
.two: ; ce091 (33:6091)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
cp $20
jr c, Functionce09e
call DeinitBattleAnimation
ret
Functionce09e: ; ce09e (33:609e)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
ld d, $8
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
sra a
xor $ff
inc a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
add $8
ld [hl], a
ret
BattleAnimFunction_2C: ; ce0c5 (33:60c5)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce0ce
dw Functionce0f8
dw Functionce0dd
Functionce0ce: ; ce0ce (33:60ce)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f0
swap a
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
ret
Functionce0dd: ; ce0dd (33:60dd)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld d, $10
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
bit 7, a
jr z, .asm_ce0f0
ld [hl], a
.asm_ce0f0
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
sub $4
ld [hl], a
Functionce0f8: ; ce0f8 (33:60f8)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
jr c, .asm_ce105
call DeinitBattleAnimation
ret
.asm_ce105
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
call Functionce70a
ret
BattleAnimFunction_2E: ; ce10e (33:610e)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce115
dw Functionce12a
Functionce115: ; ce115 (33:6115)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $28
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
sub $28
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
Functionce12a: ; ce12a (33:612a)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hli]
ld d, [hl]
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
and [hl]
jr nz, .asm_ce149
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
dec [hl]
.asm_ce149
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
inc [hl]
ld a, [hl]
and $3f
ret nz
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $20
inc hl
srl [hl]
ret
BattleAnimFunction_2F: ; ce15c (33:615c)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld d, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
inc [hl]
ld a, [hl]
and $1
jr nz, .asm_ce189
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
dec [hl]
.asm_ce189
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $3
jr nz, .asm_ce197
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
inc [hl]
.asm_ce197
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
cp $5a
jr nc, .asm_ce1aa
ld a, [hl]
and a
jr z, .asm_ce1ac
dec [hl]
ret
.asm_ce1aa
inc [hl]
ret
.asm_ce1ac
call DeinitBattleAnimation
ret
BattleAnimFunction_42: ; ce1b0 (33:61b0)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld d, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
cp $40
jr nc, .asm_ce1df
inc [hl]
ret
.asm_ce1df
ld a, [hl]
dec [hl]
and a
ret nz
call DeinitBattleAnimation
ret
BattleAnimFunction_30: ; ce1e7 (33:61e7)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce1ee
dw Functionce1fb
Functionce1ee: ; ce1ee (33:61ee)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], a
Functionce1fb: ; ce1fb (33:61fb)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $30
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
add $8
ld d, $30
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
inc [hl]
ret
BattleAnimFunction_31: ; ce226 (33:6226)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce22d
dw Functionce254
Functionce22d: ; ce22d (33:622d)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $10
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $10
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld [hl], $f
Functionce254: ; ce254 (33:6254)
ret
BattleAnimFunction_32: ; ce255 (33:6255)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce260
dw Functionce274
dw Functionce278
dw Functionce289
Functionce260: ; ce260 (33:6260)
call BattleAnim_IncAnonJumptableIndex
ld a, [hBattleTurn]
and a
jr nz, .asm_ce26c
ld a, $f0
jr .asm_ce26e
.asm_ce26c
ld a, $cc
.asm_ce26e
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], a
ret
Functionce274: ; ce274 (33:6274)
call Functionce29f
ret
Functionce278: ; ce278 (33:6278)
call Functionce29f
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
ret nc
ld a, $4
call Functionce70a
ret
Functionce289: ; ce289 (33:6289)
call Functionce29f
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $d0
jr nc, .asm_ce29b
ld a, $4
call Functionce70a
ret
.asm_ce29b
call DeinitBattleAnimation
ret
Functionce29f: ; ce29f (33:629f)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and $7
inc [hl]
srl a
ld e, a
ld d, $0
ld a, [hSGB]
and a
jr nz, .asm_ce2b6
ld hl, Unknown_ce2c4
jr .asm_ce2b9
.asm_ce2b6
ld hl, Unknown_ce2c8
.asm_ce2b9
add hl, de
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
and [hl]
ld [wOBP0], a
ret
; ce2c4 (33:62c4)
Unknown_ce2c4: ; ce2c4
db $ff, $aa, $55, $aa
Unknown_ce2c8: ; ce2c8
db $ff, $ff, $00, $00
; ce2cc
BattleAnimFunction_33: ; ce2cc (33:62cc)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $18
call BattleAnim_Sine
sra a
sra a
sra a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
add [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
ld d, $18
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
dec [hl]
dec [hl]
ret
BattleAnimFunction_36: ; ce2fd (33:62fd)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce306
dw Functionce330
dw Functionce34c
Functionce306: ; ce306 (33:6306)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $e0
jr nz, .asm_ce319
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $2
ret
.asm_ce319
ld d, a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld e, [hl]
ld hl, hTransferVirtualOAM ; $ff80
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ret
Functionce330: ; ce330 (33:6330)
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
and a
jr z, .asm_ce33a
dec [hl]
ret
.asm_ce33a
ld [hl], $4
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
add [hl]
ld [hl], a
ret
Functionce34c: ; ce34c (33:634c)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $84
jr nc, .asm_ce35b
ld a, $4
call Functionce70a
ret
.asm_ce35b
call DeinitBattleAnimation
ret
BattleAnimFunction_37: ; ce35f (33:635f)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce366
dw Functionce375
Functionce366: ; ce366 (33:6366)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $7f
add BATTLEANIMFRAMESET_81
call ReinitBattleAnimFrameset
Functionce375: ; ce375 (33:6375)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
bit 7, [hl]
jr nz, .asm_ce383
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
inc [hl]
ret
.asm_ce383
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
dec [hl]
ret
BattleAnimFunction_38: ; ce389 (33:6389)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce392
dw Functionce39c
dw Functionce3ae
Functionce392: ; ce392 (33:6392)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $c
ret
Functionce39c: ; ce39c (33:639c)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .asm_ce3a6
dec [hl]
ret
.asm_ce3a6
call BattleAnim_IncAnonJumptableIndex
ld a, BATTLEANIMFRAMESET_20
call ReinitBattleAnimFrameset
Functionce3ae: ; ce3ae (33:63ae)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
dec [hl]
ret
BattleAnimFunction_39: ; ce3b4 (33:63b4)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
push af
ld d, $2
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop af
ld d, $8
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
BattleAnimFunction_3A: ; ce3d2 (33:63d2)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $20
jr c, .asm_ce3df
call DeinitBattleAnimation
ret
.asm_ce3df
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $8
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
add $2
ld [hl], a
and $7
ret nz
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
inc [hl]
ret
BattleAnimFunction_3B: ; ce3ff (33:63ff)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce406
dw Functionce412
Functionce406: ; ce406 (33:6406)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
add [hl]
ld [hl], a
ret
Functionce412: ; ce412 (33:6412)
call DeinitBattleAnimation
ret
BattleAnimFunction_3D: ; ce416 (33:6416)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld d, $18
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
sra a
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
ret
BattleAnimFunction_3E: ; ce43a (33:643a)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce443
dw Functionce465
dw Functionce490
Functionce443: ; ce443 (33:6443)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $28
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
add hl, bc
add [hl]
call ReinitBattleAnimFrameset
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and $f0
or $8
ld [hl], a
Functionce465: ; ce465 (33:6465)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and a
jr z, .asm_ce48b
dec [hl]
add $8
ld d, a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
.asm_ce48b
ld [hl], $10
call BattleAnim_IncAnonJumptableIndex
Functionce490: ; ce490 (33:6490)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
dec [hl]
and a
ret nz
call DeinitBattleAnimation
ret
BattleAnimFunction_40: ; ce49c (33:649c)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce4a3
dw Functionce4b0
Functionce4a3: ; ce4a3 (33:64a3)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, BATTLEANIMFRAMESET_24
add [hl]
call ReinitBattleAnimFrameset
Functionce4b0: ; ce4b0 (33:64b0)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $38
jr nc, .asm_ce4d8
inc [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
ld d, $18
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
and $1
ret nz
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
dec [hl]
ret
.asm_ce4d8
call DeinitBattleAnimation
ret
BattleAnimFunction_41: ; ce4dc (33:64dc)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and a
ret z
ld d, a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
inc [hl]
call BattleAnim_Sine
bit 7, a
jr nz, .asm_ce4f4
xor $ff
inc a
.asm_ce4f4
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
and $1f
ret nz
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
srl [hl]
ret
BattleAnimFunction_43: ; ce508 (33:6508)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $10
jr nc, .asm_ce52e
inc [hl]
inc [hl]
ld d, a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
.asm_ce52e
call DeinitBattleAnimation
ret
BattleAnimFunction_44: ; ce532 (33:6532)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld e, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld d, [hl]
ld a, e
and $c0
rlca
rlca
add [hl]
ld [hl], a
ld a, e
and $3f
push af
push de
call BattleAnim_Sine
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
BattleAnimFunction_45: ; ce55b (33:655b)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce564
dw Functionce56e
dw Functionce577
Functionce564: ; ce564 (33:6564)
ld d, $18
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
jr asm_ce58f
Functionce56e: ; ce56e (33:656e)
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], $18
Functionce577: ; ce577 (33:6577)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $80
jr nc, .asm_ce58b
ld d, a
add $8
ld [hl], a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
jr asm_ce58f
.asm_ce58b
call DeinitBattleAnimation
ret
asm_ce58f: ; ce58f (33:658f)
call Functionce6f1
ret
BattleAnimFunction_46: ; ce593 (33:6593)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce5b3
dw Functionce59a
Functionce59a: ; ce59a (33:659a)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp $30
jr c, .asm_ce5b0
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
dec [hl]
dec [hl]
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
inc [hl]
inc [hl]
ret
.asm_ce5b0
call DeinitBattleAnimation
Functionce5b3: ; ce5b3 (33:65b3)
ret
BattleAnimFunction_47: ; ce5b4 (33:65b4)
ld d, $50
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
inc [hl]
push af
push de
call BattleAnim_Sine
sra a
sra a
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
add [hl]
inc [hl]
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
BattleAnimFunction_48: ; ce5dc (33:65dc)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $d0
jr z, .disappear
dec [hl]
dec [hl]
dec [hl]
dec [hl]
ret
.disappear
call DeinitBattleAnimation
ret
BattleAnimFunction_49: ; ce5ee (33:65ee)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce5f9
dw Functionce60a
dw Functionce622
dw Functionce618
Functionce5f9: ; ce5f9 (33:65f9)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
and a
jr nz, asm_ce61c
call BattleAnim_IncAnonJumptableIndex
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], $ec
Functionce60a: ; ce60a (33:660a)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $4
jr z, Functionce618
inc [hl]
inc [hl]
inc [hl]
inc [hl]
ret
Functionce618: ; ce618 (33:6618)
call DeinitBattleAnimation
ret
asm_ce61c: ; ce61c (33:661c)
call BattleAnim_IncAnonJumptableIndex
call BattleAnim_IncAnonJumptableIndex
Functionce622: ; ce622 (33:6622)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
cp $d8
ret z
dec [hl]
dec [hl]
dec [hl]
dec [hl]
ret
BattleAnimFunction_4A: ; ce62f (33:662f)
call BattleAnim_AnonJumptable
.anon_dw
dw Functionce63a
dw Functionce648
dw Functionce65c
dw Functionce672
Functionce63a: ; ce63a (33:663a)
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
call BattleAnim_IncAnonJumptableIndex
ret
Functionce648: ; ce648 (33:6648)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
add $4
cp $70
jr c, .asm_ce654
xor a
.asm_ce654
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
inc [hl]
inc [hl]
ret
Functionce65c: ; ce65c (33:665c)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
add $4
cp $70
jr c, .asm_ce668
xor a
.asm_ce668
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
add $8
ld [hl], a
ret
Functionce672: ; ce672 (33:6672)
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld a, [hl]
add $4
cp $70
jr c, .asm_ce67e
xor a
.asm_ce67e
ld [hl], a
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld a, [hl]
add $4
ld [hl], a
ret
BattleAnimFunction_4B: ; ce688 (33:6688)
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld d, [hl]
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld e, [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
ld l, a
and $f0
ld h, a
swap a
or h
ld h, a
ld a, l
and $f
swap a
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], d
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld [hl], e
ret
BattleAnimFunction_4C: ; ce6b3 (33:66b3)
ld d, $18
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld a, [hl]
inc [hl]
call Functionce6f1
ret
BattleAnimFunction_4F: ; ce6bf (33:66bf)
ld d, $18
ld hl, BATTLEANIMSTRUCT_10
add hl, bc
ld a, [hl]
inc [hl]
srl a
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
add [hl]
call Functionce6f1
ret
BattleAnimFunction_4D: ; ce6d2 (33:66d2)
ld hl, BATTLEANIMSTRUCT_0F
add hl, bc
ld a, [hl]
cp $20
jr nc, .asm_ce6ed
inc [hl]
ld hl, BATTLEANIMSTRUCT_0B
add hl, bc
ld d, [hl]
call BattleAnim_Sine
xor $ff
inc a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
ret
.asm_ce6ed
call DeinitBattleAnimation
ret
Functionce6f1: ; ce6f1 (33:66f1)
push af
push de
call BattleAnim_Sine
sra a
sra a
ld hl, BATTLEANIMSTRUCT_YOFFSET
add hl, bc
ld [hl], a
pop de
pop af
call BattleAnim_Cosine
ld hl, BATTLEANIMSTRUCT_XOFFSET
add hl, bc
ld [hl], a
ret
Functionce70a: ; ce70a (33:670a)
and $f
ld e, a
ld hl, BATTLEANIMSTRUCT_XCOORD
add hl, bc
add [hl]
ld [hl], a
srl e
ld hl, BATTLEANIMSTRUCT_YCOORD
add hl, bc
.asm_ce719
dec [hl]
dec e
jr nz, .asm_ce719
ret
BattleAnim_AnonJumptable: ; ce71e (33:671e)
pop de
ld hl, BATTLEANIMSTRUCT_ANON_JT_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
jp hl
BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c)
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
inc [hl]
ret
BattleAnim_Cosine: ; ce732 (33:6732)
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
BattleAnim_Sine: ; ce734 (33:6734)
; a = d * sin(a * pi/32)
calc_sine_wave BattleAnimSineWave
BattleAnim_Sine_e: ; ce765 (33:6765)
ld a, e
call BattleAnim_Sine
ld e, a
ret
BattleAnim_Cosine_e: ; ce76b (33:676b)
ld a, e
call BattleAnim_Cosine
ld e, a
ret
; ce771 (33:6771)
BattleAnim_AbsSinePrecise: ; ce771
ld a, e
call BattleAnim_Sine
ld e, l
ld d, h
ret
; ce778
BattleAnim_AbsCosinePrecise: ; ce778
ld a, e
call BattleAnim_Cosine
ld e, l
ld d, h
ret
; ce77f
BattleAnimSineWave: ; ce77f
sine_table 32
; ce7bf