int demonum;
// list of demos in loop
char demos[MAX_DEMOS][MAX_DEMONAME];
- // the actively playing demo (set by CL_PlayDemo_f)
+ // the actively playing demo (set by CL_PlayDemo)
char demoname[MAX_QPATH];
// demo recording info must be here, because record is started before
// how long it has been since the previous client frame in real time
// (not game time, for that use cl.time - cl.oldtime)
double realframetime;
-
+
+ // used by cl_nettimesyncboundmode 7
+#define NUM_TS_ERRORS 32 // max 256
+ unsigned char ts_error_num;
+ float ts_error_stor[NUM_TS_ERRORS];
+
// fade var for fading while dead
float deathfade;
char sound_name[MAX_SOUNDS][MAX_QPATH];
// for display on solo scoreboard
- char worldmessage[40]; // map title (not related to filename)
+ char worldmessage[MAX_QPATH]; // map title (not related to filename)
// variants of map name
char worldbasename[MAX_QPATH]; // %s
char worldname[MAX_QPATH]; // maps/%s.bsp
// use cl.scores[cl.playerentity-1].qw_spectator instead
//qbool qw_spectator;
- // last time an input packet was sent
- double lastpackettime;
+ // time accumulated since an input packet was sent
+ float timesincepacket;
+ // how many optimally timed inputs we sent since we received an update from the server
+ uint8_t opt_inputs_since_update;
// movement parameters for client prediction
unsigned int moveflags;
qbool csqc_usecsqclistener;
matrix4x4_t csqc_listenermatrix;
char csqc_printtextbuf[MAX_INPUTLINE];
+ size_t csqc_printtextbuf_len; ///< strlen
// collision culling data
world_t world;
extern cvar_t cl_autofire;
extern cvar_t cl_shownet;
-extern cvar_t cl_nolerp;
extern cvar_t cl_nettimesyncfactor;
extern cvar_t cl_nettimesyncboundmode;
extern cvar_t cl_nettimesyncboundtolerance;
extern cvar_t cl_locs_enable;
+extern cvar_t cl_areagrid_link_SOLID_NOT;
+
extern client_state_t cl;
extern void CL_AllocLightFlash (entity_render_t *ent, matrix4x4_t *matrix, float radius, float red, float green, float blue, float decay, float lifetime, char *cubemapname, int style, int shadowenable, vec_t corona, vec_t coronasizescale, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int flags);
void CL_Shutdown (void);
void CL_Init (void);
+void CL_StartVideo(void);
+
void CL_EstablishConnection(const char *host, int firstarg);
-void CL_Disconnect (void);
+void CL_Disconnect(void);
+void CL_DisconnectEx(qbool kicked, const char *reason, ... );
void CL_Disconnect_f(cmd_state_t *cmd);
void CL_UpdateRenderEntity(entity_render_t *ent);
void CL_CutDemo(unsigned char **buf, fs_offset_t *filesize);
void CL_PasteDemo(unsigned char **buf, fs_offset_t *filesize);
+void CL_PlayDemo(const char *demo);
void CL_NextDemo(void);
void CL_Stop_f(cmd_state_t *cmd);
void CL_Record_f(cmd_state_t *cmd);
extern const char *cl_meshentitynames[NUM_MESHENTITIES];
#define CL_Mesh_Scene() (&cl_meshentitymodels[MESH_SCENE])
#define CL_Mesh_UI() (&cl_meshentitymodels[MESH_UI])
+void CL_MeshEntities_Init(void);
void CL_MeshEntities_Scene_Clear(void);
void CL_MeshEntities_Scene_AddRenderEntity(void);
void CL_MeshEntities_Scene_FinalizeRenderEntity(void);