From aa524f169cfbe3e8e960cc30c709d5de251c60f0 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Mon, 16 Jun 2025 08:09:14 -0500 Subject: [PATCH] Render tileset test --- data/map project.tiled-session | 20 +- data/map.tmj | 309 +++++++++++--------- data/overworld.tsx | 4 +- data/tilemap.png | Bin 0 -> 1515 bytes data/tilemap.pxo | Bin 0 -> 2422 bytes data/tilemap_test-3990799883.jpg | Bin 104445 -> 0 bytes src/duskraylib/display/draw/drawoverworld.c | 17 +- src/duskraylib/display/render.c | 4 +- src/duskraylib/display/render.h | 2 +- 9 files changed, 217 insertions(+), 139 deletions(-) create mode 100644 data/tilemap.png create mode 100644 data/tilemap.pxo delete mode 100644 data/tilemap_test-3990799883.jpg diff --git a/data/map project.tiled-session b/data/map project.tiled-session index 5b98607..ae8f14b 100644 --- a/data/map project.tiled-session +++ b/data/map project.tiled-session @@ -1,13 +1,31 @@ { - "activeFile": "", + "activeFile": "map.tmj", "expandedProjectPaths": [ + "templates", + "." ], "fileStates": { + "map.tmj": { + "scale": 1.5, + "selectedLayer": 0, + "viewCenter": { + "x": 669.3333333333334, + "y": 305 + } + }, + "overworld.tsx": { + "scaleInDock": 1, + "scaleInEditor": 1 + } }, + "last.imagePath": "/home/yourwishes/htdocs/dusk/data", "last.objectTemplatePath": "/home/yourwishes/htdocs/dusk/data/templates", "openFiles": [ + "map.tmj" ], "project": "map project.tiled-project", "recentFiles": [ + "overworld.tsx", + "map.tmj" ] } diff --git a/data/map.tmj b/data/map.tmj index 5ce74e0..6f12d8d 100644 --- a/data/map.tmj +++ b/data/map.tmj @@ -22,176 +22,220 @@ { "chunks":[ { - "data":[1, 2, 3, 4, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 52, - 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 26, 27, 28, 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":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "height":16, + "width":16, + "x":-16, + "y":0 + }, + { + "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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":0, "y":0 }, { - "data":[1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25], + "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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":16, "y":0 }, { - "data":[0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 19, 20, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 0, - 26, 27, 28, 0, 0, 0, 0, 0, 9, 10, 11, 12, 0, 0, 0, 0], + "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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":32, "y":0 }, { - "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, 1, 2, 3, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":48, "y":0 }, { - "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + "height":16, + "width":16, + "x":-16, + "y":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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":0, "y":16 }, { - "data":[3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":16, "y":16 }, { - "data":[0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28], + "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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":32, "y":16 }, { - "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, 1, 2, 3, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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":[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "height":16, "width":16, "x":48, @@ -199,14 +243,13 @@ }], "height":32, "id":1, - "locked":true, "name":"Base Layer", "opacity":1, - "startx":0, + "startx":-16, "starty":0, "type":"tilelayer", "visible":true, - "width":64, + "width":80, "x":0, "y":0 }], @@ -215,13 +258,13 @@ "orientation":"orthogonal", "renderorder":"right-down", "tiledversion":"1.11.1", - "tileheight":64, + "tileheight":16, "tilesets":[ { "firstgid":1, "source":"overworld.tsx" }], - "tilewidth":64, + "tilewidth":16, "type":"map", "version":"1.10", "width":30 diff --git a/data/overworld.tsx b/data/overworld.tsx index e7fc3a3..22f7090 100644 --- a/data/overworld.tsx +++ b/data/overworld.tsx @@ -1,4 +1,4 @@ - - + + diff --git a/data/tilemap.png b/data/tilemap.png new file mode 100644 index 0000000000000000000000000000000000000000..17cc71ab554b010e8b638dde7a4867be84e16336 GIT binary patch literal 1515 zcmchXi9Ztx0LLe!9K(`h79oV^nC&4O$~7{SBUBj4UXo+vSs_Nt!ld~Ok?E1dFs7Wj zuZ+nNIr_Nr_8fC;GG0BN_fNdv=kxu2|AF7tn0W@**gdq7DMpP0!)C*g>)AY4(wVZBqO+}qx$HYkZjd#v5opr4J?NfNeR)d=d zTUuhAFVPybGdDIi0*rqhw`6XpcYp_U-4%z20x{QaOjN$6!``3@6%J3trOzF1>+!D& z_oKFLZ4kDX!}F+&2vULM1lXmNS}Z)=%u3pV!?c{3?~qnWO~&hgi?mlK?2CIjZ`s)$ zcT1OhRicVm<;f^R_!Uvs+_%;r>*suHr^s;!#oFy&595Vs=Kk_|r26$3(%7B(Q7I&% z4kAyCNwL%-OY5_JT4S?(=mDRDO>9bi5Prfo#)F$25zd8Nk8Y7<|E2g2E>G<5S4%s4 zsVvrwbmsW$+xv{-!om&2q4sdjV-DtdY}@6QHq}`3q+Hl!e)qZdkXu5@QyDw51gJNM zVE}#jd_kV=7vJH8Rcty_u}lba`)TNeN*C9G=!#ARQ{^WF;9oX;Ez@ zAvf_Un#cv3_?Boe!%zUXlx*XY6lrR$t`S?7-Z#HJVVpM+L^JA`PwttdrmnWd^HJ`7 zpPkiT*fPiz4c0cC&p3{?7^8KXauDUCSF=e84jw8vxHm=U{8Kc=JaAAFdKH4FXUqf#v`i`&IMv9x7FDxC zA8`eIq@to;Uyu4IkT^yGOg`&%@N_PE0IB1GbhMu)uPmKQG?W-^5IPIo3NoK^584ku zP@p}0;kg*60#zc8FxD3MSa}L8-2XU^7(63;3j<4^g%by?=^8S7eA>bLO$hH1Z_`q; zUp4%x_0nhE|^BtB~Z8qU;9XfPf340cmwlR?aZ?fkg|@M7XSVuAhp znbUUX_t*Se6XK{30?{Iyq{yPV?e5lN6ATHhPZpZcMu&yTGPu%O6 zZW%$oAEV>a3<^z1U04;8uNV|e=9wBE%QqR5CS?bt60uK+SG)@$l4ju_FHmaLl!dhd zZeB{y>RkuIHwu`!Esv*kO2xhzR zG<}q|u83erSy&rIY!#s0MI_b?pq2AQG3eF)eb3>X@Vl)CjAEZ);z-1A7?ZTjv{|?a z)^T?`iV>pX`o3P?{{k*0>@Opo`FmPeCkUuan(_NCSI_1t)e~l1Su~?LZNgO6xG&q7 zYl8qE9K^e>>a!JHu*8_eedJn{lqNV}r|8ID0KTI=fiYt!2C~H1?Z-Aqni*1!P GhVU;Od%0o& literal 0 HcmV?d00001 diff --git a/data/tilemap.pxo b/data/tilemap.pxo new file mode 100644 index 0000000000000000000000000000000000000000..f89df41d2c4bef1c4fc69711c8fab91d274407a3 GIT binary patch literal 2422 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

5m|7=;7z-2Ga1e_@h0U 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 sxytiles[i]; if(tile == 0) continue; // Skip empty tiles + uint32_t tilemapIndex = tile - 1; // Convert to zero-based index uint32_t x = (uint32_t)chunk->x * CHUNK_WIDTH * TILE_WIDTH + (i % CHUNK_WIDTH) * TILE_WIDTH; uint32_t y = (uint32_t)chunk->y * CHUNK_HEIGHT * TILE_HEIGHT + (i / CHUNK_WIDTH) * TILE_HEIGHT; + uint32_t tilemapX = (tilemapIndex % (RENDER_TILEMAP_TEXTURE.width / TILE_WIDTH)) * TILE_WIDTH; + uint32_t tilemapY = (tilemapIndex / (RENDER_TILEMAP_TEXTURE.width / TILE_WIDTH)) * TILE_HEIGHT; - DrawRectangle(x, y, TILE_WIDTH, TILE_HEIGHT, colors[tile % colorCount]); + DrawTextureRec( + RENDER_TILEMAP_TEXTURE, + (Rectangle){ + tilemapX, + tilemapY, + TILE_WIDTH, + TILE_HEIGHT + }, + (Vector2){ x, y }, + WHITE + ); + + // DrawRectangle(x, y, TILE_WIDTH, TILE_HEIGHT, colors[tile % colorCount]); } // DrawRectangle( diff --git a/src/duskraylib/display/render.c b/src/duskraylib/display/render.c index 62404cc..ece27de 100644 --- a/src/duskraylib/display/render.c +++ b/src/duskraylib/display/render.c @@ -8,9 +8,10 @@ #include "render.h" #include "display/draw/drawscene.h" #include "display/draw/drawoverworld.h" - +#include "assert/assert.h" RenderTexture2D RENDER_SCREEN_TEXTURE; +Texture2D RENDER_TILEMAP_TEXTURE; void renderInit(void) { InitWindow( @@ -26,6 +27,7 @@ void renderInit(void) { ); RENDER_SCREEN_TEXTURE = LoadRenderTexture(RENDER_WIDTH, RENDER_HEIGHT); + RENDER_TILEMAP_TEXTURE = LoadTexture("../data/tilemap.png"); drawOverworldInit(); } diff --git a/src/duskraylib/display/render.h b/src/duskraylib/display/render.h index 7847270..7d03bf6 100644 --- a/src/duskraylib/display/render.h +++ b/src/duskraylib/display/render.h @@ -10,4 +10,4 @@ #include "display/renderbase.h" extern RenderTexture2D RENDER_SCREEN_TEXTURE; -extern Camera2D RENDER_CAMERA; \ No newline at end of file +extern Texture2D RENDER_TILEMAP_TEXTURE; \ No newline at end of file