]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
compile separate index lists for each cubemap shadowmap side
[xonotic/darkplaces.git] / client.h
index 4992adad087c561a367bf64375dcacacf9d19528..32348dc4904ab808576cbbc40822b43f0715c0c1 100644 (file)
--- a/client.h
+++ b/client.h
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #define MAX_DLIGHTS 256
 
 /// this is the maximum number of input packets that can be predicted
-#define CL_MAX_USERCMDS 256
+#define CL_MAX_USERCMDS 128
 
 // flags for rtlight rendering
 #define LIGHTFLAG_NORMALMODE 1
@@ -122,9 +122,12 @@ typedef struct rtlight_s
        int isstatic;
        /// true if this is a compiled world light, cleared if the light changes
        int compiled;
+       /// the shadowing mode used to compile this light
+       int shadowmode;
        /// premade shadow volumes to render for world entity
        shadowmesh_t *static_meshchain_shadow_zpass;
        shadowmesh_t *static_meshchain_shadow_zfail;
+       shadowmesh_t *static_meshchain_shadow_shadowmap;
        /// used for visibility testing (more exact than bbox)
        int static_numleafs;
        int static_numleafpvsbytes;
@@ -581,6 +584,13 @@ typedef struct client_static_s
        // (kept outside client_state_t because it's used between levels)
        protocolversion_t protocol;
 
+#define MAX_RCONS 16
+       int rcon_trying;
+       lhnetaddress_t rcon_addresses[MAX_RCONS];
+       char rcon_commands[MAX_RCONS][MAX_INPUTLINE];
+       double rcon_timeout[MAX_RCONS];
+       int rcon_ringpos;
+
 // connection information
        // 0 to SIGNONS
        int signon;
@@ -889,6 +899,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;
+       
+       // fade var for fading while dead
+       float deathfade;
+
+       // motionblur alpha level variable
+       float motionbluralpha;
 
        // copy of realtime from last recieved message, for net trouble icon
        float last_received_message;
@@ -1049,6 +1065,7 @@ typedef struct client_state_s
        double lastpackettime;
 
        // movement parameters for client prediction
+       unsigned int moveflags;
        float movevars_wallfriction;
        float movevars_waterfriction;
        float movevars_friction;
@@ -1076,6 +1093,7 @@ typedef struct client_state_s
        float movevars_warsowbunny_topspeed;
        float movevars_warsowbunny_turnaccel;
        float movevars_warsowbunny_backtosideratio;
+       float movevars_ticrate;
 
        // models used by qw protocol
        int qw_modelindex_spike;
@@ -1417,6 +1435,32 @@ typedef struct r_refdef_stats_s
 }
 r_refdef_stats_t;
 
+typedef enum r_viewport_type_e
+{
+       R_VIEWPORTTYPE_ORTHO,
+       R_VIEWPORTTYPE_PERSPECTIVE,
+       R_VIEWPORTTYPE_PERSPECTIVE_INFINITEFARCLIP,
+       R_VIEWPORTTYPE_PERSPECTIVECUBESIDE,
+       R_VIEWPORTTYPE_TOTAL
+}
+r_viewport_type_t;
+
+typedef struct r_viewport_s
+{
+       double m[16];
+       matrix4x4_t cameramatrix; // from entity (transforms from camera entity to world)
+       matrix4x4_t viewmatrix; // actual matrix for rendering (transforms to viewspace)
+       matrix4x4_t projectmatrix; // actual projection matrix (transforms from viewspace to screen)
+       int x;
+       int y;
+       int z;
+       int width;
+       int height;
+       int depth;
+       r_viewport_type_t type;
+}
+r_viewport_t;
+
 typedef struct r_refdef_view_s
 {
        // view information (changes multiple times per frame)
@@ -1453,6 +1497,7 @@ typedef struct r_refdef_view_s
        int width;
        int height;
        int depth;
+       r_viewport_t viewport;
 
        // which color components to allow (for anaglyph glasses)
        int colormask[4];