]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
Tomaz added some cl_explosions cvars, more work on this to come
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 17 May 2004 20:06:10 +0000 (20:06 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 17 May 2004 20:06:10 +0000 (20:06 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4183 d7cf8633-e32d-0410-b094-e92efae38249

cl_main.c
client.h
r_explosion.c

index b9ce01a39e95b66e0654305745adbfd8f82be3e7..588be09c5e875620767eff157592b0e46e027cb1 100644 (file)
--- 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);
index bd4689bc16bb0fbd5fffa64d6004155d23bd7e5c..469ed9b66cfeca85fe6b342ad4a784c71e0c227d 100644 (file)
--- 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
index bf336b6351a62528b81f6265630e907d6cc81c05..d37705cc9e18e0ddd7fb4ac1606177f74c99bdcd 100644 (file)
@@ -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);
 }