]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
Replaced all calls to str[n]cat and strncpy by calls to strlcat and strlcpy respectively
[xonotic/darkplaces.git] / client.h
index cfa3f3dc06689e4eab63eccfd49ddafae9de322b..ce30abb551e399756d53eab20ea87acd682b8093 100644 (file)
--- a/client.h
+++ b/client.h
@@ -503,6 +503,7 @@ typedef struct client_static_s
        qfile_t *capturevideo_soundfile;
        short capturevideo_rgbtoyuvscaletable[3][3][256];
        unsigned char capturevideo_yuvnormalizetable[3][256];
+       char capturevideo_basename[64];
 }
 client_static_t;
 
@@ -594,6 +595,16 @@ typedef struct particle_s
 }
 particle_t;
 
+typedef enum cl_parsingtextmode_e
+{
+       CL_PARSETEXTMODE_NONE,
+       CL_PARSETEXTMODE_PING,
+       CL_PARSETEXTMODE_STATUS,
+       CL_PARSETEXTMODE_STATUS_PLAYERID,
+       CL_PARSETEXTMODE_STATUS_PLAYERIP
+}
+cl_parsingtextmode_t;
+
 //
 // the client_state_t structure is wiped completely at every
 // server signon
@@ -657,7 +668,8 @@ typedef struct client_state_s
 
        // client movement simulation
        // these fields are only updated by CL_ClientMovement (called by CL_SendMove after parsing each network packet)
-       qboolean movement;
+       // set by CL_ClientMovement_Replay functions
+       qboolean movement_predicted;
        // this is set true by svc_time parsing and causes a new movement to be
        // queued for prediction purposes
        qboolean movement_needupdate;
@@ -671,7 +683,7 @@ typedef struct client_state_s
        vec3_t movement_velocity;
        // queue of proposed moves
        int movement_numqueue;
-       client_movementqueue_t movement_queue[64];
+       client_movementqueue_t movement_queue[256];
        int movesequence;
        int servermovesequence;
        // whether the replay should allow a jump at the first sequence
@@ -771,6 +783,16 @@ typedef struct client_state_s
        // [cl.maxclients]
        scoreboard_t *scores;
 
+       // keep track of svc_print parsing state (analyzes ping reports and status reports)
+       cl_parsingtextmode_t parsingtextmode;
+       int parsingtextplayerindex;
+       // set by scoreboard code when sending ping command, this causes the next ping results to be hidden
+       // (which could eat the wrong ping report if the player issues one
+       //  manually, but they would still see a ping report, just a later one
+       //  caused by the scoreboard code rather than the one they intentionally
+       //  issued)
+       qboolean parsingtextexpectingpingforscores;
+
        // entity database stuff
        // latest received entity frame numbers
 #define LATESTFRAMENUMS 3
@@ -1077,7 +1099,6 @@ typedef enum effectnameindex_s
        EFFECT_TE_SUPERSPIKEQUAD,
        EFFECT_TE_WIZSPIKE,
        EFFECT_TE_KNIGHTSPIKE,
-       EFFECT_TE_VORESPIKE,
        EFFECT_TE_EXPLOSION,
        EFFECT_TE_EXPLOSIONQUAD,
        EFFECT_TE_TAREXPLOSION,
@@ -1124,6 +1145,8 @@ void R_NewExplosion(const vec3_t org);
 
 #include "cl_screen.h"
 
+extern qboolean sb_showscores;
+
 #define NUMCROSSHAIRS 32
 extern cachepic_t *r_crosshairs[NUMCROSSHAIRS+1];
 
@@ -1264,6 +1287,9 @@ typedef struct r_view_s
 
        // which color components to allow (for anaglyph glasses)
        int colormask[4];
+
+       // global RGB color multiplier for rendering, this is required by HDR
+       float colorscale;
 }
 r_view_t;