diff --git a/source/ecs/manager.d b/source/ecs/manager.d index 7c10e5e..0c6d0aa 100644 --- a/source/ecs/manager.d +++ b/source/ecs/manager.d @@ -1941,16 +1941,19 @@ class EntityManager foreach (block; thread.blocks_to_update) { EntityInfo* info = block.type_info; - if(info.add_listeners) - { - callAddEntityListeners(info,block,block.entities_count,block.entities_count+block.added_count); - } + ushort entities_count = block.entities_count; block.entities_count += block.added_count; if (block.entities_count > block.type_info.max_entities) { block.entities_count = block.type_info.max_entities; } block.added_count.atomicStore(cast(ushort) 0); + + if(info.add_listeners) + { + callAddEntityListeners(info,block,entities_count,block.entities_count); + } + } thread.blocks_to_update.clear(); }