Simplify entity swap logic in world_entity function

This commit is contained in:
Ukendio 2025-04-22 05:02:33 +02:00
parent de587bd61e
commit cb238ab29e

View file

@ -789,28 +789,21 @@ local function world_entity(world: ecs_world_t, entity: i53?): i53
return entity return entity
end end
if any ~= 0 then -- assert(any ~= 0) should never happen
local e_swap = dense_array[alive_count]
local r_swap = sparse_array[alive_count]
if dense > alive_count then local e_swap = dense_array[alive_count]
r_swap.dense = dense local r_swap = sparse_array[alive_count]
r.dense = alive_count
dense_array[alive_count] = any if dense <= alive_count then
dense_array[dense] = e_swap alive_count += 1
else entity_index.alive_count = alive_count
r_swap.dense = dense
-- alive_count += 1
alive_count += 1
entity_index.alive_count = alive_count
r.dense = alive_count
dense_array[alive_count] = any
dense_array[dense] = e_swap
end
return any
else
error("should never happen")
end end
r_swap.dense = dense
r.dense = alive_count
dense_array[alive_count] = any
dense_array[dense] = e_swap
return any
else else
local range_end = entity_index.range_end local range_end = entity_index.range_end
if range_end then if range_end then