Merge branch 'master' of https://github.com/erlehmann/minetest-delta.git into upstrea...
[oweals/minetest.git] / src / client.cpp
index 5869dc77bbab1714d1e12d6395b890811578327a..e86b3a4f85ad0fafd9575022c46300372e65a193 100644 (file)
@@ -39,10 +39,12 @@ void * MeshUpdateThread::Thread()
                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);
 
@@ -218,12 +220,12 @@ void Client::step(float dtime)
                                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);
 
@@ -306,8 +308,14 @@ void Client::step(float dtime)
                        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
@@ -610,6 +618,13 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                // 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;
        }
 
@@ -780,7 +795,9 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
                */
 
                //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)