From 65a2ceda55198dab3bab75c06c0d50adeb0a1101 Mon Sep 17 00:00:00 2001 From: Xander Swan <[hidden email]> Date: Thu, 1 Jan 2026 18:32:20 -0500 Subject: lots of changes + player dash --- src/platform.odin | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/platform.odin') diff --git a/src/platform.odin b/src/platform.odin index 306df3b..bc0e103 100644 --- a/src/platform.odin +++ b/src/platform.odin @@ -2,6 +2,7 @@ package demonchime import "draw" import "phys" +import "tiled" Platform :: struct { handle: Entity_Handle, @@ -24,3 +25,35 @@ draw_platforms :: proc() { } draw.renderer.tint = {1, 1, 1, 1} } + +clear_platforms :: proc() { + iter := iter_entity_list(state.platform_list) + for p in entity_list_iter(&iter) { + phys.remove_body(p.body) + delete_entity(&state.platform_list, p.handle) + } +} + +setup_map_collisions :: proc() { + clear_platforms() + + make_map_collisions :: proc( + x: i32, + y: i32, + tile: tiled.Tile, + tile_set: tiled.Tile_Set, + ) { + objs, is_object_layer := tile.object_group.layer.(tiled.Object_Layer) + if !is_object_layer { + return + } + + for obj in objs { + make_platform({ + Vec2{f32(x), f32(y)} + obj.position, + obj.size, + }) + } + } + tiled.iterate_map_tiles(tiled.current_room.tmap, make_map_collisions) +} -- cgit v1.3-2-g0d8e