25#define EXPLOSIONGRID 8
26#define EXPLOSIONVERTS ((EXPLOSIONGRID+1)*(EXPLOSIONGRID+1))
27#define EXPLOSIONTRIS (EXPLOSIONGRID*EXPLOSIONGRID*2)
36typedef struct explosion_s
73 for (
y = 0;
y < 128;
y++)
75 for (
x = 0;
x < 128;
x++)
192 trace =
CL_TraceLine(e->
origin, e->
vert[j],
MOVE_NOMONSTERS,
NULL,
SUPERCONTENTS_SOLID, 0, 0,
collision_extendmovelength.
value,
true,
false,
NULL,
false,
false);
205 int surfacelistindex = 0;
217 for (surfacelistindex = 0;surfacelistindex < numsurfaces;surfacelistindex++)
248 trace =
CL_TraceLine(e->
vert[
i], end,
MOVE_NOMONSTERS,
NULL,
SUPERCONTENTS_SOLID, 0, 0,
collision_extendmovelength.
value,
true,
false,
NULL,
false,
false);
#define SUPERCONTENTS_SOLID
trace_t CL_TraceLine(const vec3_t start, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask, int skipsupercontentsmask, int skipmaterialflagsmask, float extend, qbool hitnetworkbrushmodels, qbool hitnetworkplayers, int *hitnetworkentity, qbool hitcsqcentities, qbool hitsurfaces)
cvar_t cl_explosions_lifetime
cvar_t cl_explosions_size_start
cvar_t cl_explosions_size_end
cvar_t cl_explosions_alpha_start
cvar_t cl_explosions_alpha_end
#define CF_CLIENT
cvar/command that only the client can change/execute
#define CF_ARCHIVE
cvar should have its set value saved to config.cfg and persist across sessions
cvar_t collision_extendmovelength
void Cvar_RegisterVariable(cvar_t *variable)
registers a cvar that already has the name, string, and optionally the archive elements set.
void fractalnoise(unsigned char *noise, int size, int startgrid)
void fractalnoisequick(unsigned char *noise, int size, int startgrid)
void GL_CullFace(int state)
void GL_DepthMask(int state)
void R_Mesh_Draw(int firstvertex, int numvertices, int firsttriangle, int numtriangles, const int *element3i, const r_meshbuffer_t *element3i_indexbuffer, int element3i_bufferoffset, const unsigned short *element3s, const r_meshbuffer_t *element3s_indexbuffer, int element3s_bufferoffset)
void GL_DepthTest(int state)
void GL_DepthRange(float nearfrac, float farfrac)
void GL_PolygonOffset(float planeoffset, float depthoffset)
void GL_Color(float cr, float cg, float cb, float ca)
void GL_BlendFunc(int blendfunc1, int blendfunc2)
void R_Mesh_PrepareVertices_Generic_Arrays(int numvertices, const float *vertex3f, const float *color4f, const float *texcoord2f)
void R_EntityMatrix(const matrix4x4_t *matrix)
void R_SetupShader_Generic(rtexture_t *t, qbool usegamma, qbool notrippy, qbool suppresstexalpha)
void R_FreeTexturePool(rtexturepool_t **rtexturepool)
rtexturepool_t * R_AllocTexturePool(void)
rtexture_t * R_LoadTexture2D(rtexturepool_t *rtexturepool, const char *identifier, int width, int height, const unsigned char *data, textype_t textype, int flags, int miplevel, const unsigned int *palette)
GLint GLenum GLint GLint y
GLsizeiptr const GLvoid * data
#define bound(min, num, max)
#define VectorCopy(in, out)
#define VectorScale(in, scale, out)
#define VectorMA(a, scale, b, out)
const matrix4x4_t identitymatrix
void R_MeshQueue_AddTransparent(dptransparentsortcategory_t category, const vec3_t center, void(*callback)(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist), const entity_render_t *ent, int surfacenumber, const rtlight_t *rtlight)
#define MAX_EXPLOSIONS
max number of explosion shell effects active at once (not particle related)
static rtexturepool_t * explosiontexturepool
static void R_DrawExplosion_TransparentCallback(const entity_render_t *ent, const rtlight_t *rtlight, int numsurfaces, int *surfacelist)
static void r_explosion_newmap(void)
static void r_explosion_shutdown(void)
void R_DrawExplosions(void)
static int R_ExplosionVert(int column, int row)
void R_Explosion_Init(void)
static void r_explosion_start(void)
static rtexture_t * explosiontexture
static float explosiontexcoord2f[EXPLOSIONVERTS][2]
static cvar_t r_drawexplosions
static int explosionnoiseindex[EXPLOSIONVERTS]
static vec3_t explosionpoint[EXPLOSIONVERTS]
void R_NewExplosion(const vec3_t org)
static unsigned short explosiontris[EXPLOSIONTRIS][3]
static void R_MoveExplosion(explosion_t *e)
static explosion_t explosion[MAX_EXPLOSIONS]
void R_RegisterModule(const char *name, void(*start)(void), void(*shutdown)(void), void(*newmap)(void), void(*devicelost)(void), void(*devicerestored)(void))
@ TRANSPARENTSORT_DISTANCE
vec3_t vertvel[EXPLOSIONVERTS]
vec3_t vert[EXPLOSIONVERTS]
float colorscale
global RGB color multiplier for rendering