]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_explosion.c
fix a bunch of pointer type warnings introduced by the change to const parameters...
[xonotic/darkplaces.git] / r_explosion.c
index 8bac758f7f0a5deca46cdda934293c9fc0437e37..a3991d2c6ffa7122c8da74c5fa43fd324a5cac3e 100644 (file)
@@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
 #include "quakedef.h"
+#include "cl_collision.h"
 
 #define MAX_EXPLOSIONS 64
 #define EXPLOSIONGRID 8
@@ -261,18 +262,19 @@ void R_DrawExplosion(explosion_t *e)
                        //dist = (DotProduct(e->vert[i], centerdir) - centerdist) * scale - 2.0f;
                        VectorSubtract(e->vert[i], e->origin, diff);
                        VectorNormalizeFast(diff);
-                       dist = DotProduct(diff, centerdir) * 6.0f - 4.0f;
+                       dist = (DotProduct(diff, centerdir) * 6.0f - 4.0f) * alpha;
                        if (dist > 0)
                        {
-                               // use inverse fog alpha as color
+                               // use inverse fog alpha
                                VectorSubtract(e->vert[i], r_origin, diff);
                                ifog = 1 - exp(fogdensity/DotProduct(diff,diff));
-                               if (ifog < 0)
-                                       ifog = 0;
-                               c[i][0] = c[i][1] = c[i][2] = dist * alpha * ifog;
+                               dist = dist * ifog;
+                               if (dist < 0)
+                                       dist = 0;
                        }
                        else
-                               c[i][0] = c[i][1] = c[i][2] = 0;
+                               dist = 0;
+                       c[i][0] = c[i][1] = c[i][2] = dist;
                        c[i][3] = 1;
                }
        }
@@ -283,11 +285,10 @@ void R_DrawExplosion(explosion_t *e)
                        //dist = (DotProduct(e->vert[i], centerdir) - centerdist) * scale - 2.0f;
                        VectorSubtract(e->vert[i], e->origin, diff);
                        VectorNormalizeFast(diff);
-                       dist = DotProduct(diff, centerdir) * 6.0f - 4.0f;
-                       if (dist > 0)
-                               c[i][0] = c[i][1] = c[i][2] = dist * alpha;
-                       else
-                               c[i][0] = c[i][1] = c[i][2] = 0;
+                       dist = (DotProduct(diff, centerdir) * 6.0f - 4.0f) * alpha;
+                       if (dist < 0)
+                               dist = 0;
+                       c[i][0] = c[i][1] = c[i][2] = dist;
                        c[i][3] = 1;
                }
        }
@@ -366,7 +367,7 @@ void R_MoveExplosion(explosion_t *e/*, explosiongas_t **list, explosiongas_t **l
                        VectorMA(e->vert[i], frametime, e->vertvel[i], end);
                        if (r_explosionclip.integer)
                        {
-                               if (TraceLine(e->vert[i], end, impact, normal, 0, true) < 1)
+                               if (CL_TraceLine(e->vert[i], end, impact, normal, 0, true) < 1)
                                {
                                        // clip velocity against the wall
                                        dot = DotProduct(e->vertvel[i], normal) * -1.125f;