]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
physics: fix and refactor unsticking
[xonotic/darkplaces.git] / client.h
index 67262d7c2990c2f3073497525b28b351e41dcf17..9523196d85ca49f6369986df12b1abc0f25c6946 100644 (file)
--- a/client.h
+++ b/client.h
@@ -577,7 +577,7 @@ typedef struct client_static_s
        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
@@ -870,7 +870,12 @@ typedef struct client_state_s
        // 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;
 
@@ -889,7 +894,7 @@ typedef struct client_state_s
        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
@@ -1043,6 +1048,8 @@ typedef struct client_state_s
 
        // 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;
@@ -1102,7 +1109,6 @@ typedef struct client_state_s
        // csqc stuff:
        // server entity number corresponding to a clientside entity
        unsigned short csqc_server2csqcentitynumber[MAX_EDICTS];
-       qbool csqc_loaded;
        vec3_t csqc_vieworigin;
        vec3_t csqc_viewangles;
        vec3_t csqc_vieworiginfromengine;
@@ -1111,6 +1117,7 @@ typedef struct client_state_s
        qbool csqc_usecsqclistener;
        matrix4x4_t csqc_listenermatrix;
        char csqc_printtextbuf[MAX_INPUTLINE];
+       size_t csqc_printtextbuf_len; ///< strlen
 
        // collision culling data
        world_t world;
@@ -1128,6 +1135,9 @@ typedef struct client_state_s
 
        // used by EntityState5_ReadUpdate
        skeleton_t *engineskeletonobjects;
+
+       // used by underwater sound filter (snd_waterfx)
+       qbool view_underwater;
 }
 client_state_t;
 
@@ -1160,7 +1170,6 @@ extern cvar_t cl_anglespeedkey;
 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;
@@ -1196,6 +1205,8 @@ extern cvar_t cl_prydoncursor_notrace;
 
 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);
@@ -1218,7 +1229,8 @@ 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);
@@ -1294,6 +1306,7 @@ void CL_WriteDemoMessage(sizebuf_t *mesage);
 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);
@@ -1357,6 +1370,7 @@ extern model_t cl_meshentitymodels[NUM_MESHENTITIES];
 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);