1
0

Removed unnessicary indirection from Entity iterator list

This commit is contained in:
Tycho 2014-06-12 18:51:33 +01:00
parent e10940d57c
commit 93d4a8aa92
2 changed files with 6 additions and 6 deletions

View File

@ -86,7 +86,7 @@ cChunk::cChunk(
m_NeighborZP(a_NeighborZP), m_NeighborZP(a_NeighborZP),
m_WaterSimulatorData(a_World->GetWaterSimulator()->CreateChunkData()), m_WaterSimulatorData(a_World->GetWaterSimulator()->CreateChunkData()),
m_LavaSimulatorData (a_World->GetLavaSimulator ()->CreateChunkData()), m_LavaSimulatorData (a_World->GetLavaSimulator ()->CreateChunkData()),
m_EntityTickIteratorData(std::make_pair(false, &m_Entities.end())) m_EntityTickIteratorData(std::make_pair(false, m_Entities.end()))
{ {
if (a_NeighborXM != NULL) if (a_NeighborXM != NULL)
{ {
@ -584,12 +584,12 @@ void cChunk::Tick(float a_Dt)
// Don't tick things queued to be removed // Don't tick things queued to be removed
if (!((*itr)->IsMob())) if (!((*itr)->IsMob()))
{ {
m_EntityTickIteratorData.second = &itr; m_EntityTickIteratorData.second = itr;
(*itr)->Tick(a_Dt, *this); (*itr)->Tick(a_Dt, *this);
if (itr != *m_EntityTickIteratorData.second) if (itr != m_EntityTickIteratorData.second)
{ {
itr = *m_EntityTickIteratorData.second; itr = m_EntityTickIteratorData.second;
} }
else else
{ {
@ -1876,7 +1876,7 @@ void cChunk::RemoveEntity(cEntity * a_Entity)
{ {
if (m_EntityTickIteratorData.first) if (m_EntityTickIteratorData.first)
{ {
*m_EntityTickIteratorData.second = m_Entities.erase(*m_EntityTickIteratorData.second); m_EntityTickIteratorData.second = m_Entities.erase(m_EntityTickIteratorData.second);
} }
else else
{ {

View File

@ -425,7 +425,7 @@ private:
// A critical section is not needed, because all chunk access is protected by its parent ChunkMap's csLayers // A critical section is not needed, because all chunk access is protected by its parent ChunkMap's csLayers
cClientHandleList m_LoadedByClient; cClientHandleList m_LoadedByClient;
cEntityList m_Entities; cEntityList m_Entities;
std::pair<bool, cEntityList::iterator *> m_EntityTickIteratorData; std::pair<bool, cEntityList::iterator> m_EntityTickIteratorData;
cBlockEntityList m_BlockEntities; cBlockEntityList m_BlockEntities;
/** Number of times the chunk has been requested to stay (by various cChunkStay objects); if zero, the chunk can be unloaded */ /** Number of times the chunk has been requested to stay (by various cChunkStay objects); if zero, the chunk can be unloaded */