]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
view model is now properly lit in realtime mode
[xonotic/darkplaces.git] / client.h
index 2457c2f95e3bbd529820781cfba51d8ab6ba4a8f..a52d83e5291708bfa9db096a47714331cb6e2ed6 100644 (file)
--- a/client.h
+++ b/client.h
@@ -22,6 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #ifndef CLIENT_H
 #define CLIENT_H
 
+#include "matrixlib.h"
+
 // LordHavoc: 256 dynamic lights
 #define MAX_DLIGHTS 256
 // LordHavoc: this affects the lighting scale of the whole game
@@ -72,8 +74,8 @@ typedef struct
        float   radius;
        // drop this each second
        float   decay;
-       // the entity that spawned this light (can be NULL if it will never be replaced)
-       //entity_render_t *ent;
+       // the entity that owns this light (can be NULL)
+       struct entity_render_s *ent;
 }
 dlight_t;
 
@@ -92,6 +94,10 @@ typedef struct entity_render_s
        vec3_t origin;
        // orientation
        vec3_t angles;
+       // transform matrix for model to world
+       matrix4x4_t matrix;
+       // transform matrix for world to model
+       matrix4x4_t inversematrix;
        // opacity (alpha) of the model
        float alpha;
        // size the model is shown
@@ -135,6 +141,7 @@ typedef struct entity_render_s
        // caching results of static light traces (this is semi-persistent)
        double entlightstime;
        vec3_t entlightsorigin;
+       int entlightsframe;
        int numentlights;
        unsigned short entlights[MAXENTLIGHTS];
 }
@@ -153,6 +160,18 @@ typedef struct entity_persistent_s
        // muzzleflash fading
        float muzzleflash;
 
+       // interpolated movement
+
+       // start time of move
+       float lerpstarttime;
+       // time difference from start to end of move
+       float lerpdeltatime;
+       // the move itself, start and end
+       float oldorigin[3];
+       float oldangles[3];
+       float neworigin[3];
+       float newangles[3];
+
        // interpolated animation
 
        // lerp resets when model changes
@@ -232,7 +251,6 @@ typedef struct
 
 #define        SIGNONS         4                       // signon messages to receive before connected
 
-#define        MAX_MAPSTRING   2048
 #define        MAX_DEMOS               8
 #define        MAX_DEMONAME    16
 
@@ -252,11 +270,6 @@ typedef struct
 {
        cactive_t state;
 
-// personalization data sent to server
-       char mapstring[MAX_QPATH];
-       // to restart a level
-       //char spawnparms[MAX_MAPSTRING];
-
 // demo loop control
        // -1 = don't play demos
        int demonum;
@@ -384,7 +397,12 @@ typedef struct
        char levelname[40];
        // cl_entitites[cl.viewentity] = player
        int viewentity;
+       // the real player entity (normally same as viewentity,
+       // different than viewentity if mod uses chasecam or other tricks)
+       int playerentity;
+       // max players that can be in this game
        int maxclients;
+       // type of game (deathmatch, coop, singleplayer)
        int gametype;
 
 // refresh related state
@@ -459,13 +477,14 @@ extern cvar_t r_draweffects;
 extern cvar_t cl_explosions;
 extern cvar_t cl_stainmaps;
 
-// these are updated by
+// these are updated by CL_ClearState
 extern int cl_num_entities;
 extern int cl_num_static_entities;
 extern int cl_num_temp_entities;
 extern int cl_num_brushmodel_entities;
 
 extern entity_t *cl_entities;
+extern qbyte *cl_entities_active;
 extern entity_t *cl_static_entities;
 extern entity_t *cl_temp_entities;
 extern entity_render_t **cl_brushmodel_entities;
@@ -493,6 +512,8 @@ void CL_EstablishConnection (char *host);
 void CL_Disconnect (void);
 void CL_Disconnect_f (void);
 
+void CL_BoundingBoxForEntity(entity_render_t *ent);
+
 //
 // cl_input
 //
@@ -548,7 +569,6 @@ void CL_TimeDemo_f (void);
 //
 void CL_Parse_Init(void);
 void CL_ParseServerMessage(void);
-void CL_BitProfile_f(void);
 
 //
 // view
@@ -571,11 +591,6 @@ void CL_InitTEnts (void);
 // cl_part
 //
 
-#define PARTICLE_INVALID 0
-#define PARTICLE_BILLBOARD 1
-#define PARTICLE_UPRIGHT_FACING 2
-#define PARTICLE_ORIENTED_DOUBLESIDED 3
-
 void CL_Particles_Clear(void);
 void CL_Particles_Init(void);
 
@@ -594,7 +609,7 @@ void CL_ParticleCube (vec3_t mins, vec3_t maxs, vec3_t dir, int count, int color
 void CL_ParticleRain (vec3_t mins, vec3_t maxs, vec3_t dir, int count, int colorbase, int type);
 void CL_EntityParticles (entity_t *ent);
 void CL_BlobExplosion (vec3_t org);
-void CL_ParticleExplosion (vec3_t org, int smoke);
+void CL_ParticleExplosion (vec3_t org);
 void CL_ParticleExplosion2 (vec3_t org, int colorStart, int colorLength);
 void CL_LavaSplash (vec3_t org);
 void CL_TeleportSplash (vec3_t org);
@@ -636,5 +651,7 @@ extern mempool_t *cl_refdef_mempool;
 
 #include "cgamevm.h"
 
+void Host_PerformSpawnServerAndLoadGame(void);
+
 #endif