OverrideLightingMap

Tracking Issue: #1535

Called from XComEnvLightingManager:Init

Allows for overriding the tactical mission lighting map after initial search for matching lighting definitions has been done If length of OverrideEnvLightingDefs array is non-zero, then MatchingEnvLightingDefs will be overwritten by OverrideEnvLightingDefs You can add one or more lighting definitions to OverrideEnvLightingDefs array, and one of them will be randomly selected

Usage example:

static function OverrideLightingMap(out array<EnvironmentLightingDefinition> OverrideEnvLightingDefs, const XComGameState_BattleData BattleData, const array<EnvironmentLightingDefinition> MatchingEnvLightingDefs)
{
    local XComEnvLightingManager EnvMan;
    local EnvironmentLightingDefinition LightDef;
    local string MapName;
    local ETimeOfDay TimeOfDay;

    EnvMan = `ENVLIGHTINGMGR;

    MapName = BattleData.MapData.PlotMapName;
    TimeOfDay = class'X2StrategyGameRulesetDataStructures'.static.GetTimeOfDay(BattleData.LocalTime);

    if(MapName == "MyExamplePlotMapName") // only continue if it's a map we want
    {
        foreach EnvMan.arrEnvironmentLightingDefs(LightDef)
        {
            if(TimeOfDay == eTimeOfDay_Night)   // if it's night then find night lighting map
            {
                if(LightDef.MapName == "XP_LE_AbandonedCity_Night")
                {
                    OverrideEnvLightingDefs.AddItem(LightDef);
                    break;
                }
            }
            else    // otherwise use the day map
            {
                if(LightDef.MapName == "XP_LE_AbandonedCity_Day")
                {
                    OverrideEnvLightingDefs.AddItem(LightDef);
                    break;
                }
            }
        }
    }
}

Source code references