From 7fa5b3c842c276859c7d4016b9660e1b16ac30c5 Mon Sep 17 00:00:00 2001 From: quou Date: Thu, 4 May 2023 14:21:23 +1000 Subject: Add entity destruction. --- world.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'world.c') diff --git a/world.c b/world.c index b271c3d..3b736e6 100644 --- a/world.c +++ b/world.c @@ -7,11 +7,21 @@ void init_world(World* world) { Entity new_entity(World* world) { Entity e; - e = world->entity_count++; + e = + world->recycle_bin_count > 0 ? + world->recycle_bin[--world->recycle_bin_count] : + world->entity_count++; + world->bitmask[e] = 0; + return e; } +void destroy_entity(World* world, Entity e) { + world->recycle_bin[world->recycle_bin_count++] = e; + world->bitmask[e] = 0; +} + void add_components(World* world, Entity e, CType bits) { world->bitmask[e] |= bits; } -- cgit v1.2.3-54-g00ecf