]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
new commands: prvm_edictget, prvm_globalget - read values from edicts/globals into...
[xonotic/darkplaces.git] / client.h
index dc37e938a6ca513ee8534fab9901654500963f90..f6a8a4d67e3a22a44c7b1964fd8b43b02c24a083 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
@@ -301,6 +301,9 @@ typedef struct entity_render_s
        // subframe numbers (-1 if not used) and their blending scalers (0-1), if interpolation is not desired, use subframeblend[0].subframe
        frameblend_t frameblend[MAX_FRAMEBLENDS];
 
+       // animation cache index
+       int animcacheindex;
+
        // current lighting from map (updated ONLY by client code, not renderer)
        vec3_t modellight_ambient;
        vec3_t modellight_diffuse; // q3bsp
@@ -657,7 +660,8 @@ typedef enum
        PARTICLE_BILLBOARD = 0,
        PARTICLE_SPARK = 1,
        PARTICLE_ORIENTED_DOUBLESIDED = 2,
-       PARTICLE_BEAM = 3,
+       PARTICLE_VBEAM = 3,
+       PARTICLE_HBEAM = 4,
        PARTICLE_INVALID = -1
 }
 porientation_t;
@@ -885,6 +889,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;
@@ -1045,6 +1055,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;
@@ -1072,6 +1083,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;
@@ -1413,6 +1425,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)
@@ -1449,6 +1487,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];