ld [actor_soam_ptr], a
#endmacro
+ ; loads an animation frame
+ ; from a table
+ ; uses hl and a
+ ; inputs:
+ ; $1: table
+ ; $2: max frames (mask)
+ ; returns:
+ ; a: the frame
+#macro load_anim_frame
+ ld hl, $1
+ ld a, [frame_count]
+ and a, $2 ; max frames
+ ld d, 0
+ ld e, a
+ add hl, de ; hl = correct tile index
+ ld a, [hl]
+#endmacro
+
actor_anim_table_bat:
.db BAT_TILE_IDLE1
.db BAT_TILE_IDLE1
@skip:
; load tile to use into tmp
- ld hl, actor_anim_table_bat
- ld a, [frame_count]
- and a, 0b1111 ; even and odd frames
- ld d, 0
- ld e, a
- add hl, de ; hl = correct tile index
- ld a, [hl]
+ load_anim_frame actor_anim_table_bat, 0b1111
ld [tmp], a
; load oam ptr