]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - net_main.c
added viewzoom extension to QC and client (smooth sniper zooming, with sensitivity...
[xonotic/darkplaces.git] / net_main.c
index 39b57cca238ffa7b24afd6ba494254796679222a..516060d4ca245d0deefe528b690813f8a7ecd02c 100644 (file)
@@ -8,7 +8,7 @@ of the License, or (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 See the GNU General Public License for more details.
 
@@ -21,9 +21,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 
-qsocket_t      *net_activeSockets = NULL;
-qsocket_t      *net_freeSockets = NULL;
-int                    net_numsockets = 0;
+qsocket_t *net_activeSockets = NULL;
+//qsocket_t *net_freeSockets = NULL;
+//int net_numsockets = 0;
+mempool_t *net_mempool;
 
 qboolean       ipxAvailable = false;
 qboolean       tcpipAvailable = false;
@@ -56,8 +57,8 @@ int messagesReceived = 0;
 int unreliableMessagesSent = 0;
 int unreliableMessagesReceived = 0;
 
-cvar_t net_messagetimeout = {"net_messagetimeout","300"};
-cvar_t hostname = {"hostname", "UNNAMED"};
+cvar_t net_messagetimeout = {0, "net_messagetimeout","300"};
+cvar_t hostname = {CVAR_SAVE, "hostname", "UNNAMED"};
 
 qboolean       configRestored = false;
 
@@ -72,7 +73,7 @@ double                        net_time;
 
 double SetNetTime(void)
 {
-       net_time = Sys_FloatTime();
+       net_time = Sys_DoubleTime();
        return net_time;
 }
 
@@ -89,15 +90,17 @@ qsocket_t *NET_NewQSocket (void)
 {
        qsocket_t       *sock;
 
-       if (net_freeSockets == NULL)
-               return NULL;
+//     if (net_freeSockets == NULL)
+//             return NULL;
 
        if (net_activeconnections >= svs.maxclients)
                return NULL;
 
        // get one from free list
-       sock = net_freeSockets;
-       net_freeSockets = sock->next;
+//     sock = net_freeSockets;
+//     net_freeSockets = sock->next;
+       // LordHavoc: sockets are dynamically allocated now
+       sock = Mem_Alloc(net_mempool, sizeof(qsocket_t));
 
        // add it to active list
        sock->next = net_activeSockets;
@@ -144,9 +147,11 @@ void NET_FreeQSocket(qsocket_t *sock)
        }
 
        // add it to free list
-       sock->next = net_freeSockets;
-       net_freeSockets = sock;
-       sock->disconnected = true;
+//     sock->next = net_freeSockets;
+//     net_freeSockets = sock;
+//     sock->disconnected = true;
+       // LordHavoc: sockets are dynamically allocated now
+       Mem_Free(sock);
 }
 
 
@@ -284,7 +289,7 @@ void NET_Slist_f (void)
        }
 
        slistInProgress = true;
-       slistStartTime = Sys_FloatTime();
+       slistStartTime = Sys_DoubleTime();
 
        SchedulePollProcedure(&slistSendProcedure, 0.0);
        SchedulePollProcedure(&slistPollProcedure, 0.1);
@@ -304,7 +309,7 @@ static void Slist_Send(void)
                dfunc.SearchForHosts (true);
        }
 
-       if ((Sys_FloatTime() - slistStartTime) < 0.5)
+       if ((Sys_DoubleTime() - slistStartTime) < 0.5)
                SchedulePollProcedure(&slistSendProcedure, 0.75);
 }
 
@@ -323,7 +328,7 @@ static void Slist_Poll(void)
        if (! slistSilent)
                PrintSlist();
 
-       if ((Sys_FloatTime() - slistStartTime) < 1.5)
+       if ((Sys_DoubleTime() - slistStartTime) < 1.5)
        {
                SchedulePollProcedure(&slistPollProcedure, 0.1);
                return;
@@ -556,7 +561,7 @@ int NET_SendMessage (qsocket_t *sock, sizebuf_t *data)
        r = sfunc.QSendMessage(sock, data);
        if (r == 1 && sock->driver)
                messagesSent++;
-       
+
        return r;
 }
 
@@ -641,7 +646,7 @@ int NET_SendToAll(sizebuf_t *data, int blocktime)
                }
        }
 
-       start = Sys_FloatTime();
+       start = Sys_DoubleTime();
        while (count)
        {
                count = 0;
@@ -676,7 +681,7 @@ int NET_SendToAll(sizebuf_t *data, int blocktime)
                                continue;
                        }
                }
-               if ((Sys_FloatTime() - start) > blocktime)
+               if ((Sys_DoubleTime() - start) > blocktime)
                        break;
        }
        return count;
@@ -695,7 +700,8 @@ void NET_Init (void)
 {
        int                     i;
        int                     controlSocket;
-       qsocket_t       *s;
+       // LordHavoc: sockets are dynamically allocated now
+       //qsocket_t     *s;
 
        i = COM_CheckParm ("-port");
        if (!i)
@@ -714,22 +720,28 @@ void NET_Init (void)
 
        if (COM_CheckParm("-listen") || cls.state == ca_dedicated)
                listening = true;
-       net_numsockets = svs.maxclientslimit;
-       if (cls.state != ca_dedicated)
-               net_numsockets++;
+       // LordHavoc: sockets are dynamically allocated now
+       //net_numsockets = svs.maxclientslimit;
+       //if (cls.state != ca_dedicated)
+       //      net_numsockets++;
 
        SetNetTime();
 
+       net_mempool = Mem_AllocPool("qsocket");
+       // LordHavoc: sockets are dynamically allocated now
+       /*
+       s = Mem_Alloc(net_mempool, net_numsockets * sizeof(qsocket_t));
        for (i = 0; i < net_numsockets; i++)
        {
-               s = (qsocket_t *)Hunk_AllocName(sizeof(qsocket_t), "qsocket");
                s->next = net_freeSockets;
                net_freeSockets = s;
                s->disconnected = true;
+               s++;
        }
+       */
 
        // allocate space for network message buffer
-       SZ_Alloc (&net_message, NET_MAXMESSAGE);
+       SZ_Alloc (&net_message, NET_MAXMESSAGE, "net_message");
 
        Cvar_RegisterVariable (&net_messagetimeout);
        Cvar_RegisterVariable (&hostname);
@@ -783,6 +795,8 @@ void                NET_Shutdown (void)
                        net_drivers[net_driverlevel].initialized = false;
                }
        }
+
+       Mem_FreePool(&net_mempool);
 }
 
 
@@ -811,7 +825,7 @@ void SchedulePollProcedure(PollProcedure *proc, double timeOffset)
 {
        PollProcedure *pp, *prev;
 
-       proc->nextTime = Sys_FloatTime() + timeOffset;
+       proc->nextTime = Sys_DoubleTime() + timeOffset;
        for (pp = pollProcedureList, prev = NULL; pp; pp = pp->next)
        {
                if (pp->nextTime >= proc->nextTime)