From 381fb73863d19ff5192c94ac6d55bcab479767f6 Mon Sep 17 00:00:00 2001 From: havoc Date: Mon, 17 May 2004 20:06:10 +0000 Subject: [PATCH] Tomaz added some cl_explosions cvars, more work on this to come git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4183 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 11 +++++++++++ client.h | 5 +++++ r_explosion.c | 13 ++++++------- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/cl_main.c b/cl_main.c index b9ce01a3..588be09c 100644 --- a/cl_main.c +++ b/cl_main.c @@ -47,6 +47,12 @@ cvar_t freelook = {CVAR_SAVE, "freelook", "1"}; cvar_t r_draweffects = {0, "r_draweffects", "1"}; cvar_t cl_explosions = {CVAR_SAVE, "cl_explosions", "1"}; +cvar_t cl_explosions_alpha_start = {CVAR_SAVE, "cl_explosions_alpha_start", "1.5"}; +cvar_t cl_explosions_alpha_end = {CVAR_SAVE, "cl_explosions_alpha_end", "0.01"}; +cvar_t cl_explosions_size_start = {CVAR_SAVE, "cl_explosions_size_start", "1"}; +cvar_t cl_explosions_size_end = {CVAR_SAVE, "cl_explosions_size_end", "1"}; +cvar_t cl_explosions_lifetime = {CVAR_SAVE, "cl_explosions_lifetime", "1"}; + cvar_t cl_stainmaps = {CVAR_SAVE, "cl_stainmaps", "1"}; cvar_t cl_beams_polygons = {CVAR_SAVE, "cl_beams_polygons", "1"}; @@ -1274,6 +1280,11 @@ void CL_Init (void) Cvar_RegisterVariable(&r_draweffects); Cvar_RegisterVariable(&cl_explosions); + Cvar_RegisterVariable(&cl_explosions_alpha_start); + Cvar_RegisterVariable(&cl_explosions_alpha_end); + Cvar_RegisterVariable(&cl_explosions_size_start); + Cvar_RegisterVariable(&cl_explosions_size_end); + Cvar_RegisterVariable(&cl_explosions_lifetime); Cvar_RegisterVariable(&cl_stainmaps); Cvar_RegisterVariable(&cl_beams_polygons); Cvar_RegisterVariable(&cl_beams_relative); diff --git a/client.h b/client.h index bd4689bc..469ed9b6 100644 --- a/client.h +++ b/client.h @@ -587,6 +587,11 @@ extern cvar_t m_side; extern cvar_t r_draweffects; extern cvar_t cl_explosions; +extern cvar_t cl_explosions_alpha_start; +extern cvar_t cl_explosions_alpha_end; +extern cvar_t cl_explosions_size_start; +extern cvar_t cl_explosions_size_end; +extern cvar_t cl_explosions_lifetime; extern cvar_t cl_stainmaps; // these are updated by CL_ClearState diff --git a/r_explosion.c b/r_explosion.c index bf336b63..d37705cc 100644 --- a/r_explosion.c +++ b/r_explosion.c @@ -26,7 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define EXPLOSIONVERTS ((EXPLOSIONGRID+1)*(EXPLOSIONGRID+1)) #define EXPLOSIONTRIS (EXPLOSIONGRID*EXPLOSIONGRID*2) #define EXPLOSIONSTARTVELOCITY (256.0f) -#define EXPLOSIONFADESTART (1.5f) #define EXPLOSIONFADERATE (3.0f) float explosiontexcoord2f[EXPLOSIONVERTS][2]; @@ -153,11 +152,11 @@ void R_NewExplosion(vec3_t org) fractalnoisequick(noise, EXPLOSIONGRID, 4); // adjust noise grid size according to explosion for (i = 0;i < MAX_EXPLOSIONS;i++) { - if (explosion[i].alpha <= 0.01f) + if (explosion[i].alpha <= cl_explosions_alpha_end.value) { explosion[i].starttime = cl.time; explosion[i].time = explosion[i].starttime - 0.1; - explosion[i].alpha = EXPLOSIONFADESTART; + explosion[i].alpha = cl_explosions_alpha_start.value; VectorCopy(org, explosion[i].origin); for (j = 0;j < EXPLOSIONVERTS;j++) { @@ -209,8 +208,8 @@ void R_MoveExplosion(explosion_t *e) frametime = cl.time - e->time; e->time = cl.time; - e->alpha = EXPLOSIONFADESTART - (cl.time - e->starttime) * EXPLOSIONFADERATE; - if (e->alpha <= 0.01f) + e->alpha = cl_explosions_alpha_start.value - (cl.time - e->starttime) * EXPLOSIONFADERATE; + if (e->alpha <= cl_explosions_alpha_end.value) { e->alpha = -1; return; @@ -248,7 +247,7 @@ void R_MoveExplosions(void) frametime = cl.time - cl.oldtime; for (i = 0;i < MAX_EXPLOSIONS;i++) - if (explosion[i].alpha > 0.01f) + if (explosion[i].alpha > cl_explosions_alpha_end.value) R_MoveExplosion(&explosion[i]); } @@ -259,7 +258,7 @@ void R_DrawExplosions(void) if (!r_drawexplosions.integer) return; for (i = 0;i < MAX_EXPLOSIONS;i++) - if (explosion[i].alpha > 0.01f) + if (explosion[i].alpha > cl_explosions_alpha_end.value) R_MeshQueue_AddTransparent(explosion[i].origin, R_DrawExplosionCallback, &explosion[i], 0); } -- 2.39.2