diff --git a/entity.odin b/entity.odin index 0a19d15..f036f27 100644 --- a/entity.odin +++ b/entity.odin @@ -27,6 +27,11 @@ entity_world_init :: proc() -> Entity_World { return Entity_World{} } +entity_world_destroy :: proc(ew: ^Entity_World) { + for i in 0 ..< MAX_ENTITIES { + path_destroy(&ew.path[i]) + } +} entity_spawn_colonist :: proc(ew: ^Entity_World, pos: Tile_Coord) -> Entity { for i in 0 ..< MAX_ENTITIES { if !ew.active[i] { diff --git a/game.odin b/game.odin index 936f631..0212eb6 100644 --- a/game.odin +++ b/game.odin @@ -147,6 +147,7 @@ game_draw :: proc(g: ^Game) { } game_shutdown :: proc(g: ^Game) { + entity_world_destroy(&g.world.entities) tilemap_destroy(&g.tilemap) } diff --git a/pathfinding.odin b/pathfinding.odin index 528c5f6..5df3342 100644 --- a/pathfinding.odin +++ b/pathfinding.odin @@ -207,3 +207,9 @@ path_reconstruct :: proc( return true } +path_destroy :: proc(path: ^Path) { + delete(path.tiles) + path.tiles = nil + path.count = 0 +} +