aboutsummaryrefslogtreecommitdiff
path: root/src/ecs.lua
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-03-13 15:44:03 -0400
committeriamcheeseman <[email protected]>2026-03-13 15:44:03 -0400
commit88d65e65eb92c8e086bdbb7d938bbb44522caf6f (patch)
tree42919c797c6e3f75d387aa887fb67205b733c59e /src/ecs.lua
parentfca851822e2f3138d0e15c93768ebc4937a0b23a (diff)
Fix crash when adding entities after comp removal
Diffstat (limited to 'src/ecs.lua')
-rw-r--r--src/ecs.lua7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/ecs.lua b/src/ecs.lua
index 373d338..a1dab27 100644
--- a/src/ecs.lua
+++ b/src/ecs.lua
@@ -83,9 +83,10 @@ local function remove_comp(ent, comp)
local lastid = mask.dense[mask.size]
mask.sparse[ent.id] = nil
- mask.sparse[lastid] = index
-
- mask.dense[index] = mask.dense[mask.size]
+ if ent.id ~= lastid then
+ mask.sparse[lastid] = index
+ mask.dense[index] = mask.dense[mask.size]
+ end
mask.dense[mask.size] = nil
mask.size = mask.size - 1
end