+ m.color = &c[0][0];
+ m.colorstep = sizeof(float[4]);
+ centerdist = DotProduct(e->origin, vpn);
+ size = 0;
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ //VectorSubtract(e->vert[i], e->origin, diff);
+ //dist = DotProduct(diff, diff);
+ dist = DotProduct(e->vert[i], vpn) - centerdist;
+ if (size < dist)
+ size = dist;
+ }
+ //scale = -1.0f / sqrt(size / EXPLOSIONVERTS);
+ //scale = -1.0f / sqrt(size);
+ scale = -1.0f / size;
+ if (fogenabled)
+ {
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ dist = DotProduct(e->vert[i], vpn) - centerdist;
+ // use inverse fog alpha as color
+ VectorSubtract(e->vert[i], r_origin, diff);
+ ifog = 1 - exp(fogdensity/DotProduct(diff,diff));
+ if (ifog < 0)
+ ifog = 0;
+ c[i][0] = ifog;
+ c[i][1] = ifog;
+ c[i][2] = ifog;
+ //c[i][3] = min(dist * scale, 1) * alpha;
+ c[i][3] = dist * scale * alpha;
+ }
+ }
+ else
+ {
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ dist = DotProduct(e->vert[i], vpn) - centerdist;
+ c[i][0] = 1;
+ c[i][1] = 1;
+ c[i][2] = 1;
+ //c[i][3] = min(dist * scale, 1) * alpha;
+ c[i][3] = dist * scale * alpha;
+ }
+ }
+ /*