#pragma once #include "CoreMinimal.h" class USpotLightComponent; namespace Descent::Look { /** The spot lamps of DESIGN_UE.md section 7.5 that this track configures. */ enum class ELamp : uint8 { TenderHeadlamp, // spot, R 90 m, 14.5 / 26.4 deg, #e6f6ff, 3.2 Flashlight, // spot, R 55 m, 12 / 20.6 deg, #fff2dc, 2.0 }; /** * Sets a spot light up the way every gameplay lamp is set up (section 7.5): no inverse-square falloff, falloff * exponent 3 (attenuation (1 - (d/R)^2)^3: near surfaces are not blown out and the range ends softly), the * kind's radius, cone, colour and volumetric scattering. IntensityScale multiplies the unitless start intensity * (the calibration scenario and the horror flicker use it). Call it in a constructor, before registration. */ THEDESCENT_API void ConfigureSpot(USpotLightComponent* Light, ELamp Kind, double IntensityScale = 1.0); }