From c9f795e55c667bfccf7c2ba8c0181d98737f6d96 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Mon, 16 Jun 2025 20:46:03 -0500 Subject: [PATCH] test tiles --- data/map project.tiled-session | 13 +- data/map.tmj | 219 +++++++++++++------- data/overworld.tsx | 4 +- data/templates/NPC.tx | 2 +- data/tilemap.png | Bin 2813 -> 9781 bytes data/tilemap.pxo | Bin 3099 -> 8703 bytes src/dusk/entity/player.c | 5 +- src/duskraylib/display/draw/drawoverworld.c | 2 + src/duskraylib/display/render.c | 4 +- tools/mapcompile/mapcompile.py | 23 +- 10 files changed, 188 insertions(+), 84 deletions(-) diff --git a/data/map project.tiled-session b/data/map project.tiled-session index 0cc20a5..3ded4a8 100644 --- a/data/map project.tiled-session +++ b/data/map project.tiled-session @@ -1,20 +1,23 @@ { "activeFile": "overworld.tsx", "expandedProjectPaths": [ - ".", - "templates" + "templates", + "." ], "fileStates": { + ":/automap-tiles.tsx": { + "scaleInDock": 1 + }, "entities.tsx": { "scaleInDock": 1, "scaleInEditor": 1 }, "map.tmj": { - "scale": 4, + "scale": 3, "selectedLayer": 1, "viewCenter": { - "x": 6622.75, - "y": 6689.625 + "x": 6909.5, + "y": 6948.166666666666 } }, "overworld.tsx": { diff --git a/data/map.tmj b/data/map.tmj index b639e2b..0ded389 100644 --- a/data/map.tmj +++ b/data/map.tmj @@ -28,15 +28,15 @@ }, { "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -50,16 +50,16 @@ }, { "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 19, 19, 19, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 19, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -81,12 +81,12 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 115, 115, 115, 115, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":432, @@ -182,16 +182,16 @@ }, { "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 67, 49, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 67, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 67, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 67, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 67, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 67, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 49, 49, 1, 1, 1, 1, 1, + 1, 1, 49, 49, 49, 49, 49, 49, 49, 49, 49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -203,13 +203,13 @@ "y":432 }, { - "data":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + "data":[1, 115, 115, 115, 115, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 115, 115, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 115, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 115, 115, 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 115, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -270,7 +270,6 @@ }], "height":32, "id":1, - "locked":true, "name":"Base Layer", "opacity":1, "startx":384, @@ -285,16 +284,16 @@ "chunks":[ { "data":[0, 0, 0, 2, 3, 3, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 6, 3, 3, 3, 3, 3, 3, 3, - 0, 0, 0, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 0, 0, 0, 10, 11, 11, 11, 11, 14, 19, 19, 19, 19, 19, 19, 19, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 10, 11, 11, 11, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 19, 19, 19, 19, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 6, 3, 3, 3, 3, 3, 3, 3, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 22, 35, 35, 35, 35, 35, 35, 35, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 35, 35, 35, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -306,18 +305,18 @@ "y":416 }, { - "data":[0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 5, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 19, 13, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + "data":[0, 0, 2, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 5, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 35, 21, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 35, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -326,23 +325,89 @@ "width":16, "x":416, "y":416 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 116, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 0, 99, 99, 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":432, + "y":416 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 68, 0, 85, 0, 71, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 69, 54, 52, 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 0, 66, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, 69, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 82, 69, 54, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 71, 0, 0, 0, 0, 82, 69, 0, 52, 0, 0, 0, 0, 130, + 0, 0, 0, 0, 0, 55, 0, 0, 66, 0, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 84, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":416, + "y":432 + }, + { + "data":[114, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 131, 131, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":16, + "width":16, + "x":432, + "y":432 }], "height":32, "id":5, - "locked":true, "name":"Overlay Base Layer", "opacity":1, "startx":400, - "starty":400, + "starty":416, "type":"tilelayer", "visible":true, - "width":32, + "width":48, "x":0, "y":0 }, { "draworder":"topdown", "id":3, + "locked":true, "name":"Object Layer 1", "objects":[ { @@ -356,6 +421,18 @@ "template":"templates\/NPC.tx", "x":6737, "y":6672.91666666667 + }, + { + "gid":257, + "height":16, + "id":6, + "name":"Player Spawn", + "rotation":0, + "type":"player_spawn", + "visible":true, + "width":16, + "x":6743.33333333333, + "y":6989.33333333333 }], "opacity":1, "type":"objectgroup", @@ -364,7 +441,7 @@ "y":0 }], "nextlayerid":6, - "nextobjectid":5, + "nextobjectid":7, "orientation":"orthogonal", "renderorder":"right-down", "tiledversion":"1.11.1", @@ -375,11 +452,11 @@ "source":"overworld.tsx" }, { - "firstgid":65, + "firstgid":257, "source":"entities.tsx" }, { - "firstgid":129, + "firstgid":321, "source":":\/automap-tiles.tsx" }], "tilewidth":16, diff --git a/data/overworld.tsx b/data/overworld.tsx index 7109f0e..d1617f7 100644 --- a/data/overworld.tsx +++ b/data/overworld.tsx @@ -1,4 +1,4 @@ - - + + diff --git a/data/templates/NPC.tx b/data/templates/NPC.tx index 1026303..f76ec07 100644 --- a/data/templates/NPC.tx +++ b/data/templates/NPC.tx @@ -1,5 +1,5 @@ diff --git a/data/tilemap.png b/data/tilemap.png index 51b33913cbc4caccd66df44d853d13f381bba6b2..b636c0fc426784fc4dfe0f7268b388e53a26bcfa 100644 GIT binary patch literal 9781 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 diff --git a/data/tilemap.pxo b/data/tilemap.pxo index bd4b351a6a0c0598fe2689a51992e51a2e9384df..3ad9091a162a1a19742532f3347e282963b42906 100644 GIT binary patch literal 8703 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�T2aSf=-dpx4T)Hdg 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 Y{v#$c!=uOk2(dDL!;Gt-_@96O3(5?@YybcN delta 2832 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 diff --git a/src/dusk/entity/player.c b/src/dusk/entity/player.c index 02c6c19..c7e37ad 100644 --- a/src/dusk/entity/player.c +++ b/src/dusk/entity/player.c @@ -9,6 +9,7 @@ #include "assert/assert.h" #include "input.h" #include "display/render.h" +#include "world/world.h" void playerInit() { entity_t *ent = &ENTITIES[0]; @@ -16,8 +17,8 @@ void playerInit() { entityInit(ent, ENTITY_TYPE_PLAYER); ent->id = PLAYER_ENTITY_ID; - ent->x = 32; - ent->y = 32; + ent->x = WORLD_PLAYER_SPAWN_X; + ent->y = WORLD_PLAYER_SPAWN_Y; } void playerNPCInit(entity_t *entity) { diff --git a/src/duskraylib/display/draw/drawoverworld.c b/src/duskraylib/display/draw/drawoverworld.c index 3f1f7b7..051d359 100644 --- a/src/duskraylib/display/draw/drawoverworld.c +++ b/src/duskraylib/display/draw/drawoverworld.c @@ -47,6 +47,7 @@ void drawOverworldDraw(void) { }; uint8_t colorCount = sizeof(colors) / sizeof(Color); + BeginBlendMode(BLEND_ALPHA_PREMULTIPLY); do { // Base layer for(uint8_t i = 0; i < CHUNK_TILE_COUNT; i++) { @@ -98,6 +99,7 @@ void drawOverworldDraw(void) { chunk++; } while(chunk < CHUNK_MAP.chunks + CHUNK_MAP_COUNT); + EndBlendMode(); // Entities entity_t *entity = ENTITIES; diff --git a/src/duskraylib/display/render.c b/src/duskraylib/display/render.c index c3090a5..2c47328 100644 --- a/src/duskraylib/display/render.c +++ b/src/duskraylib/display/render.c @@ -45,7 +45,7 @@ void renderDraw(void) { // Draw the render texture to the screen. BeginDrawing(); - ClearBackground(WHITE); + ClearBackground(RED); // Keep aspect and center the render int32_t renderWidth, renderHeight, renderX, renderY; const int32_t width = GetScreenWidth(); @@ -74,6 +74,8 @@ void renderDraw(void) { void renderDispose(void) { UnloadRenderTexture(RENDER_SCREEN_TEXTURE); + UnloadTexture(RENDER_TILEMAP_TEXTURE); + UnloadTexture(RENDER_ENTITIES_TEXTURE); CloseWindow(); } diff --git a/tools/mapcompile/mapcompile.py b/tools/mapcompile/mapcompile.py index dceab99..7b09840 100644 --- a/tools/mapcompile/mapcompile.py +++ b/tools/mapcompile/mapcompile.py @@ -365,8 +365,11 @@ for chunkY in range(mapHeightInRealChunks): f.write(f" .entities = {{\n") for entity in entities: # Entities are center aligned in tiled. - localX = entity['x'] - (topLeftTileX * TILE_WIDTH) - localY = entity['y'] - (topLeftTileY * TILE_HEIGHT) + localX = round(entity['x'] - (topLeftTileX * TILE_WIDTH)) + localY = round(entity['y'] - (topLeftTileY * TILE_HEIGHT)) + + if 'type' in entity and entity['type'] not in ENTITY_TYPE_MAP: + continue f.write(" {\n") f.write(f" .id = {entity['id']},\n") @@ -379,6 +382,20 @@ for chunkY in range(mapHeightInRealChunks): f.write("};\n\n") +# Determine map global things +playerSpawnX = 0 +playerSpawnY = 0 + +for ob in objectLayer['objects']: + if 'type' not in ob or ob['type'] != 'player_spawn': + continue + if 'x' not in ob or 'y' not in ob: + print(f"Error: Player spawn object does not contain 'x' or 'y' key.") + sys.exit(1) + playerSpawnX = round(ob['x']) + playerSpawnY = round(ob['y']) + break + # Output header file. headerPath = os.path.join(worldDir, "world.h") with open(headerPath, 'w') as f: @@ -404,5 +421,7 @@ with open(headerPath, 'w') as f: f.write("NULL, ") f.write("\n") f.write("};\n\n") + f.write(f"#define WORLD_PLAYER_SPAWN_X {playerSpawnX}\n") + f.write(f"#define WORLD_PLAYER_SPAWN_Y {playerSpawnY}\n") print(f"chunks.h generated at: {headerPath}") \ No newline at end of file