1
0

Disabeling current mob spawning and tick

This commit is contained in:
mgueydan 2013-09-08 01:43:55 +02:00
parent caa54af546
commit 04151677d5
3 changed files with 13 additions and 8 deletions

View File

@ -533,10 +533,14 @@ void cChunk::Tick(float a_Dt)
m_IsDirty = (*itr)->Tick(a_Dt, *this) | m_IsDirty; m_IsDirty = (*itr)->Tick(a_Dt, *this) | m_IsDirty;
} }
// Tick all entities in this chunk: // Tick all entities in this chunk (except mobs):
for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr) for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr)
{ {
(*itr)->Tick(a_Dt, *this); // Mobs are tickes inside MobTick (as we don't have to tick them if they are far away from players)
if (!((*itr)->IsMob()))
{
(*itr)->Tick(a_Dt, *this);
}
} // for itr - m_Entitites[] } // for itr - m_Entitites[]
// Remove all entities that were scheduled for removal: // Remove all entities that were scheduled for removal:

View File

@ -622,7 +622,7 @@ void cWorld::Tick(float a_Dt)
UnloadUnusedChunks(); UnloadUnusedChunks();
} }
TickSpawnMobs(a_Dt); TickMobs(a_Dt);
std::vector<int> m_RSList_copy(m_RSList); std::vector<int> m_RSList_copy(m_RSList);
@ -707,13 +707,13 @@ void cWorld::TickWeather(float a_Dt)
void cWorld::TickSpawnMobs(float a_Dt) void cWorld::TickMobs(float a_Dt)
{ {
if (!m_bAnimals || (m_WorldAge - m_LastSpawnMonster <= m_SpawnMonsterRate)) if (!m_bAnimals)
{ {
return; return;
} }
/*
cMobCensus MobCensus; cMobCensus MobCensus;
m_ChunkMap->CollectMobCensus(MobCensus); m_ChunkMap->CollectMobCensus(MobCensus);
MobCensus.logd(); MobCensus.logd();
@ -810,6 +810,7 @@ void cWorld::TickSpawnMobs(float a_Dt)
// A proper mob type was selected, now spawn the mob: // A proper mob type was selected, now spawn the mob:
SpawnMob(SpawnPos.x, SpawnPos.y, SpawnPos.z, (cMonster::eType)MobType); SpawnMob(SpawnPos.x, SpawnPos.y, SpawnPos.z, (cMonster::eType)MobType);
} }
*/
} }

View File

@ -711,8 +711,8 @@ private:
/// Handles the weather in each tick /// Handles the weather in each tick
void TickWeather(float a_Dt); void TickWeather(float a_Dt);
/// Handles the mob spawning each tick /// Handles the mob spawning/moving/destroying each tick
void TickSpawnMobs(float a_Dt); void TickMobs(float a_Dt);
/// Executes all tasks queued onto the tick thread /// Executes all tasks queued onto the tick thread
void TickQueuedTasks(void); void TickQueuedTasks(void);