void CL_Disconnect (void);
void CL_Disconnect_f (void);
-// LordHavoc: fixme: move this to r_refdef?
-// LordHavoc: raised this from 256 to the maximum possible number of entities visible
-#define MAX_VISEDICTS (MAX_EDICTS + MAX_STATIC_ENTITIES + MAX_TEMP_ENTITIES)
-extern int cl_numvisedicts;
-extern entity_t *cl_visedicts[MAX_VISEDICTS];
-
//
// cl_input
//
void CL_SendCmd (void);
void CL_SendMove (usercmd_t *cmd);
-void CL_LerpUpdate(entity_t *e, int frame, int modelindex);
+void CL_LerpUpdate(entity_t *e);
void CL_ParseTEnt (void);
void CL_UpdateTEnts (void);
void V_StartPitchDrift (void);
void V_StopPitchDrift (void);
-void V_RenderView (void);
+void V_Init (void);
+float V_CalcRoll (vec3_t angles, vec3_t velocity);
void V_UpdateBlends (void);
-void V_Register (void);
void V_ParseDamage (void);
-void V_SetContentsColor (int contents);
//
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;
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);
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
-//
+// 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)
-typedef struct renderdecal_s
+typedef struct
{
- entity_render_t *ent;
- int tex;
- int surface;
- float scale;
- vec3_t org;
- vec3_t dir;
- float color[4];
+ // area to render in
+ int x, y, width, height;
+ float fov_x, fov_y;
+
+ // view point
+ vec3_t vieworg;
+ vec3_t viewangles;
+
+ // fullscreen color blend
+ float viewblend[4];
+
+ // weapon model
+ entity_render_t viewent;
+
+ int numentities;
+ entity_render_t **entities;
+
+ int numparticles;
+ struct renderparticle_s *particles;
+
+ byte drawqueue[MAX_DRAWQUEUE];
+ int drawqueuesize;
}
-renderdecal_t;
+refdef_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);
+refdef_t r_refdef;
-// 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);
+extern mempool_t *cl_refdef_mempool;
+#include "cgamevm.h"