From 2dd32ceee40d1b368de1e8f13cdbaf4247316a3a Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 9 Aug 2025 06:18:53 +0200 Subject: [PATCH] objanim: Added door tile animation This still needs to be adjusted correctly. --- src/objanim.s | 37 ++++++++++++++++++++++++--- tiles/bank8800.inc | 64 +++++++++++++++++++++++----------------------- 2 files changed, 66 insertions(+), 35 deletions(-) diff --git a/src/objanim.s b/src/objanim.s index 076666b..18eea94 100644 --- a/src/objanim.s +++ b/src/objanim.s @@ -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, c 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 diff --git a/tiles/bank8800.inc b/tiles/bank8800.inc index 2475f35..2f07859 100644 --- a/tiles/bank8800.inc +++ b/tiles/bank8800.inc @@ -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 -- 2.30.2