Testing actor tile assignment
authorLukas Krickl <lukas@krickl.dev>
Fri, 25 Oct 2024 16:34:49 +0000 (18:34 +0200)
committerLukas Krickl <lukas@krickl.dev>
Fri, 25 Oct 2024 16:34:49 +0000 (18:34 +0200)
src/actor.s
src/wram.s
tiles/tileset0.inc

index 1741cfbb56d769d7fe3d6d05c50baf10a76cb1e2..761ba7c07f22b1ed7459a015aab837c87d25e3dd 100644 (file)
@@ -1,6 +1,8 @@
+
 ; function ptrs for each actor type 
 ; inputs:
 ;   de: actor ptr
+; actor_soam_ptr: next soam item 
 actor_update_table:
   dw actor_update_null
   dw actor_update_dust
@@ -9,11 +11,41 @@ actor_update_null:
   ret
 
 actor_update_dust:
+  ; load oam ptr 
+  ld a, [actor_soam_ptr]
+  ld h, a
+  ld a, [actor_soam_ptr+1]
+  ld l, a
+
+  ld a, 20
+  ld [hl+], a
+  ld [hl+], a
+
+  ld a, PLAYER_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
+
   ret
 
   ; updates all active actors from 
   ; the current actor table
 actors_update:
+  ; reset soam ptr 
+  xor a, a 
+  ldlo a, shadow_oam
+  add a, 10 * oamsize ; starting at oam 10
+  ld [actor_soam_ptr+1], a
+  ldhi a, shadow_oam
+  ld [actor_soam_ptr], a
+
   ld b, ACTORS_MAX ; loop counter
   ld de, actor_table 
 @loop: 
index 72cca69b653c83bf0dbc391a9ac25ab8e7311422..c1b0f6938270b95de3b87581f50a74c8b78b3e37 100644 (file)
@@ -32,6 +32,8 @@ prev_inputs: .adv 1
 
 actor_table: .adv ACTORS_MAX * actor_size
 
+actor_soam_ptr: .adv 2
+
 #define PLAYER_DEFAULT_HP 3
 #define PLAYER_DEFAULT_MP 3
 #define PLAYER_DEFAULT_DEF 0
index 18a7307fd31cdb59339c57813c85107a8a0836a9..cf7d40ec714dd1b0c104a84765661748a750de28 100644 (file)
 .chr 00000000
 ; tile 48
 .chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00000300
+.chr 00320000
+.chr 02000300
+.chr 00030200
+.chr 00200000
+.chr 00300030
+.chr 02020002
 ; tile 49
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
-.chr 00000000
+.chr 00300000
+.chr 00203030
+.chr 03302302
+.chr 03332333
+.chr 00303000
+.chr 02233300
+.chr 00332200
 .chr 00000000
 ; tile 50
 .chr 00000000