+#define BAT_TILE_IDLE1 0x22
+#define BAT_TILE_IDLE2 0x32
+
; skips actor if acto != who
; returns:
; nz: if actor is not who
call who_next
#endmacro
+ ; stores hl back into soam ptr
+#macro actor_store_soam_ptr
+ ; store soam ptr again
+ ld a, l
+ ld [actor_soam_ptr+1], a
+ ld a, h
+ ld [actor_soam_ptr], a
+#endmacro
+
; function ptrs for each actor type
; inputs:
; bc: actor ptr
inc bc ; bc = actor_y
+ ; tile 1
ld a, [bc] ; a = y
ld [hl+], a ; set y
- inc bc
+ inc bc ; bc = actor_x
ld a, [bc] ; a = x
ld [hl+], a ; set x
- ld a, PLAYER_TILE_IDLE1
+ ld a, BAT_TILE_IDLE1
ld [hl+], a
xor a, a
ld [hl+], a
-
- ; store soam ptr again
- ld a, l
- ld [actor_soam_ptr+1], a
- ld a, h
- ld [actor_soam_ptr], a
+
+ ; tile 2
+ dec bc ; bc = actor_y
+ ld a, [bc]
+ ld [hl+], a ; set y
+
+ inc bc ; bc = actor_x
+ ld a, [bc]
+ add a, 8
+ ld [hl+], a ; set x
+
+ ld a, BAT_TILE_IDLE2
+ ld [hl+], a
+
+ xor a, a
+ ld [hl+], a
+
+ actor_store_soam_ptr
ret
xor a, a
ld [hl+], a
- ; store soam ptr again
- ld a, l
- ld [actor_soam_ptr+1], a
- ld a, h
- ld [actor_soam_ptr], a
+ actor_store_soam_ptr
ret