diff --git a/libs/ecs/ecs.c b/libs/ecs/ecs.c index 291271bd1..3466e4423 100644 --- a/libs/ecs/ecs.c +++ b/libs/ecs/ecs.c @@ -205,6 +205,9 @@ ECS_NewEntity (ecs_registry_t *registry) VISIBLE void ECS_DelEntity (ecs_registry_t *registry, uint32_t ent) { + if (!ECS_EntValid (ent, registry)) { + return; + } if (registry->locked) { // the registry is being deleted and mass entity and component // deletions are going on diff --git a/libs/ecs/hierarchy.c b/libs/ecs/hierarchy.c index 58caca7ff..58328978a 100644 --- a/libs/ecs/hierarchy.c +++ b/libs/ecs/hierarchy.c @@ -482,6 +482,7 @@ Hierref_DestroyComponent (void *href) { hierref_t ref = *(hierref_t *) href; if (ref.hierarchy) { + ref.hierarchy->ent[ref.index] = -1; Hierarchy_RemoveHierarchy (ref.hierarchy, ref.index, 1); if (!ref.hierarchy->num_objects) { Hierarchy_Delete (ref.hierarchy);