From 97e7909e4d730524b3ea319fa86520ed3bb3df5c Mon Sep 17 00:00:00 2001 From: iamcheeseman <[hidden email]> Date: Fri, 27 Feb 2026 23:23:16 -0500 Subject: use odin's new handle maps rather than my own --- src/platform.odin | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/platform.odin') diff --git a/src/platform.odin b/src/platform.odin index b12551f..e495b36 100644 --- a/src/platform.odin +++ b/src/platform.odin @@ -2,32 +2,35 @@ package demonchime import "fw" import "phys" +import hm "core:container/handle_map" Platform :: struct { - handle: Entity_Handle, + handle: Handle, body: phys.Body_Handle, } -make_platform :: proc(rect: Rect) -> (Entity_Handle, ^Platform) { - handle := phys.make_body(transmute(phys.Rect)rect, layers = {.Hard}) - return make_entity(&state.platform_list, Platform{body = handle}) +make_platform :: proc(rect: Rect) -> (Handle, ^Platform) { + phys_handle := phys.make_body(transmute(phys.Rect)rect, layers = {.Hard}) + handle := hm.add(&state.platform_list, Platform{body = phys_handle}) + return handle, hm.get(&state.platform_list, handle) } draw_platforms :: proc() { - iter := iter_entity_list(state.platform_list) + iter := hm.iterator_make(&state.platform_list) color := Color{1, 0, 0, 0.25} - for p in entity_list_iter(&iter) { + for p, _ in hm.iterate(&iter) { rect := phys.get_rect(p.body) fw.draw_rect(rect.start, rect.size, color = color) } } clear_platforms :: proc() { - iter := iter_entity_list(state.platform_list) - for p in entity_list_iter(&iter) { + iter := hm.iterator_make(&state.platform_list) + for p, _ in hm.iterate(&iter) { phys.remove_body(p.body) - delete_entity(&state.platform_list, p.handle) } + + hm.clear(&state.platform_list) } setup_room_collisions :: proc() { -- cgit v1.3-2-g0d8e