summaryrefslogtreecommitdiff
path: root/src/environment.cpp
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2014-06-08 12:49:06 +0200
committersapier <Sapier at GMX dot net>2014-06-23 00:13:41 +0200
commit35ec3855f689cf2c6b1504a5813b7c3d9697ae14 (patch)
tree508d9d8ecd913c0dfe8442b66819e1e58aa7bbf6 /src/environment.cpp
parent56bf867874bda0a5fc4d34415984241a52083b3b (diff)
downloadminetest-35ec3855f689cf2c6b1504a5813b7c3d9697ae14.tar.gz
minetest-35ec3855f689cf2c6b1504a5813b7c3d9697ae14.tar.bz2
minetest-35ec3855f689cf2c6b1504a5813b7c3d9697ae14.zip
Speedup attachement handling by replacing vector search by direct array access and secondary child lookup vector
Diffstat (limited to 'src/environment.cpp')
-rw-r--r--src/environment.cpp10
1 files changed, 6 insertions, 4 deletions
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()