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_WaterSimulatorData(a_World->GetWaterSimulator()->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)
{
@ -584,12 +584,12 @@ void cChunk::Tick(float a_Dt)
// Don't tick things queued to be removed
if (!((*itr)->IsMob()))
{
m_EntityTickIteratorData.second = &itr;
m_EntityTickIteratorData.second = itr;
(*itr)->Tick(a_Dt, *this);
if (itr != *m_EntityTickIteratorData.second)
if (itr != m_EntityTickIteratorData.second)
{
itr = *m_EntityTickIteratorData.second;
itr = m_EntityTickIteratorData.second;
}
else
{
@ -1876,7 +1876,7 @@ void cChunk::RemoveEntity(cEntity * a_Entity)
{
if (m_EntityTickIteratorData.first)
{
*m_EntityTickIteratorData.second = m_Entities.erase(*m_EntityTickIteratorData.second);
m_EntityTickIteratorData.second = m_Entities.erase(m_EntityTickIteratorData.second);
}
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
cClientHandleList m_LoadedByClient;
cEntityList m_Entities;
std::pair<bool, cEntityList::iterator *> m_EntityTickIteratorData;
std::pair<bool, cEntityList::iterator> m_EntityTickIteratorData;
cBlockEntityList m_BlockEntities;
/** Number of times the chunk has been requested to stay (by various cChunkStay objects); if zero, the chunk can be unloaded */