Extract light configuration validation to method and add check for aggressive inner radius usage

This commit is contained in:
Jarrod Doyle 2025-02-02 08:42:22 +00:00
parent fafae43c56
commit 4827ffb76b
Signed by: Jayrude
GPG Key ID: 38B57B16E7C0ADF7
1 changed files with 27 additions and 10 deletions

View File

@ -239,25 +239,42 @@ public class LightMapper
} }
} }
CheckLightConfigurations();
}
private void CheckLightConfigurations()
{
var infinite = 0; var infinite = 0;
foreach (var light in _lights) foreach (var light in _lights)
{ {
if (light.Radius != float.MaxValue)
{
continue;
}
if (light.Radius == float.MaxValue)
{
if (light.ObjId != -1) if (light.ObjId != -1)
{ {
Log.Warning("Infinite light from object {Id}", light.ObjId); Log.Warning("Object {Id}: Infinite light radius.", light.ObjId);
} }
else else
{ {
Log.Warning("Infinite light from brush near {Position}", light.Position); Log.Warning("Brush at {Position}: Infinite light radius.", light.Position);
} }
infinite++; infinite++;
} }
// TODO: Extract magic number
if (light.InnerRadius > 0 && light.Radius - light.InnerRadius > 4)
{
if (light.ObjId != -1)
{
Log.Warning("Object {Id}: High radius to inner-radius differential ({D}). Lightmap may not accurately represent lightgem.", light.ObjId, light.Radius - light.InnerRadius);
}
else
{
Log.Warning("Brush at {Position}: High radius to inner-radius differential ({D}). Lightmap may not accurately represent lightgem.", light.Position, light.Radius - light.InnerRadius);
}
}
}
if (infinite > 0) if (infinite > 0)
{ {
Log.Warning("Mission contains {Count} infinite lights", infinite); Log.Warning("Mission contains {Count} infinite lights", infinite);