diff --git a/source/ecs/id_manager.d b/source/ecs/id_manager.d index da31560..ab3a076 100644 --- a/source/ecs/id_manager.d +++ b/source/ecs/id_manager.d @@ -7,10 +7,10 @@ struct IDManager { EntityID getNewID() { - while(m_next_id >= m_ids_array.length)m_ids_array.add(Data()); + if(m_next_id >= m_ids_array.length)m_ids_array.add(Data()); EntityID id; id.id = m_next_id; - id.counter = m_ids_array[m_next_id].counter++; + id.counter = ++m_ids_array[m_next_id].counter; m_next_id = m_ids_array[m_next_id].next_id; if(m_next_id == uint.max)m_next_id = cast(uint)m_ids_array.length; return id;