In the dlight_t struct, add a new member:
Code: Select all
vec3_t transformed;
In R_PushDlights, before the call to R_MarkLights, add:
Code: Select all
l->transformed[0] = l->origin[0];
l->transformed[1] = l->origin[1];
l->transformed[2] = l->origin[2];
Code: Select all
cl_dlights[k].transformed[0] = cl_dlights[k].origin[0] - currententity->origin[0];
cl_dlights[k].transformed[1] = cl_dlights[k].origin[1] - currententity->origin[1];
cl_dlights[k].transformed[2] = cl_dlights[k].origin[2] - currententity->origin[2];
Code: Select all
if (currententity == &cl_entities[0])
{
cl_dlights[lnum].transformed[0] = cl_dlights[lnum].origin[0];
cl_dlights[lnum].transformed[1] = cl_dlights[lnum].origin[1];
cl_dlights[lnum].transformed[2] = cl_dlights[lnum].origin[2];
}
else
{
cl_dlights[lnum].transformed[0] = cl_dlights[lnum].origin[0] - currententity->origin[0];
cl_dlights[lnum].transformed[1] = cl_dlights[lnum].origin[1] - currententity->origin[1];
cl_dlights[lnum].transformed[2] = cl_dlights[lnum].origin[2] - currententity->origin[2];
}
Done.
This is obviously the non-rotated version.