diff --git a/src/game/server/gameworld.cpp b/src/game/server/gameworld.cpp index e7f5554db..c61a40ebe 100644 --- a/src/game/server/gameworld.cpp +++ b/src/game/server/gameworld.cpp @@ -106,13 +106,25 @@ void CGameWorld::RemoveEntity(CEntity *pEnt) // void CGameWorld::Snap(int SnappingClient) { - for(auto *pEnt : m_apFirstEntityTypes) - for(; pEnt;) + for(CEntity *pEnt = m_apFirstEntityTypes[ENTTYPE_CHARACTER]; pEnt;) + { + m_pNextTraverseEntity = pEnt->m_pNextTypeEntity; + pEnt->Snap(SnappingClient); + pEnt = m_pNextTraverseEntity; + } + + for(int i = 0; i < NUM_ENTTYPES; i++) + { + if(i == ENTTYPE_CHARACTER) + continue; + + for(CEntity *pEnt = m_apFirstEntityTypes[i]; pEnt;) { m_pNextTraverseEntity = pEnt->m_pNextTypeEntity; pEnt->Snap(SnappingClient); pEnt = m_pNextTraverseEntity; } + } } void CGameWorld::Reset()