QueuedMeshUpdate *q = m_queue_in.pop();
if(q == NULL)
{
- sleep_ms(50);
+ sleep_ms(3);
continue;
}
+ ScopeProfiler sp(&g_profiler, "mesh make");
+
scene::SMesh *mesh_new = NULL;
mesh_new = makeMapBlockMesh(q->data);
g_settings.getFloat("client_delete_unused_sectors_timeout");
// Delete sector blocks
- /*u32 num = m_env.getMap().deleteUnusedSectors
+ /*u32 num = m_env.getMap().unloadUnusedData
(delete_unused_sectors_timeout,
true, &deleted_blocks);*/
// Delete whole sectors
- u32 num = m_env.getMap().deleteUnusedSectors
+ u32 num = m_env.getMap().unloadUnusedData
(delete_unused_sectors_timeout,
false, &deleted_blocks);
SharedBuffer<u8> data(2+1+PLAYERNAME_SIZE+PASSWORD_SIZE);
writeU16(&data[0], TOSERVER_INIT);
writeU8(&data[2], SER_FMT_VER_HIGHEST);
+
memset((char*)&data[3], 0, PLAYERNAME_SIZE);
snprintf((char*)&data[3], PLAYERNAME_SIZE, "%s", myplayer->getName());
+
+ /*dstream<<"Client: password hash is \""<<m_password<<"\""
+ <<std::endl;*/
+
+ memset((char*)&data[23], 0, PASSWORD_SIZE);
snprintf((char*)&data[23], PASSWORD_SIZE, "%s", m_password.c_str());
// Send as unreliable
// to be processed even if the serialisation format has
// not been agreed yet, the same as TOCLIENT_INIT.
m_access_denied = true;
+ m_access_denied_reason = L"Unknown";
+ if(datasize >= 4)
+ {
+ std::string datastring((char*)&data[2], datasize-2);
+ std::istringstream is(datastring, std::ios_base::binary);
+ m_access_denied_reason = deSerializeWideString(is);
+ }
return;
}
*/
//m_env.getClientMap().updateMeshes(block->getPos(), getDayNightRatio());
-
+ /*
+ Add it to mesh update queue and set it to be acknowledged after update.
+ */
addUpdateMeshTaskWithEdge(p, true);
}
else if(command == TOCLIENT_PLAYERPOS)