From b5417fafec7dd37cb4be391f3bd3d4541a2a381e Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Tue, 26 Dec 2017 17:47:05 -0500 Subject: Split battle/ into data/ and engine/ components --- engine/anims/helpers.asm | 130 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100755 engine/anims/helpers.asm (limited to 'engine/anims/helpers.asm') 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) -- cgit v1.2.3