engine: client: minor refactoring in CL_DecayLights, get rid of pointer iterating in for-loop

This commit is contained in:
Alibek Omarov 2024-08-07 09:23:01 +03:00
parent b4db99006b
commit b508a33f5d

View file

@ -2571,31 +2571,43 @@ CL_DecayLights
*/ */
void CL_DecayLights( void ) void CL_DecayLights( void )
{ {
dlight_t *dl; const float time = cl.time;
float time; const float dt = cl.time - cl.oldtime;
int i; int i;
time = cl.time - cl.oldtime; for( i = 0; i < MAX_DLIGHTS; i++ )
for( i = 0, dl = cl_dlights; i < MAX_DLIGHTS; i++, dl++ )
{ {
if( !dl->radius ) continue; dlight_t *dl = &cl_dlights[i];
dl->radius -= time * dl->decay; if( !dl->radius )
if( dl->radius < 0 ) dl->radius = 0; continue;
if( dl->die < cl.time || !dl->radius ) if( dl->die < time )
{
memset( dl, 0, sizeof( *dl ));
continue;
}
dl->radius -= dt * dl->decay;
if( dl->radius <= 0 )
memset( dl, 0, sizeof( *dl )); memset( dl, 0, sizeof( *dl ));
} }
for( i = 0, dl = cl_elights; i < MAX_ELIGHTS; i++, dl++ ) for( i = 0; i < MAX_ELIGHTS; i++ )
{ {
if( !dl->radius ) continue; dlight_t *dl = &cl_elights[i];
dl->radius -= time * dl->decay; if( !dl->radius )
if( dl->radius < 0 ) dl->radius = 0; continue;
if( dl->die < cl.time || !dl->radius ) if( dl->die < time )
{
memset( dl, 0, sizeof( *dl ));
continue;
}
dl->radius -= dt * dl->decay;
if( dl->radius <= 0 )
memset( dl, 0, sizeof( *dl )); memset( dl, 0, sizeof( *dl ));
} }
} }