mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Speedup attachement handling by replacing vector search by direct array access and secondary child lookup vector
This commit is contained in:
parent
56bf867874
commit
35ec3855f6
4 changed files with 49 additions and 78 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue