]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
added viewzoom extension to QC and client (smooth sniper zooming, with sensitivity...
[xonotic/darkplaces.git] / client.h
index 7d29a988199d73febc60fd5cd48e0107d592b060..3513a3f7521dfed7a7b9e8adc839efe35f8cff23 100644 (file)
--- a/client.h
+++ b/client.h
@@ -198,6 +198,7 @@ typedef struct
                                                                // throw out the first couple, so the player
                                                                // doesn't accidentally do something the
                                                                // first frame
+       float           sendnoptime;    // send a clc_nop periodically until connected
        usercmd_t       cmd;                    // last command sent to the server
 
 // information for local display
@@ -274,6 +275,14 @@ typedef struct
 
 // frag scoreboard
        scoreboard_t    *scores;                // [cl.maxclients]
+
+       vec3_t          viewentorigin;
+       float           viewzoom;                       // LordHavoc: sniping zoom, QC controlled
+       float           viewzoomold, viewzoomnew; // for interpolation
+
+       // entity database stuff
+       vec3_t          viewentoriginold, viewentoriginnew;
+       entity_database_t entitydatabase;
 }
 client_state_t;
 
@@ -428,14 +437,15 @@ void CL_InitTEnts (void);
 
 typedef struct renderparticle_s
 {
-       int                     tex;
-       int                     orientation;
-       int                     dynlight;
-       float           scalex;
-       float           scaley;
-       float           org[3];
-       float           dir[3];
-       float           color[4];
+       int tex;
+       int orientation;
+       int additive;
+       int dynlight;
+       float scalex;
+       float scaley;
+       float org[3];
+       float dir[3];
+       float color[4];
 }
 renderparticle_t;
 
@@ -447,6 +457,7 @@ void CL_RunParticleEffect (vec3_t org, vec3_t dir, int color, int count);
 void CL_RocketTrail (vec3_t start, vec3_t end, int type, entity_t *ent);
 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_FlameCube (vec3_t mins, vec3_t maxs, int count);
 void CL_Flames (vec3_t org, vec3_t vel, int count);
@@ -460,34 +471,15 @@ void CL_ParticleExplosion2 (vec3_t org, int colorStart, int colorLength);
 void CL_LavaSplash (vec3_t org);
 void CL_TeleportSplash (vec3_t org);
 void CL_MoveParticles(void);
-void CL_UpdateDecals(void);
 void R_MoveExplosions(void);
 void R_NewExplosion(vec3_t org);
 
-//
-// cl_decal
-//
-
-typedef struct renderdecal_s
-{
-       entity_render_t *ent;
-       int tex;
-       int surface;
-       float scale;
-       vec3_t org;
-       vec3_t dir;
-       float color[4];
-}
-renderdecal_t;
-
-void CL_Decals_Clear(void);
-void CL_Decals_Init(void);
-void CL_Decal(vec3_t origin, int tex, float scale, float red, float green, float blue, float alpha);
-
 // 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
-float TraceLine (vec3_t start, vec3_t end, vec3_t impact, vec3_t normal, int contents);
+// 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"
 
@@ -509,9 +501,6 @@ typedef struct
        // weapon model
        entity_render_t viewent;
 
-       int numdecals;
-       renderdecal_t *decals;
-
        int numentities;
        entity_render_t **entities;
 
@@ -526,3 +515,5 @@ refdef_t;
 refdef_t r_refdef;
 
 extern mempool_t *cl_refdef_mempool;
+
+#include "cgamevm.h"