summaryrefslogtreecommitdiff
path: root/engine/anims/helpers.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/anims/helpers.asm')
-rwxr-xr-xengine/anims/helpers.asm130
1 files changed, 130 insertions, 0 deletions
diff --git a/engine/anims/helpers.asm b/engine/anims/helpers.asm
new file mode 100755
index 000000000..a692211d3
--- /dev/null
+++ b/engine/anims/helpers.asm
@@ -0,0 +1,130 @@
+ReinitBattleAnimFrameset: ; ce7bf (33:67bf)
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], 0
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], -1
+ ret
+
+GetBattleAnimFrame: ; ce7d1
+.loop
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .next_frame
+ dec [hl]
+ call .GetPointer
+ ld a, [hli]
+ push af
+ jr .okay
+
+.next_frame
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ inc [hl]
+ call .GetPointer
+ ld a, [hli]
+ cp -2
+ jr z, .restart
+ cp -1
+ jr z, .repeat_last
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.okay
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [wBattleAnimTemp7], a
+ pop af
+ ret
+
+.repeat_last
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .loop
+
+.restart
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], a
+ jr .loop
+
+; ce823
+
+.GetPointer: ; ce823
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, BattleAnimFrameData
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+
+; ce83c
+
+GetBattleAnimOAMPointer: ; ce83c
+ ld l, a
+ ld h, 0
+ ld de, BattleAnimOAMData
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+
+; ce846
+
+LoadBattleAnimObj: ; ce846 (33:6846)
+ push hl
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, AnimObjGFX
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ push bc
+ call DecompressRequest2bpp
+ pop bc
+ ret
+
+; ce85e (33:685e)