tiles: Added event struct
authorLukas Krickl <lukas@krickl.dev>
Fri, 28 Nov 2025 05:25:50 +0000 (06:25 +0100)
committerLukas Krickl <lukas@krickl.dev>
Fri, 28 Nov 2025 05:25:50 +0000 (06:25 +0100)
src/defs.s
src/macros.inc
src/player.s

index 0343f359ee6479bd60a8018333953be24f71839c..3d56155e30723c7dade775568d1fce20bc87cdf7 100644 (file)
        ; standing on tile
        ; 0 = player, 1-N = map actors
 .de t_actor, 1
-       ; 2 bytes of custom state storage
-       ; to be used by tile routine
-.de t_p0, 1
-.de t_state, 1
+       ; if != 0 this points to an event
+       ; that should execute when the player hits the tile
+.de t_event, 2
        ; graphical tile
 .de t_tile, 1
 .de t_size, 0
+       
+       ; tile event struct
+.se 0
+.de te_type, 1
+.de te_flags, 1
+       ; pointer to map
+       ; that should be loaded on 
+       ; event trigger
+       ; if it is 0000
+       ; the current map remains
+.de te_target_map, 2
+.de te_y, 1
+.de te_x, 1
 
 
        
index 8c8ffa2a174cbd11a08ad841f5e3ea48292b3686..3855ba747bcbcde9886a464b7f157bc0e6e90112 100644 (file)
@@ -179,11 +179,26 @@ $1:
        ;               $2: flags
        ;               $3: tile gfx
 #macro tiledef
-       .db $1, $2, 0 
-       ; t_actor, p0 and state
+       .db $1, $2 
+       ; t_actor
+       .db 0
+       ; t_event
        .db 0, 0 
        .db $3
 #endmacro
+
+       ; defines a tile event
+       ; inputs:
+       ;               $1: type
+       ;               $2: flags
+       ;               $3: target map (or NULL)
+       ;               $4: y pos
+       ;               $5: x pos
+#macro tileeventdef
+       .db $1, $2
+       dw $3
+       .db $4, $5
+#endmacro
        
        ; defines a new actor
        ; inputs:
index 536f234515014d03ebb20124b29c3daeab68808c..5d0a7137e00b836077cd0476dbb5d7463fd6c6b7 100644 (file)
@@ -12,7 +12,7 @@ player_init:
        
        ; updates the special player actor
 player_update: 
-       call scroll_center_player
+       call scroll_center_player
        
        call player_inputs
        call player_handle_move
@@ -80,7 +80,7 @@ player_handle_move:
        and a, BTNDOWN
        jr z, @not_down REL
                ld a, [player+act_pos_y]
-               cp a, 0xF0 ; max value
+               cp a, 0x60 ; max value
                jr z, @not_down REL
                inc a
                ld [player+act_pos_y], a
@@ -110,7 +110,7 @@ player_handle_move:
        and a, BTNRIGHT
        jr z, @not_right REL
                ld a, [player+act_pos_x]
-               cp a, 0xF0 ; max value
+               cp a, 0x90 ; max value
                jr z, @not_right REL
                inc a
                ld [player+act_pos_x], a