actors: Added states to actor templates
authorLukas Krickl <lukas@krickl.dev>
Mon, 12 May 2025 14:37:38 +0000 (16:37 +0200)
committerLukas Krickl <lukas@krickl.dev>
Mon, 12 May 2025 14:37:38 +0000 (16:37 +0200)
src/defs.s
src/macros.inc
src/unit.s

index ee028187a16baef64898b1bea57bb7d1018ad50f..9a7eba9b02ebcf42a96f6133d3d3696871c8dd38 100644 (file)
@@ -7,6 +7,8 @@
 #define WRAM 0xC000
 #define WRAMLEN 0xFFF
 
+#define NULL 0
+
 #define UNITS_MAX 8
 
 #define STACK_BEGIN 0xDFFF
 .de act_pos_x, 1
   ; custom parameter
 .de act_p0, 1
+
+  ; actor states 
+  ; used for state switching
+  ; set to 0000 to disable the state
+.de act_st_attack, 2
+.de act_st_interact, 2
+.de act_st_active, 2
+.de act_st_idle, 2
 .de act_size, 0
   
   ; max bge queue size
index d6620fdeb0a440e5d4f471a90c53ae5cc53e747d..632dfee92a4ed944be85b58266a34d28ea485140 100644 (file)
   .db $10 ; p0
 #endmacro
 
+  ; defines actor state callbacks
+  ; inputs:
+  ;   $1: st_attack
+  ;   $2: st_interact
+  ;   $3: st_active
+  ;   $4: st_idle
+#macro act_st_def
+  dw $1
+  dw $2
+  dw $3
+  dw $4
+#endmacro
+
   ; loads NULL into a 16 bit register
   ; inputs:
   ;   $1: register
index 288de366be583bc526ee8512db73b0e9b1d2d57b..eaed64798cebebe2bb1589f61ad37ee2ec2e7915 100644 (file)
@@ -150,6 +150,7 @@ unit_scroll_center:
 unit_demo_1:
   st_def 0x00, unit_demo_1_init, st_unit_demo_1_update
   act_def ACT_T_DEMO_1, 0, 1, 1, 1, 1, 1, 2, 2, 0 
-
+  act_st_def NULL, st_unit_demo_1_update, NULL, NULL
+  
 st_unit_demo_1_update:
   st_def 0x00, unit_demo_1_update, st_unit_demo_1_update