objanim: Added door tile animation
authorLukas Krickl <lukas@krickl.dev>
Sat, 9 Aug 2025 04:18:53 +0000 (06:18 +0200)
committerLukas Krickl <lukas@krickl.dev>
Sat, 9 Aug 2025 04:18:53 +0000 (06:18 +0200)
This still needs to be adjusted correctly.

src/objanim.s
tiles/bank8800.inc

index 076666bc5b3895bdaef24a83702505502e577241..18eea94d63f0ddaa2831883da1da686fb25b1549 100644 (file)
@@ -1,3 +1,4 @@
+#define DOOR_SPRITE_TILE 0x80
 
        ; sets up object animation state
 objanim_init:
@@ -58,24 +59,31 @@ objanim_door_open:
        ; inputs:
        ;               de: objanim
 objanim_door_open_fn:
+#define TMP_Y, scratch
+#define TMP_X, scratch+1
+
        call load_unit_obj
        ld de, objanim+st_size
        call load_scroll
 
        ; hl = oam ptr
        ; de = anim flags 
-
+       
+       ; set first object
        inc de ; skip flags
        ld a, [de] ; a = y position
        inc de ; de = x postion
        tile_to_scrn OBJ_OFF_Y, b
        ld [hl+], a
+       ld [TMP_Y], a
 
        ld a, [de] ; a = x position
-       tile_to_scrn OBJ_OFF_X, b
+       tile_to_scrn OBJ_OFF_X, 
        ld [hl+], a
+       ld [TMP_X], a
        
-       ld a, 0x80 
+       ; door tile
+       ld a, DOOR_SPRITE_TILE 
        ld [hl+], a
 
        xor a, a
@@ -87,11 +95,34 @@ objanim_door_open_fn:
        ld [de], a ; timer--
        jr z, @timer_done REL
 
+       ; set up second object
+       call load_unit_obj
+       
+       ; set y pos
+       ld a, [TMP_Y]
+       ld [hl+], a 
+       
+       ; set x pos
+       ld a, [TMP_X]
+       add a, 8 ; move over a tile
+       ld [hl+], a
+       
+       ; tile 
+       ld a, DOOR_SPRITE_TILE+1
+       ld [hl+], a
+
+       ; flags
+       xor a, a
+       ld [hl], a
+
+
        ldnull bc
        ret
 @timer_done:   
        ld bc, st_null
        ret
+#undefine TMP_X
+#undefine TMP_Y
 
 st_objanim_door_open:
        st_def 0x00, objanim_door_open_fn, st_objanim_door_open 
index 2475f35ab99339de81fa711e07433385cf6142bf..2f0785988ae63a741b086ff43de355eb448134ce 100644 (file)
@@ -1,37 +1,37 @@
 ; tile 0
-.chr 00000000
-.chr 00333000
-.chr 00221010
-.chr 00222010
-.chr 10333010
-.chr 13333310
-.chr 10333000
-.chr 00333000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 22233333
+.chr 22311113
+.chr 23111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 33333333
 ; tile 1
-.chr 00333000
-.chr 00221000
-.chr 00333130
-.chr 00333033
-.chr 00111333
-.chr 03333300
-.chr 03303300
-.chr 03000300
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 33333222
+.chr 31111322
+.chr 31111132
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 31111113
+.chr 33333333
 ; tile 2
 .chr 01000100
 .chr 01333100