part->airfriction = pairfriction;
part->liquidfriction = pliquidfriction;
part->die = cl.time + lifetime;
+ part->delayedspawn = cl.time;
// part->delayedcollisions = 0;
part->qualityreduction = pqualityreduction;
part->angle = angle;
case PARTICLE_BILLBOARD:
if (p->angle + p->spin)
{
- spinrad = (p->angle + p->spin * spintime) * (float)(M_PI / 180.0f);
+ spinrad = (p->angle + p->spin * (spintime - p->delayedspawn)) * (float)(M_PI / 180.0f);
spinsin = sin(spinrad) * size;
spincos = cos(spinrad) * size;
spinm1 = -p->stretch * spincos;
VectorVectors(p->vel, baseright, baseup);
if (p->angle + p->spin)
{
- spinrad = (p->angle + p->spin * spintime) * (float)(M_PI / 180.0f);
+ spinrad = (p->angle + p->spin * (spintime - p->delayedspawn)) * (float)(M_PI / 180.0f);
spinsin = sin(spinrad) * size;
spincos = cos(spinrad) * size;
spinm1 = p->stretch * spincos;
{
if (p->delayedspawn > cl.time)
continue;
- p->delayedspawn = 0;
p->size += p->sizeincrease * frametime;
p->alpha -= p->alphafade * frametime;
}
}
}
- else if (p->delayedspawn)
+ else if (p->delayedspawn > cl.time)
continue;
if (!drawparticles)
continue;