- viewdist = DotProduct(r_origin, vpn);
- for (i = 0;i < r_numdlights;i++)
- {
- rd = r_dlight + i;
- dist = (DotProduct(rd->origin, vpn) - viewdist);
- if (dist >= 24.0f && CL_TraceLine(rd->origin, r_origin, NULL, NULL, 0, true, NULL) == 1)
- {
- cscale = (1.0f / 131072.0f);
- scale = rd->cullradius * 0.25f;
- if (gl_flashblend.integer)
- {
- cscale *= 4.0f;
- scale *= 2.0f;
- }
- R_DrawSprite(GL_ONE, GL_ONE, lightcorona, true, rd->origin, vright, vup, scale, -scale, -scale, scale, rd->light[0] * cscale, rd->light[1] * cscale, rd->light[2] * cscale, 1);
- }
- }
-}
-
-/*
-=============================================================================
-
-DYNAMIC LIGHTS
-
-=============================================================================
-*/
-
-static int lightpvsbytes;
-static qbyte lightpvs[(MAX_MAP_LEAFS+7)>>3];
-
-/*
-=============
-R_MarkLights
-=============
-*/
-static void R_RecursiveMarkLights(entity_render_t *ent, vec3_t lightorigin, rdlight_t *rd, int bit, int bitindex, mnode_t *node, qbyte *pvs, int pvsbits)
-{
- int i;
- mleaf_t *leaf;
- float dist;
-
- // for comparisons to minimum acceptable light
- while(node->contents >= 0)
+ viewdist = DotProduct(r_vieworigin, r_viewforward);
+ flag = r_rtworld ? LIGHTFLAG_REALTIMEMODE : LIGHTFLAG_NORMALMODE;
+ for (lnum = 0, light = r_shadow_worldlightchain;light;light = light->next, lnum++)