]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
logarithm
[xonotic/darkplaces.git] / client.h
index 06ce06749ce6fb948f92981f0acf8e9c1b981b3e..c57c01775394e16de7dab6ac670301616b387626 100644 (file)
--- a/client.h
+++ b/client.h
@@ -35,6 +35,33 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #define LIGHTFLAG_NORMALMODE 1
 #define LIGHTFLAG_REALTIMEMODE 2
 
+typedef struct tridecal_s
+{
+       // color and initial alpha value
+       unsigned char   colors[3][4];
+       // how long this decal has lived so far (the actual fade begins at cl_decals_time)
+       float                   lived;
+       // if >= 0 this indicates the decal should follow an animated triangle
+       int                             triangleindex;
+}
+tridecal_t;
+
+typedef struct decalsystem_s
+{
+       dp_model_t *model;
+       double lastupdatetime;
+       int maxdecals;
+       int freedecal;
+       int numdecals;
+       tridecal_t *decals;
+       float *vertex3f;
+       float *texcoord2f;
+       float *color4f;
+       int *element3i;
+       unsigned short *element3s;
+}
+decalsystem_t;
+
 typedef struct effect_s
 {
        int active;
@@ -318,6 +345,11 @@ typedef struct entity_render_s
        vec3_t modellight_diffuse; // q3bsp
        vec3_t modellight_lightdir; // q3bsp
 
+       // storage of decals on this entity
+       // (note: if allowdecals is set, be sure to call R_DecalSystem_Reset on removal!)
+       int allowdecals;
+       decalsystem_t decalsystem;
+
        // FIELDS UPDATED BY RENDERER:
        // last time visible during trace culling
        double last_trace_visibility;
@@ -1411,6 +1443,7 @@ void Debug_PolygonEnd(void);
 extern qboolean sb_showscores;
 
 float RSurf_FogVertex(const vec3_t p);
+float RSurf_FogPoint(const vec3_t p);
 
 typedef struct r_refdef_stats_s
 {
@@ -1618,10 +1651,14 @@ typedef struct r_refdef_s
 
        r_refdef_scene_t scene;
 
-       vec3_t fogcolor;
-       vec_t fogrange;
-       vec_t fograngerecip;
-       vec_t fogmasktabledistmultiplier;
+       float fogplane[4];
+       float fogplaneviewdist;
+       qboolean fogplaneviewabove;
+       float fogheightfade;
+       float fogcolor[3];
+       float fogrange;
+       float fograngerecip;
+       float fogmasktabledistmultiplier;
 #define FOGMASKTABLEWIDTH 1024
        float fogmasktable[FOGMASKTABLEWIDTH];
        float fogmasktable_start, fogmasktable_alpha, fogmasktable_range, fogmasktable_density;
@@ -1632,6 +1669,8 @@ typedef struct r_refdef_s
        float fog_alpha;
        float fog_start;
        float fog_end;
+       float fog_height;
+       float fog_fadedepth;
        qboolean fogenabled;
        qboolean oldgl_fogenable;