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
sv_player->v->idealpitch = -dir * sv_idealpitchscale.value;
}
-#if 0
-static vec3_t wishdir;
+#if 1
+static vec3_t wishdir, forward, right, up;
static float wishspeed;
static qboolean onground;
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);
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)
{