]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
Rollback last change which was meant to be many smaller pieces.
[xonotic/darkplaces.git] / client.h
index 7c6fff4da024fce39d867532b8f21aeb259b7abb..4230c6a82d27819abfee3aa1b0497b4b83330df9 100644 (file)
--- a/client.h
+++ b/client.h
@@ -213,7 +213,7 @@ typedef struct tridecal_s
        // for visibility culling
        int                             surfaceindex;
        // old decals are killed to obey cl_decals_max
-       int                             decalsequence;
+       unsigned int    decalsequence;
 }
 tridecal_t;
 
@@ -286,7 +286,7 @@ typedef struct rtlight_s
        char cubemapname[64];
        /// light style to monitor for brightness
        int style;
-       /// whether light should render shadows
+       /// whether light should render shadows (see castshadows for whether it actually does this frame)
        int shadow;
        /// intensity of corona to render
        vec_t corona;
@@ -323,6 +323,8 @@ typedef struct rtlight_s
        rtexture_t *currentcubemap;
        /// set by R_Shadow_PrepareLight to decide whether R_Shadow_DrawLight should draw it
        qboolean draw;
+       /// set by R_Shadow_PrepareLight to indicate whether R_Shadow_DrawShadowMaps should do anything
+       qboolean castshadows;
        /// these fields are set by R_Shadow_PrepareLight for later drawing
        int cached_numlightentities;
        int cached_numlightentities_noselfshadow;
@@ -352,6 +354,12 @@ typedef struct rtlight_s
        int compiled;
        /// the shadowing mode used to compile this light
        int shadowmode;
+       /// the size that this light should have (assuming no scene LOD kicking in to reduce it)
+       int shadowmapsidesize;
+       /// position of this light in the shadowmap atlas
+       int shadowmapatlasposition[2];
+       /// size of one side of this light in the shadowmap atlas (for omnidirectional shadowmaps this is the min corner of a 2x3 arrangement, or a 4x3 arrangement in the case of noselfshadow entities being present)
+       int shadowmapatlassidesize;
        /// premade shadow volumes to render for world entity
        shadowmesh_t *static_meshchain_shadow_zpass;
        shadowmesh_t *static_meshchain_shadow_zfail;
@@ -638,7 +646,7 @@ typedef struct usercmd_s
        int msec; // for predicted moves
        int buttons;
        int impulse;
-       int sequence;
+       unsigned int sequence;
        qboolean applied; // if false we're still accumulating a move
        qboolean predicted; // if true the sequence should be sent as 0
 
@@ -834,6 +842,7 @@ typedef struct client_static_s
        double connect_nextsendtime;
        lhnetsocket_t *connect_mysocket;
        lhnetaddress_t connect_address;
+       lhnetaddress_t rcon_address;
        // protocol version of the server we're connected to
        // (kept outside client_state_t because it's used between levels)
        protocolversion_t protocol;
@@ -856,16 +865,15 @@ typedef struct client_static_s
        cl_downloadack_t dp_downloadack[CL_MAX_DOWNLOADACKS];
 
        // input sequence numbers are not reset on level change, only connect
-       int movesequence;
-       int servermovesequence;
+       unsigned int servermovesequence;
 
        // quakeworld stuff below
 
        // value of "qport" cvar at time of connection
        int qw_qport;
        // copied from cls.netcon->qw. variables every time they change, or set by demos (which have no cls.netcon)
-       int qw_incoming_sequence;
-       int qw_outgoing_sequence;
+       unsigned int qw_incoming_sequence;
+       unsigned int qw_outgoing_sequence;
 
        // current file download buffer (only saved when file is completed)
        char qw_downloadname[MAX_QPATH];
@@ -968,7 +976,7 @@ typedef struct decal_s
        // fields used by rendering:  (44 bytes)
        unsigned short  typeindex;
        unsigned short  texnum;
-       int                             decalsequence;
+       unsigned int    decalsequence;
        vec3_t                  org;
        vec3_t                  normal;
        float                   size;
@@ -1275,7 +1283,7 @@ typedef struct client_state_s
 #define LATESTFRAMENUMS 32
        int latestframenumsposition;
        int latestframenums[LATESTFRAMENUMS];
-       int latestsendnums[LATESTFRAMENUMS];
+       unsigned int latestsendnums[LATESTFRAMENUMS];
        entityframe_database_t *entitydatabase;
        entityframe4_database_t *entitydatabase4;
        entityframeqw_database_t *entitydatabaseqw;
@@ -1291,7 +1299,7 @@ typedef struct client_state_s
        vec3_t playercrouchmaxs;
 
        // old decals are killed based on this
-       int decalsequence;
+       unsigned int decalsequence;
 
        int max_entities;
        int max_csqcrenderentities;
@@ -1417,9 +1425,9 @@ typedef struct client_state_s
 
        float qw_weaponkick;
 
-       int qw_validsequence;
+       unsigned int qw_validsequence;
 
-       int qw_deltasequence[QW_UPDATE_BACKUP];
+       unsigned int qw_deltasequence[QW_UPDATE_BACKUP];
 
        // csqc stuff:
        // server entity number corresponding to a clientside entity