// (note: qw_download variables are also used)
cl_downloadack_t dp_downloadack[CL_MAX_DOWNLOADACKS];
+ // input sequence numbers are not reset on level change, only connect
+ int movesequence;
+ int servermovesequence;
+
// quakeworld stuff below
// value of "qport" cvar at time of connection
// use pain anim frame if cl.time < this
float faceanimtime;
// for stair smoothing
- float stairoffset;
+ float stairsmoothz;
+ double stairsmoothtime;
// color shifts for damage, powerups
cshift_t cshifts[NUM_CSHIFTS];
// queue of proposed moves
int movement_numqueue;
client_movementqueue_t movement_queue[256];
- int movesequence;
- int servermovesequence;
// whether the replay should allow a jump at the first sequence
qboolean movement_replay_canjump;
// the timestamp of the last two messages
double mtime[2];
- // similar to cl.time but this can go past cl.mtime[0] when packets are
- // not being received, it is still clamped to the cl.mtime[1] to
- // cl.mtime[0] range whenever a packet is received, it just does not stop
- // when interpolation finishes
- double timenonlerp;
-
// clients view of time, time should be between mtime[0] and mtime[1] to
// generate a lerp point for other data, oldtime is the previous frame's
// value of time, frametime is the difference between time and oldtime
+ // note: cl.time may be beyond cl.mtime[0] if packet loss is occuring, it
+ // is only forcefully limited when a packet is received
double time, oldtime;
// how long it has been since the previous client frame in real time
// (not game time, for that use cl.time - cl.oldtime)
int qw_validsequence;
int qw_deltasequence[QW_UPDATE_BACKUP];
+
+ // csqc stuff:
+
+ // collision culling data
+ world_t world;
}
client_state_t;
extern cvar_t cl_shownet;
extern cvar_t cl_nolerp;
+extern cvar_t cl_nettimesyncmode;
extern cvar_t cl_pitchdriftspeed;
extern cvar_t lookspring;
int CL_ReadFromServer (void);
void CL_WriteToServer (void);
-void CL_Move (void);
+void CL_Input (void);
extern qboolean cl_ignoremousemove;