#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
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
// caching results of static light traces (this is semi-persistent)
double entlightstime;
vec3_t entlightsorigin;
+ int entlightsframe;
int numentlights;
unsigned short entlights[MAXENTLIGHTS];
}
// 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
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
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;
void CL_Disconnect (void);
void CL_Disconnect_f (void);
+void CL_BoundingBoxForEntity(entity_render_t *ent);
+
//
// cl_input
//