static int recoversendflags[MAX_EDICTS];
csqcentityframedb_t *d;
+ if(client->csqcentityframe_lastreset < 0)
+ return;
+ if(framenum < client->csqcentityframe_lastreset)
+ return; // no action required, as we resent that data anyway
+
// is our frame out of history?
ringfirst = client->csqcentityframehistory_next; // oldest entry
ringlast = (ringfirst + NUM_CSQCENTITYDB_FRAMES - 1) % NUM_CSQCENTITYDB_FRAMES; // most recently added entry
Con_DPrintf("Lost frame = %d\n", framenum);
Con_DPrintf("Entity DB = %d to %d\n", client->csqcentityframehistory[ringfirst].framenum, client->csqcentityframehistory[ringlast].framenum);
EntityFrameCSQC_LostAllFrames(client);
+ client->csqcentityframe_lastreset = -1;
}
return;
}
int dbframe = EntityFrameCSQC_AllocFrame(client, framenum);
csqcentityframedb_t *db = &client->csqcentityframehistory[dbframe];
+ if(client->csqcentityframe_lastreset < 0)
+ client->csqcentityframe_lastreset = framenum;
+
maxsize -= 24; // always fit in an empty svc_entities message (for packet loss detection!)
// if this server progs is not CSQC-aware, return early
if (bits & QW_CM_UP)
MSG_ReadShort(); // cmd->upmove
if (bits & QW_CM_BUTTONS)
- MSG_ReadByte(); // cmd->buttons
+ (void) MSG_ReadByte(); // cmd->buttons
if (bits & QW_CM_IMPULSE)
- MSG_ReadByte(); // cmd->impulse
- MSG_ReadByte(); // cmd->msec
+ (void) MSG_ReadByte(); // cmd->impulse
+ (void) MSG_ReadByte(); // cmd->msec
}
if (playerflags & QW_PF_VELOCITY1)
velocity[0] = MSG_ReadShort();