+ else
+ {
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ //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;
+ c[i][3] = 1;
+ }
+ }
+ /*
+ if (fogenabled)
+ {
+ m.color = &c[0][0];
+ m.colorstep = sizeof(float[4]);
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ // 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] = alpha;
+ }
+ }
+ */
+ m.tex[0] = R_GetTexture(explosiontexture);
+ m.texcoords[0] = &explosiontexcoords[0][0];
+ m.texcoordstep[0] = sizeof(float[2]);
+
+ R_Mesh_Draw(&m);
+
+ /*
+ if (fogenabled)
+ {
+ m.blendfunc1 = GL_SRC_ALPHA;
+ m.blendfunc2 = GL_ONE;
+ for (i = 0;i < EXPLOSIONVERTS;i++)
+ {
+ VectorSubtract(e->vert[i], r_origin, diff);
+ fog = exp(fogdensity/DotProduct(diff,diff));
+ c[i][0] = fogcolor[0];
+ c[i][1] = fogcolor[1];
+ c[i][2] = fogcolor[2];
+ c[i][3] = alpha * fog;
+ }
+ //m.color = &c[0][0];
+ //m.colorstep = sizeof(float[4]);
+ m.tex[0] = R_GetTexture(explosiontexturefog);
+ R_Mesh_Draw(&m);
+ }
+ */