diff options
author | entrpntr <12521136+entrpntr@users.noreply.github.com> | 2020-06-05 15:21:06 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-05 15:21:06 -0400 |
commit | a23854b05ec944b081b91815d6d605dd5e3d2f32 (patch) | |
tree | 83c502382c1c59603f6b220903ac668a53ff7828 /engine/battle_anims/helpers.asm | |
parent | 9999086ba02e0849efe5ff585134fd610fa6348b (diff) | |
parent | ccfd8b0a9f452ff2a0dee2ec94577696b25a46af (diff) |
Merge pull request #43 from libjet/bank33
Disassemble bank $33
Diffstat (limited to 'engine/battle_anims/helpers.asm')
-rwxr-xr-x | engine/battle_anims/helpers.asm | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/engine/battle_anims/helpers.asm b/engine/battle_anims/helpers.asm new file mode 100755 index 00000000..208ab614 --- /dev/null +++ b/engine/battle_anims/helpers.asm @@ -0,0 +1,123 @@ +ReinitBattleAnimFrameset: + 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: +.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 dorestart_command + jr z, .restart + cp endanim_command + jr z, .repeat_last + + push af + ld a, [hl] + push hl + and $ff ^ (Y_FLIP << 1 | X_FLIP << 1) + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], a + pop hl +.okay + ld a, [hl] + and Y_FLIP << 1 | X_FLIP << 1 ; The << 1 is compensated in the "frame" macro + srl a + ld [wBattleAnimTempFrameOAMFlags], 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 + +.GetPointer: + 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 + +GetBattleAnimOAMPointer: + ld l, a + ld h, 0 + ld de, BattleAnimOAMData + add hl, hl + add hl, hl + add hl, de + ret + +LoadBattleAnimGFX: + 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 |