defs: Added defs for map events
authorLukas Krickl <lukas@krickl.dev>
Mon, 1 Dec 2025 06:31:02 +0000 (07:31 +0100)
committerLukas Krickl <lukas@krickl.dev>
Mon, 1 Dec 2025 06:31:02 +0000 (07:31 +0100)
man/map.md [new file with mode: 0644]
src/defs.s
src/macros.inc

diff --git a/man/map.md b/man/map.md
new file mode 100644 (file)
index 0000000..4e910f8
--- /dev/null
@@ -0,0 +1,22 @@
+# Map
+
+Maps are the building blokc of the world
+
+Each map has a header containg data about what kind of map it is,
+what tiles to load, what encounter to load etc.
+
+## Tiles
+
+Each map can point to a table of tiles.
+Tiles can hold information such as tiles to render and event pointers.
+
+## Events
+
+Events can be anything that happens when a player touches the tile.
+Common events are exits, scripted encounters or cutscenes.
+
+## Exits
+
+Each map can point to a table of exits.
+This table is referenced by exit events.
+
index 74b7e4d063b215eb5eb4769add8c3c27348f8a84..bd59a2d3f1ab159c8efbee9047640e1b988c33b8 100644 (file)
@@ -82,7 +82,7 @@
 .de map_acts, 2
        ; ptr to encounter table
 .de map_encounters, 2
-       ; ptr to exit table
+       ; ptr to exit table 
 .de map_exits, 2
   ; pointers to tile banks to be loaded 
   ; maps to map property tile_bank0, tile_bank1, tile_bank2, tile_bank3
 .de t_tile, 1
 .de t_size, 0
        
+       ; tile event types
+.se 0
+       ; exit on touch
+       ; p0: exit table entry
+       ; p1: new y pos
+       ;       p2: new x pos
+.de TE_EXIT, 1
+
+
        ; 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
+.de te_p0, 1
+.de te_p1, 1
+.de te_p2, 1
+.de te_size, 0
+
+       ; exit table entry
+.se 0
+       ; pointer to new map header
+.de map_exit_entry, 2
+
 
 
        
index c6a2299d482700feaf45da0dd4b7cef5469a3107..b2e2e66e99fa55a6033c5b6e960dbcf3cfbd6e5f 100644 (file)
@@ -193,13 +193,12 @@ $1:
        ; inputs:
        ;               $1: type
        ;               $2: flags
-       ;               $3: target map (or NULL)
-       ;               $4: y pos
-       ;               $5: x pos
+       ;               $3: p0
+       ;               $4: p1
+       ;               $5: p2
 #macro tileeventdef
        .db $1, $2
-       dw $3
-       .db $4, $5
+       .db $3, $4, $5
 #endmacro
        
        ; defines a new actor