From 35ec3855f689cf2c6b1504a5813b7c3d9697ae14 Mon Sep 17 00:00:00 2001 From: sapier Date: Sun, 8 Jun 2014 12:49:06 +0200 Subject: Speedup attachement handling by replacing vector search by direct array access and secondary child lookup vector --- src/environment.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/environment.cpp') diff --git a/src/environment.cpp b/src/environment.cpp index fa7ce2ae5..8103998c3 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -1379,7 +1379,7 @@ bool ServerEnvironment::addActiveObjectAsStatic(ServerActiveObject *obj) { assert(obj); - v3f objectpos = obj->getBasePosition(); + v3f objectpos = obj->getBasePosition(); // The block in which the object resides in v3s16 blockpos_o = getNodeBlockPos(floatToInt(objectpos, BS)); @@ -1591,7 +1591,7 @@ u16 ServerEnvironment::addActiveObjectRaw(ServerActiveObject *object, object->m_static_block = blockpos; if(set_changed) - block->raiseModified(MOD_STATE_WRITE_NEEDED, + block->raiseModified(MOD_STATE_WRITE_NEEDED, "addActiveObjectRaw"); } else { v3s16 p = floatToInt(objectpos, BS); @@ -1828,7 +1828,7 @@ void ServerEnvironment::activateObjects(MapBlock *block, u32 dtime_s) If force_delete is set, active object is deleted nevertheless. It shall only be set so in the destructor of the environment. - If block wasn't generated (not in memory or on disk), + If block wasn't generated (not in memory or on disk), */ void ServerEnvironment::deactivateFarObjects(bool force_delete) { @@ -1849,7 +1849,7 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete) continue; u16 id = i->first; - v3f objectpos = obj->getBasePosition(); + v3f objectpos = obj->getBasePosition(); // The block in which the object resides in v3s16 blockpos_o = getNodeBlockPos(floatToInt(objectpos, BS)); @@ -2078,6 +2078,8 @@ ClientEnvironment::ClientEnvironment(ClientMap *map, scene::ISceneManager *smgr, m_gamedef(gamedef), m_irr(irr) { + char zero = 0; + memset(m_attachements, zero, sizeof(m_attachements)); } ClientEnvironment::~ClientEnvironment() -- cgit v1.2.3