aboutsummaryrefslogtreecommitdiff
path: root/src/tiled/tiled.odin
diff options
context:
space:
mode:
authorXander Swan <[hidden email]>2025-12-23 21:35:30 -0500
committerXander Swan <[hidden email]>2025-12-23 21:35:30 -0500
commit1754937f0721f304f742575e9a27fc7ba10d8374 (patch)
treedf439bfd9733d9553ce867df6f69e5348161801c /src/tiled/tiled.odin
parent673c84b1e56f65bcda448b2304e98ff4831100fd (diff)
Add temp tile collisions
Diffstat (limited to 'src/tiled/tiled.odin')
-rw-r--r--src/tiled/tiled.odin28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tiled/tiled.odin b/src/tiled/tiled.odin
index e1627a5..e01f6c5 100644
--- a/src/tiled/tiled.odin
+++ b/src/tiled/tiled.odin
@@ -344,6 +344,34 @@ convert_json_map :: proc(jmap: Json_Map, tmap: ^Map, path: string) -> Error {
return .NONE
}
+Map_Iterate_Callback :: proc(i32, i32, Tile, Tile_Set)
+
+iterate_map_tiles :: proc(tmap: Map, callback: Map_Iterate_Callback) {
+ for layer in tmap.layers {
+ tile_layer, ok := layer.layer.(Tile_Layer)
+ if !ok {
+ continue
+ }
+
+ x: i32 = 0
+ y: i32 = 0
+
+ for cell in tile_layer.data {
+ if cell != 0 {
+ tile := tmap.tiles[cell - 1]
+ tile_set := tmap.tile_sets[tile.tile_set]
+ callback(x, y, tile, tile_set)
+ }
+
+ x += tmap.tile_width
+ if x > (tmap.width - 1) * tmap.tile_width {
+ x = 0
+ y += tmap.tile_height
+ }
+ }
+ }
+}
+
draw_map :: proc(tmap: Map) {
for layer in tmap.layers {
tile_layer, ok := layer.layer.(Tile_Layer)