From 72c5e64fec2fe2f3c87307c5e9f4771b51cca7f8 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Wed, 20 Nov 2024 16:52:35 +0100 Subject: [PATCH] Added basic bat rendering --- src/actor.s | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/src/actor.s b/src/actor.s index 11dfe2a..7157158 100644 --- a/src/actor.s +++ b/src/actor.s @@ -1,4 +1,7 @@ +#define BAT_TILE_IDLE1 0x22 +#define BAT_TILE_IDLE2 0x32 + ; skips actor if acto != who ; returns: ; nz: if actor is not who @@ -18,6 +21,15 @@ 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 @@ -51,24 +63,37 @@ actor_update_bat: 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 @@ -102,11 +127,7 @@ actor_update_rock: 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 -- 2.30.2