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.
#include "quakedef.h"
-qsocket_t *net_activeSockets = NULL;
-qsocket_t *net_freeSockets = NULL;
-int net_numsockets = 0;
+qsocket_t *net_activeSockets = NULL;
+mempool_t *net_mempool;
qboolean ipxAvailable = false;
qboolean tcpipAvailable = false;
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;
double SetNetTime(void)
{
- net_time = Sys_FloatTime();
+ net_time = Sys_DoubleTime();
return net_time;
}
{
qsocket_t *sock;
- 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 = Mem_Alloc(net_mempool, sizeof(qsocket_t));
// add it to active list
sock->next = net_activeSockets;
Sys_Error ("NET_FreeQSocket: not active\n");
}
- // add it to free list
- sock->next = net_freeSockets;
- net_freeSockets = sock;
- sock->disconnected = true;
+ Mem_Free(sock);
}
Cbuf_AddText ("listen 1\n");
svs.maxclients = n;
- // LordHavoc: resetting deathmatch and coop was silly
- /*
- if (n == 1)
- Cvar_Set ("deathmatch", "0");
- else
- Cvar_Set ("deathmatch", "1");
- */
}
}
slistInProgress = true;
- slistStartTime = Sys_FloatTime();
+ slistStartTime = Sys_DoubleTime();
SchedulePollProcedure(&slistSendProcedure, 0.0);
SchedulePollProcedure(&slistPollProcedure, 0.1);
dfunc.SearchForHosts (true);
}
- if ((Sys_FloatTime() - slistStartTime) < 0.5)
+ if ((Sys_DoubleTime() - slistStartTime) < 0.5)
SchedulePollProcedure(&slistSendProcedure, 0.75);
}
if (! slistSilent)
PrintSlist();
- if ((Sys_FloatTime() - slistStartTime) < 1.5)
+ if ((Sys_DoubleTime() - slistStartTime) < 1.5)
{
SchedulePollProcedure(&slistPollProcedure, 0.1);
return;
r = sfunc.QSendMessage(sock, data);
if (r == 1 && sock->driver)
messagesSent++;
-
+
return r;
}
}
}
- start = Sys_FloatTime();
+ start = Sys_DoubleTime();
while (count)
{
count = 0;
continue;
}
}
- if ((Sys_FloatTime() - start) > blocktime)
+ if ((Sys_DoubleTime() - start) > blocktime)
break;
}
return count;
{
int i;
int controlSocket;
- qsocket_t *s;
i = COM_CheckParm ("-port");
if (!i)
}
net_hostport = DEFAULTnet_hostport;
- if (COM_CheckParm("-listen") || cls.state == ca_dedicated)
+ if (COM_CheckParm("-listen") || cls.state == ca_dedicated || gamemode == GAME_BLOODBATH)
listening = true;
- net_numsockets = svs.maxclientslimit;
- if (cls.state != ca_dedicated)
- net_numsockets++;
SetNetTime();
- 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;
- }
+ net_mempool = Mem_AllocPool("qsocket");
// 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);
net_drivers[net_driverlevel].initialized = false;
}
}
+
+ Mem_FreePool(&net_mempool);
}
{
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)
proc->next = pp;
prev->next = proc;
}
+