// (this leaves only a vector pointing directly away from the beam)
t1 = -DotProduct(up, beamdir);
VectorMA(up, t1, beamdir, up);
- // now we have a vector pointing away from the beam, now we need to normalize it
- VectorNormalizeFast(up);
- // generate right vector from forward and up, the result is already normalized
- // (CrossProduct returns a vector of multiplied length of the two inputs)
+ // generate right vector from forward and up, the result is unnormalized
CrossProduct(beamdir, up, right);
+ // now normalize the right vector and up vector
+ VectorNormalize(right);
+ VectorNormalize(up);
// calculate T coordinate scrolling (start and end texcoord along the beam)
- t1 = cl.time * -r_lightningbeam_scroll.value;// + beamrepeatscale * DotProduct(b->start, beamdir);
+ t1 = r_refdef.time * -r_lightningbeam_scroll.value;// + beamrepeatscale * DotProduct(b->start, beamdir);
t1 = t1 - (int) t1;
t2 = t1 + beamrepeatscale * length;
beamrepeatscale = 1.0f / r_lightningbeam_repeatdistance.value;
for (i = 0, b = cl_beams;i < cl_max_beams;i++, b++)
{
- if (b->model && b->endtime >= cl.time && b->lightning)
+ if (b->model && b->endtime >= r_refdef.time && b->lightning)
{
VectorAdd(b->start, b->end, org);
VectorScale(org, 0.5f, org);