}
entity_t;
-typedef struct usercmd_s
-{
- vec3_t viewangles;
-
-// intended velocities
- float forwardmove;
- float sidemove;
- float upmove;
-
- vec3_t cursor_screen;
- vec3_t cursor_start;
- vec3_t cursor_end;
- vec3_t cursor_impact;
- vec3_t cursor_normal;
- vec_t cursor_fraction;
- int cursor_entitynumber;
-
- double time; // time the move is executed for (cl_movement: clienttime, non-cl_movement: receivetime)
- double receivetime; // time the move was received at
- double clienttime; // time to which server state the move corresponds to
- int msec; // for predicted moves
- int buttons;
- int impulse;
- unsigned int sequence;
- qbool applied; // if false we're still accumulating a move
- qbool predicted; // if true the sequence should be sent as 0
-
- // derived properties
- double frametime;
- qbool canjump;
- qbool jump;
- qbool crouch;
-} usercmd_t;
-
typedef struct lightstyle_s
{
int length;
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;
// 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;
// movement parameters for client prediction
unsigned int moveflags;
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);