- nl = &nearlight[0];
- VectorSubtract(currentrenderentity->origin, currentrenderentity->entlightsorigin, v);
- if ((realtime > currentrenderentity->entlightstime && DotProduct(v,v) >= 1.0f) || currentrenderentity->numentlights >= MAXENTLIGHTS)
+ nl = &nearlight[0];
+ VectorSubtract(currentrenderentity->origin, currentrenderentity->entlightsorigin, v);
+ if ((realtime > currentrenderentity->entlightstime && DotProduct(v,v) >= 1.0f))
+ {
+ currentrenderentity->numentlights = 0;
+ currentrenderentity->entlightstime = realtime + 0.2;
+ VectorCopy(currentrenderentity->origin, currentrenderentity->entlightsorigin);
+ for (i = 0, sl = cl.worldmodel->lights;i < cl.worldmodel->numlights && currentrenderentity->numentlights < MAXENTLIGHTS;i++, sl++)
+ if (CL_TraceLine(currentrenderentity->origin, sl->origin, NULL, NULL, 0, false) == 1)
+ currentrenderentity->entlights[currentrenderentity->numentlights++] = i;
+ }
+ for (i = 0;i < currentrenderentity->numentlights;i++)
+ {
+ sl = cl.worldmodel->lights + currentrenderentity->entlights[i];
+ stylescale = d_lightstylevalue[sl->style] * (1.0f / 65536.0f);
+ VectorSubtract (currentrenderentity->origin, sl->origin, v);
+ f = ((1.0f / (DotProduct(v, v) * sl->falloff + sl->distbias)) - sl->subtract) * stylescale;
+ VectorScale(sl->light, f, ambientcolor);
+ intensity = DotProduct(ambientcolor, ambientcolor);
+ if (f < 0)
+ intensity *= -1.0f;
+ if (nearlights < maxnearlights)
+ j = nearlights++;
+ else