- }
- e->vertvel[i][2] += sv_gravity.value * frametime * -0.25f;
- VectorScale(e->vertvel[i], frictionscale, e->vertvel[i]);
- }
- /*
- for (l = list;l < listend;l++)
- {
- VectorSubtract(e->vert[i], (*l)->origin, diff);
- dist = DotProduct(diff, diff);
- if (dist < 4096 && dist >= 1)
- {
- dist = (*l)->pressure * frametime / dist;
- VectorMA(e->vertvel[i], dist, diff, e->vertvel[i]);
- }
- }
- */
- }
-}
-
-/*
-void R_MoveExplosionGas(explosiongas_t *e, explosiongas_t **list, explosiongas_t **listend, float frametime)
-{
- vec3_t end, diff;
- vec_t dist, frictionscale;
- explosiongas_t **l;
- frictionscale = 1 - frametime;
- frictionscale = bound(0, frictionscale, 1);
- if (e->velocity[0] || e->velocity[1] || e->velocity[2])
- {
- end[0] = e->origin[0] + frametime * e->velocity[0];
- end[1] = e->origin[1] + frametime * e->velocity[1];
- end[2] = e->origin[2] + frametime * e->velocity[2];
- if (r_explosionclip.value)
- {
- float f, dot;
- vec3_t impact, normal;
- f = TraceLine(e->origin, end, impact, normal, 0);
- VectorCopy(impact, e->origin);
- if (f < 1)
- {
- // clip velocity against the wall
- dot = DotProduct(e->velocity, normal) * -1.3f;
- e->velocity[0] += normal[0] * dot;
- e->velocity[1] += normal[1] * dot;
- e->velocity[2] += normal[2] * dot;
- }
- }
- else
- {
- VectorCopy(end, e->origin);
- }
- e->velocity[2] += sv_gravity.value * frametime;
- VectorScale(e->velocity, frictionscale, e->velocity);
- }
- for (l = list;l < listend;l++)
- {
- if (*l != e)
- {
- VectorSubtract(e->origin, (*l)->origin, diff);
- dist = DotProduct(diff, diff);
- if (dist < 4096 && dist >= 1)
- {
- dist = (*l)->pressure * frametime / dist;
- VectorMA(e->velocity, dist, diff, e->velocity);
- }
- }
- }
-}
-*/
-
-void R_MoveExplosions(void)
-{
- int i;
- float frametime;
-// explosiongas_t *gaslist[MAX_EXPLOSIONGAS], **l, **end;
- frametime = cl.time - cl.oldtime;
- /*
- l = &gaslist[0];
- for (i = 0;i < MAX_EXPLOSIONGAS;i++)
- {
- if (explosiongas[i].pressure > 0)
- {
- explosiongas[i].pressure -= frametime * GASFADERATE;
- if (explosiongas[i].pressure > 0)
- *l++ = &explosiongas[i];
- }
- }
- end = l;
- for (l = gaslist;l < end;l++)
- R_MoveExplosionGas(*l, gaslist, end, frametime);
- */
-
- for (i = 0;i < MAX_EXPLOSIONS;i++)
- {
- if (explosion[i].alpha > 0.0f)
- {
- if (explosion[i].starttime > cl.time)
- {
- explosion[i].alpha = 0;
- continue;
- }
- R_MoveExplosion(&explosion[i], /*gaslist, end, */frametime);