]> git.lizzy.rs Git - minetest.git/blobdiff - src/clientiface.cpp
Rename --do-unittests to --run-unittests as @Zeno- and @sfan5 requested
[minetest.git] / src / clientiface.cpp
index 1383d0b84a5f8b53e01986b928cb8efb4d797650..6180cf5da032a4f1280b21bef3a753b9cbe23d78 100644 (file)
@@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "player.h"
 #include "settings.h"
 #include "mapblock.h"
-#include "connection.h"
+#include "network/connection.h"
 #include "environment.h"
 #include "map.h"
 #include "emerge.h"
@@ -59,7 +59,7 @@ void RemoteClient::ResendBlockIfOnWire(v3s16 p)
        }
 }
 
-void RemoteClient::GetNextBlocks(
+void RemoteClient::GetNextBlocks (
                ServerEnvironment *env,
                EmergeManager * emerge,
                float dtime,
@@ -179,21 +179,18 @@ void RemoteClient::GetNextBlocks(
        s32 nearest_emerged_d = -1;
        s32 nearest_emergefull_d = -1;
        s32 nearest_sent_d = -1;
-       bool queue_is_full = false;
+       //bool queue_is_full = false;
 
        s16 d;
-       for(d = d_start; d <= d_max; d++)
-       {
+       for(d = d_start; d <= d_max; d++) {
                /*
                        Get the border/face dot coordinates of a "d-radiused"
                        box
                */
-               std::list<v3s16> list;
-               getFacePositions(list, d);
+               std::vector<v3s16> list = FacePositionCache::getFacePositions(d);
 
-               std::list<v3s16>::iterator li;
-               for(li=list.begin(); li!=list.end(); ++li)
-               {
+               std::vector<v3s16>::iterator li;
+               for(li = list.begin(); li != list.end(); ++li) {
                        v3s16 p = *li + center;
 
                        /*
@@ -214,7 +211,7 @@ void RemoteClient::GetNextBlocks(
                        // Don't select too many blocks for sending
                        if(num_blocks_selected >= max_simul_dynamic)
                        {
-                               queue_is_full = true;
+                               //queue_is_full = true;
                                goto queue_full_break;
                        }
 
@@ -625,27 +622,30 @@ void ClientInterface::UpdatePlayerList()
        }
 }
 
-void ClientInterface::send(u16 peer_id,u8 channelnum,
-               SharedBuffer<u8> data, bool reliable)
+void ClientInterface::send(u16 peer_id, u8 channelnum,
+               NetworkPacket* pkt, bool reliable, bool deletepkt)
 {
-       m_con->Send(peer_id, channelnum, data, reliable);
+       m_con->Send(peer_id, channelnum, pkt, reliable);
+
+       if (deletepkt)
+               delete pkt;
 }
 
 void ClientInterface::sendToAll(u16 channelnum,
-               SharedBuffer<u8> data, bool reliable)
+               NetworkPacket* pkt, bool reliable)
 {
        JMutexAutoLock clientslock(m_clients_mutex);
        for(std::map<u16, RemoteClient*>::iterator
                i = m_clients.begin();
-               i != m_clients.end(); ++i)
-       {
+               i != m_clients.end(); ++i) {
                RemoteClient *client = i->second;
 
-               if (client->net_proto_version != 0)
-               {
-                       m_con->Send(client->peer_id, channelnum, data, reliable);
+               if (client->net_proto_version != 0) {
+                       m_con->Send(client->peer_id, channelnum, pkt, reliable);
                }
        }
+
+       delete pkt;
 }
 
 RemoteClient* ClientInterface::getClientNoEx(u16 peer_id, ClientState state_min)