- 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(ent->origin, ent->entlightsorigin, v);
+ if ((realtime > ent->entlightstime && DotProduct(v,v) >= 1.0f))
+ {
+ ent->numentlights = 0;
+ ent->entlightstime = realtime + 0.2;
+ VectorCopy(ent->origin, ent->entlightsorigin);
+ for (i = 0, sl = cl.worldmodel->lights;i < cl.worldmodel->numlights && ent->numentlights < MAXENTLIGHTS;i++, sl++)
+ if (CL_TraceLine(ent->origin, sl->origin, NULL, NULL, 0, false) == 1)
+ ent->entlights[ent->numentlights++] = i;
+ }
+ for (i = 0;i < ent->numentlights;i++)
+ {
+ sl = cl.worldmodel->lights + ent->entlights[i];
+ stylescale = d_lightstylevalue[sl->style] * (1.0f / 65536.0f);
+ VectorSubtract (ent->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