static int numexplosions = 0;
static float explosiontexcoord2f[EXPLOSIONVERTS][2];
-static int explosiontris[EXPLOSIONTRIS][3];
+static unsigned short explosiontris[EXPLOSIONTRIS][3];
static int explosionnoiseindex[EXPLOSIONVERTS];
static vec3_t explosionpoint[EXPLOSIONVERTS];
GL_CullFace(r_refdef.view.cullface_back);
R_Mesh_Matrix(&identitymatrix);
+ R_SetupGenericShader(true);
R_Mesh_ColorPointer(NULL, 0, 0);
memset(&m, 0, sizeof(m));
m.tex[0] = R_GetTexture(explosiontexture);
// FIXME: fixed function path can't properly handle r_refdef.view.colorscale > 1
GL_Color(e->alpha * r_refdef.view.colorscale, e->alpha * r_refdef.view.colorscale, e->alpha * r_refdef.view.colorscale, 1);
GL_LockArrays(0, numverts);
- R_Mesh_Draw(0, numverts, numtriangles, explosiontris[0], 0, 0);
+ R_Mesh_Draw(0, numverts, 0, numtriangles, NULL, explosiontris[0], 0, 0);
GL_LockArrays(0, 0);
}
}
}
}
-
-void R_MoveExplosions(void)
-{
- int i;
- for (i = 0;i < numexplosions;i++)
- if (explosion[i].alpha)
- R_MoveExplosion(&explosion[i]);
- while (numexplosions > 0 && explosion[i-1].alpha <= 0)
- numexplosions--;
-}
-
void R_DrawExplosions(void)
{
int i;
if (!r_drawexplosions.integer)
return;
+
for (i = 0;i < numexplosions;i++)
+ {
if (explosion[i].alpha)
- R_MeshQueue_AddTransparent(explosion[i].origin, R_DrawExplosion_TransparentCallback, NULL, i, NULL);
+ {
+ R_MoveExplosion(&explosion[i]);
+ if (explosion[i].alpha)
+ R_MeshQueue_AddTransparent(explosion[i].origin, R_DrawExplosion_TransparentCallback, NULL, i, NULL);
+ }
+ }
+ while (numexplosions > 0 && explosion[i-1].alpha <= 0)
+ numexplosions--;
}