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 e_swap = dense_array[alive_count]
local r_swap = sparse_array[alive_count] local r_swap = sparse_array[alive_count]
if dense > alive_count then if dense <= alive_count then
r_swap.dense = dense
r.dense = alive_count
dense_array[alive_count] = any
dense_array[dense] = e_swap
else
r_swap.dense = dense
-- alive_count += 1
alive_count += 1 alive_count += 1
entity_index.alive_count = alive_count entity_index.alive_count = alive_count
end
r_swap.dense = dense
r.dense = alive_count r.dense = alive_count
dense_array[alive_count] = any dense_array[alive_count] = any
dense_array[dense] = e_swap dense_array[dense] = e_swap
end
return any return any
else
error("should never happen")
end
else else
local range_end = entity_index.range_end local range_end = entity_index.range_end
if range_end then if range_end then