mirror of https://github.com/pret/pokecrystal.git
4166 lines
66 KiB
NASM
Executable File
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
|