]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
split out RecursiveHullCheck and related code into collision.c (shared by client...
[xonotic/darkplaces.git] / client.h
index 2b7505c2dd70bf99f415ba6d4227738a8f620c7d..4b7eab4587e2b56510e73d9c5b067ecb852ea54f 100644 (file)
--- a/client.h
+++ b/client.h
@@ -29,57 +29,96 @@ frameblend_t;
 // LordHavoc: nothing in this structure is persistant, it may be overwritten by the client every frame, for persistant data use entity_lerp_t.
 typedef struct entity_render_s
 {
-       vec3_t  origin;                 // location
-       vec3_t  angles;                 // orientation
-       float   alpha;                  // opacity (alpha) of the model
-       float   scale;                  // size the model is shown
-
-       model_t *model;                 // NULL = no model
-       int             frame;                  // current uninterpolated animation frame (for things which do not use interpolation)
-       int             colormap;               // entity shirt and pants colors
-       int             effects;                // light, particles, etc
-       int             skinnum;                // for Alias models
-       int             flags;                  // render flags
+       // location
+       vec3_t origin;
+       // orientation
+       vec3_t angles;
+       // opacity (alpha) of the model
+       float alpha;
+       // size the model is shown
+       float scale;
+
+       // NULL = no model
+       model_t *model;
+       // current uninterpolated animation frame (for things which do not use interpolation)
+       int frame;
+       // entity shirt and pants colors
+       int colormap;
+       // light, particles, etc
+       int effects;
+       // for Alias models
+       int skinnum;
+       // render flags
+       int flags;
 
        // these are copied from the persistent data
-       int             frame1;                 // frame that the model is interpolating from
-       int             frame2;                 // frame that the model is interpolating to
-       double  framelerp;              // interpolation factor, usually computed from frame2time
-       double  frame1time;             // time frame1 began playing (for framegroup animations)
-       double  frame2time;             // time frame2 began playing (for framegroup animations)
+
+       // frame that the model is interpolating from
+       int frame1;
+       // frame that the model is interpolating to
+       int frame2;
+       // interpolation factor, usually computed from frame2time
+       double framelerp;
+       // time frame1 began playing (for framegroup animations)
+       double frame1time;
+       // time frame2 began playing (for framegroup animations)
+       double frame2time;
 
        // calculated by the renderer (but not persistent)
-       int             visframe;               // if visframe == r_framecount, it is visible
-       vec3_t  mins, maxs;             // calculated during R_AddModelEntities
-       frameblend_t    frameblend[4]; // 4 frame numbers (-1 if not used) and their blending scalers (0-1), if interpolation is not desired, use frame instead
+
+       // if visframe == r_framecount, it is visible
+       int visframe;
+       // calculated during R_AddModelEntities
+       vec3_t mins, maxs;
+       // 4 frame numbers (-1 if not used) and their blending scalers (0-1), if interpolation is not desired, use frame instead
+       frameblend_t frameblend[4];
 }
 entity_render_t;
 
 typedef struct entity_persistent_s
 {
        // particles
-       vec3_t  trail_origin;   // trail rendering
-       float   trail_time;             // trail rendering
+
+       // trail rendering
+       vec3_t trail_origin;
+       float trail_time;
+
+       // effects
+
+       // muzzleflash fading
+       float muzzleflash;
 
        // interpolated animation
-       int             modelindex;             // lerp resets when model changes
-       int             frame1;                 // frame that the model is interpolating from
-       int             frame2;                 // frame that the model is interpolating to
-       double  framelerp;              // interpolation factor, usually computed from frame2time
-       double  frame1time;             // time frame1 began playing (for framegroup animations)
-       double  frame2time;             // time frame2 began playing (for framegroup animations)
+
+       // lerp resets when model changes
+       int modelindex;
+       // frame that the model is interpolating from
+       int frame1;
+       // frame that the model is interpolating to
+       int frame2;
+       // interpolation factor, usually computed from frame2time
+       double framelerp;
+       // time frame1 began playing (for framegroup animations)
+       double frame1time;
+       // time frame2 began playing (for framegroup animations)
+       double frame2time;
 }
 entity_persistent_t;
 
 typedef struct entity_s
 {
-       entity_state_t state_baseline;  // baseline state (default values)
-       entity_state_t state_previous;  // previous state (interpolating from this)
-       entity_state_t state_current;   // current state (interpolating to this)
-
-       entity_persistent_t persistent; // used for regenerating parts of render
-
-       entity_render_t render; // the only data the renderer should know about
+       // baseline state (default values)
+       entity_state_t state_baseline;
+       // previous state (interpolating from this)
+       entity_state_t state_previous;
+       // current state (interpolating to this)
+       entity_state_t state_current;
+
+       // used for regenerating parts of render
+       entity_persistent_t persistent;
+
+       // the only data the renderer should know about
+       entity_render_t render;
 }
 entity_t;
 
@@ -435,6 +474,7 @@ void CL_InitTEnts (void);
 #define PARTICLE_UPRIGHT_FACING 2
 #define PARTICLE_ORIENTED_DOUBLESIDED 3
 
+/*
 typedef struct renderparticle_s
 {
        int tex;
@@ -448,6 +488,7 @@ typedef struct renderparticle_s
        float color[4];
 }
 renderparticle_t;
+*/
 
 void CL_Particles_Clear(void);
 void CL_Particles_Init(void);
@@ -459,6 +500,7 @@ void CL_RocketTrail2 (vec3_t start, vec3_t end, int color, entity_t *ent);
 void CL_SparkShower (vec3_t org, vec3_t dir, int count);
 void CL_PlasmaBurn (vec3_t org);
 void CL_BloodPuff (vec3_t org, vec3_t vel, int count);
+void CL_Stardust (vec3_t mins, vec3_t maxs, int count);
 void CL_FlameCube (vec3_t mins, vec3_t maxs, int count);
 void CL_Flames (vec3_t org, vec3_t vel, int count);
 void CL_BloodShower (vec3_t mins, vec3_t maxs, float velspeed, int count);
@@ -474,13 +516,6 @@ void CL_MoveParticles(void);
 void R_MoveExplosions(void);
 void R_NewExplosion(vec3_t org);
 
-// if contents is not zero, it will impact on content changes
-// (leafs matching contents are considered empty, others are solid)
-extern int traceline_endcontents; // set by TraceLine
-// need to call this sometime before using TraceLine with hitbmodels
-void TraceLine_ScanForBModels(void);
-float TraceLine (vec3_t start, vec3_t end, vec3_t impact, vec3_t normal, int contents, int hitbmodels);
-
 #include "cl_screen.h"
 
 #define MAX_VISEDICTS (MAX_EDICTS + MAX_STATIC_ENTITIES + MAX_TEMP_ENTITIES)
@@ -504,8 +539,8 @@ typedef struct
        int numentities;
        entity_render_t **entities;
 
-       int numparticles;
-       struct renderparticle_s *particles;
+       //int numparticles;
+       //struct renderparticle_s *particles;
 
        qbyte drawqueue[MAX_DRAWQUEUE];
        int drawqueuesize;