Removed unnessicary indirection from Entity iterator list
This commit is contained in:
parent
e10940d57c
commit
93d4a8aa92
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user