tr = SV_Move (top, vec3_origin, vec3_origin, bottom, MOVE_NOMONSTERS, sv_player);
// if looking at a wall, leave ideal the way is was
- if (tr.allsolid)
+ if (tr.startsolid)
return;
// near a dropoff
val->_float = host_client->ping * 1000.0;
// read current angles
- // DPPROTOCOL_VERSION4
+ // PROTOCOL_DARKPLACES4
for (i = 0;i < 3;i++)
angle[i] = MSG_ReadPreciseAngle();
extern void SV_SendServerinfo(client_t *client);
void SV_ReadClientMessage(void)
{
- int cmd, clientnum = host_client->number;
+ int cmd;
char *s;
//MSG_BeginReading ();
for(;;)
{
- if (!(host_client = svs.connectedclients[clientnum]))
+ if (!host_client->active)
{
// a command caused an error
SV_DropClient (false);
if (msg_badread)
{
- Con_Printf ("SV_ReadClientMessage: badread\n");
+ Con_Print("SV_ReadClientMessage: badread\n");
SV_DropClient (false);
return;
}
switch (cmd)
{
default:
- Con_Printf ("SV_ReadClientMessage: unknown command char %i\n", cmd);
+ Con_Printf("SV_ReadClientMessage: unknown command char %i\n", cmd);
SV_DropClient (false);
return;
|| strncasecmp(s, "ping", 4) == 0
|| strncasecmp(s, "ban", 3) == 0
|| strncasecmp(s, "pmodel", 6) == 0
+ || strncasecmp(s, "rate", 4) == 0
|| (gamemode == GAME_NEHAHRA && (strncasecmp(s, "max", 3) == 0 || strncasecmp(s, "monster", 7) == 0 || strncasecmp(s, "scrag", 5) == 0 || strncasecmp(s, "gimme", 5) == 0 || strncasecmp(s, "wraith", 6) == 0))
|| (gamemode != GAME_NEHAHRA && (strncasecmp(s, "god", 3) == 0 || strncasecmp(s, "notarget", 8) == 0 || strncasecmp(s, "fly", 3) == 0 || strncasecmp(s, "give", 4) == 0 || strncasecmp(s, "noclip", 6) == 0)))
Cmd_ExecuteString (s, src_client);
break;
case clc_ackentities:
- //if (dpprotocol == DPPROTOCOL_VERSION1 || dpprotocol == DPPROTOCOL_VERSION2 || dpprotocol == DPPROTOCOL_VERSION3)
- // EntityFrame_AckFrame(&host_client->entitydatabase, MSG_ReadLong());
- //else
- EntityFrame4_AckFrame(host_client->entitydatabase4, MSG_ReadLong());
+ host_client->entitydatabase4->ackframenum = MSG_ReadLong();
+ if (developer_networkentities.integer >= 1)
+ Con_Printf("recv clc_ackentities %i\n", host_client->entitydatabase4->ackframenum);
+ EntityFrame4_AckFrame(host_client->entitydatabase4, host_client->entitydatabase4->ackframenum);
break;
}
}
{
int i;
- for (i = 0;i < MAX_SCOREBOARD;i++)
+ for (i = 0, host_client = svs.clients;i < svs.maxclients;i++, host_client++)
{
- if (!(host_client = svs.connectedclients[i]))
+ if (!host_client->active)
continue;
- sv_player = host_client->edict;
-
if (!host_client->spawned)
{
// clear client movement until a new packet is received
if (sv.frametime)
{
+ sv_player = host_client->edict;
+
// LordHavoc: QuakeC replacement for SV_ClientThink (player movement)
if (SV_PlayerPhysicsQC)
{