From: Lukas Krickl Date: Mon, 1 Dec 2025 06:31:02 +0000 (+0100) Subject: defs: Added defs for map events X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=f20e54e13eb502ea8171fb2ad7ac882d66a3bad7;p=gbrg%2F.git defs: Added defs for map events --- diff --git a/man/map.md b/man/map.md new file mode 100644 index 0000000..4e910f8 --- /dev/null +++ b/man/map.md @@ -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. + diff --git a/src/defs.s b/src/defs.s index 74b7e4d..bd59a2d 100644 --- a/src/defs.s +++ b/src/defs.s @@ -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 @@ -122,18 +122,29 @@ .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 + diff --git a/src/macros.inc b/src/macros.inc index c6a2299..b2e2e66 100644 --- a/src/macros.inc +++ b/src/macros.inc @@ -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