From 6f08b7a10706c1edb55e3c1945dce6640eace885 Mon Sep 17 00:00:00 2001 From: DCFApixels <99481254+DCFApixels@users.noreply.github.com> Date: Tue, 22 Apr 2025 11:18:22 +0800 Subject: [PATCH] Update EcsPool.cs --- src/Pools/EcsPool.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index 85b5de1..98f3602 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -48,6 +48,7 @@ namespace DCFApixels.DragonECS //private int[] _denseEntitiesDelayed; private int[] _table; private int _denseEntitiesDelayedCount = 0; + private int _denseEntitiesDelayedPtr = 0; private bool _isDenseEntitiesDelayedValid = false; private int _recycledCount = 0; @@ -342,12 +343,12 @@ namespace DCFApixels.DragonECS { if (_isDenseEntitiesDelayedValid) { return; } //_denseEntitiesDelayedCount = 1; - _denseEntitiesDelayedCount = 1 + _capacity; + _denseEntitiesDelayedCount = 1 | _capacity; //_denseEntitiesDelayed[0] = 0; _table[_capacity] = 0; _recycledCount = 0; //for (int i = 1, jRight = _capacity + _itemsCount + 1; _denseEntitiesDelayedCount <= _itemsCount; i++) - for (int i = 1, jRight = _capacity + _itemsCount + 1, max = _itemsCount + _capacity; _denseEntitiesDelayedCount <= max; i++) + for (int i = 1, jRight = _itemsCount + 1 + _capacity, max = _itemsCount | _capacity; _denseEntitiesDelayedCount <= max; i++) { //if (_sparseEntities[i] == 0) if (_table[i] == 0) @@ -423,14 +424,14 @@ namespace DCFApixels.DragonECS { _recycledCount--; //result = _denseEntitiesDelayed[_denseEntitiesDelayedCount]; - result = _table[_denseEntitiesDelayedCount + _capacity]; + result = _table[_denseEntitiesDelayedCount | _capacity]; } else { result = _denseEntitiesDelayedCount; } //_denseEntitiesDelayed[_denseEntitiesDelayedCount] = entityID; - _table[_denseEntitiesDelayedCount + _capacity] = entityID; + _table[_denseEntitiesDelayedCount | _capacity] = entityID; _itemsCount++; _denseEntitiesDelayedCount++; @@ -468,8 +469,9 @@ namespace DCFApixels.DragonECS } _table = newTable; - _denseEntitiesDelayedCount = 0; _capacity = newSize; + _denseEntitiesDelayedCount = 0; + //_denseEntitiesDelayedPtr = _capacity; _isDenseEntitiesDelayedValid = false; UpdateDenseEntities(); }