diff options
| author | iamcheeseman <[email protected]> | 2026-03-13 15:44:03 -0400 |
|---|---|---|
| committer | iamcheeseman <[email protected]> | 2026-03-13 15:44:03 -0400 |
| commit | 88d65e65eb92c8e086bdbb7d938bbb44522caf6f (patch) | |
| tree | 42919c797c6e3f75d387aa887fb67205b733c59e /src/ecs.lua | |
| parent | fca851822e2f3138d0e15c93768ebc4937a0b23a (diff) | |
Fix crash when adding entities after comp removal
Diffstat (limited to 'src/ecs.lua')
| -rw-r--r-- | src/ecs.lua | 7 |
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 |
