Only max_id and alive_count if range_begin is larger than built in

ranges
This commit is contained in:
Ukendio 2025-04-25 23:05:51 +02:00
parent d237b176e6
commit 1002139fc9

View file

@ -746,20 +746,20 @@ local function world_range(world: ecs_world_t, range_begin: number, range_end: n
entity_index.range_end = range_end entity_index.range_end = range_end
local max_id = entity_index.max_id local max_id = entity_index.max_id
if range_begin > max_id then
local dense_array = entity_index.dense_array local dense_array = entity_index.dense_array
local sparse_array = entity_index.sparse_array local sparse_array = entity_index.sparse_array
if range_begin > max_id then
for i = max_id, range_begin - 1 do for i = max_id, range_begin - 1 do
dense_array[i] = 0 dense_array[i] = 0
sparse_array[i] = NULL_RECORD sparse_array[i] = NULL_RECORD
end end
sparse_array[range_begin] = { dense = 0 } :: ecs_record_t sparse_array[range_begin] = { dense = 0 } :: ecs_record_t
end
entity_index.max_id = range_begin - 1 entity_index.max_id = range_begin - 1
entity_index.alive_count = range_begin - 1 entity_index.alive_count = range_begin - 1
end end
end
local function world_entity(world: ecs_world_t, entity: i53?): i53 local function world_entity(world: ecs_world_t, entity: i53?): i53
local entity_index = world.entity_index local entity_index = world.entity_index