#include "StdInc.h" #include "TimeCycleDebugModule.h" #include "CTeleportDebugModule.h" #include "Lines.h" #include "PedPlacement.h" uint8 ColorU8(float color) { return (uint8)(color * 255.0f); } float ColorF32(uint8 color) { return float(color) / 255.0f; } float ColorF32(float color) { return color / 255.0f; } constexpr const char* WEATHER_NAMES[] = { "EXTRASUNNY_LA", "SUNNY_LA", "EXTRASUNNY_SMOG_LA", "SUNNY_SMOG_LA", "CLOUDY_LA", "SUNNY_SF", "EXTRASUNNY_SF", "CLOUDY_SF", "RAINY_SF", "FOGGY_SF", "SUNNY_VEGAS", "EXTRASUNNY_VEGAS", "CLOUDY_VEGAS", "EXTRASUNNY_COUNTRYSIDE", "SUNNY_COUNTRYSIDE", "CLOUDY_COUNTRYSIDE", "RAINY_COUNTRYSIDE", "EXTRASUNNY_DESERT", "SUNNY_DESERT", "SANDSTORM_DESERT", "UNDERWATER", "EXTRACOLOURS_1", "EXTRACOLOURS_2" }; void TimeCycleDebugModule::RenderMenuEntry() { notsa::ui::DoNestedMenuIL({ "Extra" }, [&] { ImGui::MenuItem("TimeCyc", nullptr, &m_IsOpen); }); notsa::ui::DoNestedMenuIL({ "Visualization", "TimeCyc" }, [&] { ImGui::Checkbox("Show Boxes", &m_ShowBoxes); }); } void TimeCycleDebugModule::RenderWindow() { const notsa::ui::ScopedWindow wnd{ "TimeCyc", {500.f, 700.f}, m_IsOpen }; if (!m_IsOpen) { return; } SyncFromGame(); ImGui::Checkbox("Stop Time", &CClock::gbFreezeTime); ImGui::SameLine(); if (ImGui::Button("Save")) { CMessages::AddBigMessage("Saved"_gxt, 3000, STYLE_MIDDLE); } ImGui::SameLine(); if (ImGui::Button("Reset")) { CTimeCycle::Initialise(); } ImGui::Checkbox("Extra Colour On", reinterpret_cast(&CTimeCycle::m_bExtraColourOn)); ImGui::Checkbox("Show boxes", &m_ShowBoxes); if (m_ShowBoxes) { RenderBoxesGUI(); ImGui::NewLine(); } ImGui::SliderInt("Selected Hour", &m_TimeId, 0, CTimeCycle::NUM_HOURS); // todo: Calc this from the current time if (ImGui::Combo("Current Weather", &m_OldWeatherTypeId, WEATHER_NAMES, std::size(WEATHER_NAMES))) { CWeather::OldWeatherType = static_cast(m_OldWeatherTypeId); } if (ImGui::Combo("Next Weather", &m_NewWeatherType, WEATHER_NAMES, std::size(WEATHER_NAMES))) { CWeather::NewWeatherType = static_cast(m_NewWeatherType); } if (ImGui::SliderInt("Hours", &m_Hours, 0, 23, "%d")) { CClock::ms_nGameClockHours = static_cast(m_Hours); } if (ImGui::SliderInt("Minutes", &m_Minutes, 0, 59, "%d")) { CClock::ms_nGameClockMinutes = static_cast(m_Minutes); } ImGui::NewLine(); if (ImGui::ColorEdit3("Post Fx 1", (float*)&m_PostFx1)) { CTimeCycle::m_CurrentColours.m_fPostFx1Red = m_PostFx1.r * 255.0f; CTimeCycle::m_CurrentColours.m_fPostFx1Green = m_PostFx1.g * 255.0f; CTimeCycle::m_CurrentColours.m_fPostFx1Blue = m_PostFx1.b * 255.0f; } if (ImGui::ColorEdit3("Post Fx 2", (float*)&m_PostFx2)) { CTimeCycle::m_CurrentColours.m_fPostFx2Red = m_PostFx2.r * 255.0f; CTimeCycle::m_CurrentColours.m_fPostFx2Green = m_PostFx2.g * 255.0f; CTimeCycle::m_CurrentColours.m_fPostFx2Blue = m_PostFx2.b * 255.0f; } ImGui::NewLine(); if (ImGui::ColorEdit3("Ambient", (float*)&m_AmbRGB)) { CTimeCycle::m_nAmbientRed[m_TimeId][m_WeatherId] = ColorU8(m_AmbRGB.r); CTimeCycle::m_nAmbientGreen[m_TimeId][m_WeatherId] = ColorU8(m_AmbRGB.g); CTimeCycle::m_nAmbientBlue[m_TimeId][m_WeatherId] = ColorU8(m_AmbRGB.b); } if (ImGui::ColorEdit3("Ambient Obj", (float*)&m_AmbObjRGB)) { CTimeCycle::m_nAmbientRed_Obj[m_TimeId][m_WeatherId] = ColorU8(m_AmbObjRGB.r); CTimeCycle::m_nAmbientGreen_Obj[m_TimeId][m_WeatherId] = ColorU8(m_AmbObjRGB.g); CTimeCycle::m_nAmbientBlue_Obj[m_TimeId][m_WeatherId] = ColorU8(m_AmbObjRGB.b); } ImGui::NewLine(); if (ImGui::ColorEdit3("Sky Top", (float*)&m_SkyTopRGB)) { CTimeCycle::m_nSkyTopRed[m_TimeId][m_WeatherId] = ColorU8(m_SkyTopRGB.r); CTimeCycle::m_nSkyTopGreen[m_TimeId][m_WeatherId] = ColorU8(m_SkyTopRGB.g); CTimeCycle::m_nSkyTopBlue[m_TimeId][m_WeatherId] = ColorU8(m_SkyTopRGB.b); } if (ImGui::ColorEdit3("Sky Bottom", (float*)&m_SkyBottomRGB)) { CTimeCycle::m_nSkyBottomRed[m_TimeId][m_WeatherId] = ColorU8(m_SkyBottomRGB.r); CTimeCycle::m_nSkyBottomGreen[m_TimeId][m_WeatherId] = ColorU8(m_SkyBottomRGB.g); CTimeCycle::m_nSkyBottomBlue[m_TimeId][m_WeatherId] = ColorU8(m_SkyBottomRGB.b); } ImGui::NewLine(); auto& vec = CTimeCycle::m_VectorToSun[0]; ImGui::Text("Vector To Sun XYZ: %.3f %.3f %.3f", vec.x, vec.y, vec.z); if (ImGui::ColorEdit3("Sun Core", (float*)&m_SunCoreRGB)) { CTimeCycle::m_nSunCoreRed[m_TimeId][m_WeatherId] = ColorU8(m_SunCoreRGB.r); CTimeCycle::m_nSunCoreGreen[m_TimeId][m_WeatherId] = ColorU8(m_SunCoreRGB.g); CTimeCycle::m_nSunCoreBlue[m_TimeId][m_WeatherId] = ColorU8(m_SunCoreRGB.b); } if (ImGui::ColorEdit3("Sun Corona", (float*)&m_SunCoronaRGB)) { CTimeCycle::m_nSunCoronaRed[m_TimeId][m_WeatherId] = ColorU8(m_SunCoronaRGB.r); CTimeCycle::m_nSunCoronaGreen[m_TimeId][m_WeatherId] = ColorU8(m_SunCoronaRGB.g); CTimeCycle::m_nSunCoronaBlue[m_TimeId][m_WeatherId] = ColorU8(m_SunCoronaRGB.b); } if (ImGui::SliderInt("Sun Size", &m_SunSize, 0, 255)) { CTimeCycle::m_fSunSize[m_TimeId][m_WeatherId] = m_SunSize; } ImGui::SliderFloat("Light Direction To Sun X", &CTimeCycle::m_vecDirnLightToSun.x, 0, 255); ImGui::SliderFloat("Light Direction To Sun Y", &CTimeCycle::m_vecDirnLightToSun.z, 0, 255); ImGui::SliderFloat("Light Direction To Sun Z", &CTimeCycle::m_vecDirnLightToSun.y, 0, 255); if (ImGui::ColorEdit4("Below Horizon Grey", (float*)&m_BelowHorizonGrey)) { CTimeCycle::m_BelowHorizonGrey.red = ColorU8(m_BelowHorizonGrey.r); CTimeCycle::m_BelowHorizonGrey.green = ColorU8(m_BelowHorizonGrey.g); CTimeCycle::m_BelowHorizonGrey.blue = ColorU8(m_BelowHorizonGrey.b); CTimeCycle::m_BelowHorizonGrey.alpha = ColorU8(m_BelowHorizonGrey.a); } ImGui::NewLine(); if (ImGui::SliderInt("Sprite Size", &m_SpriteSize, 0, 255)) { CTimeCycle::m_fSpriteSize[m_TimeId][m_WeatherId] = m_SpriteSize; } if (ImGui::SliderInt("Sprite Brightness", &m_SpriteBrightness, 1, 10)) { CTimeCycle::m_fSpriteBrightness[m_TimeId][m_WeatherId] = m_SpriteBrightness; } if (ImGui::SliderInt("Shadows Strength", &m_ShadowStrength, 0, 255)) { CTimeCycle::m_nShadowStrength[m_TimeId][m_WeatherId] = m_ShadowStrength; } if (ImGui::SliderInt("Light Shadows Strength", &m_LightShadowStrength, 0, 255)) { CTimeCycle::m_nLightShadowStrength[m_TimeId][m_WeatherId] = m_LightShadowStrength; } if (ImGui::SliderInt("Pole Shadows Strength", &m_PoleShadowStrength, 0, 255)) { CTimeCycle::m_nPoleShadowStrength[m_TimeId][m_WeatherId] = m_PoleShadowStrength; } if (ImGui::SliderInt("Light On Ground Brightness", &m_LightsOnGroundBrightness, 0, 255)) { CTimeCycle::m_fLightsOnGroundBrightness[m_TimeId][m_WeatherId] = m_LightsOnGroundBrightness; } if (ImGui::SliderInt("Far Clip", &m_FarClip, INT16_MIN, INT16_MAX)) { CTimeCycle::m_fFarClip[m_TimeId][m_WeatherId] = static_cast(m_FarClip); } if (ImGui::SliderInt("Fog Start", &m_FogStart, INT16_MIN, INT16_MAX)) { CTimeCycle::m_fFogStart[m_TimeId][m_WeatherId] = static_cast(m_FogStart); } ImGui::NewLine(); if (ImGui::ColorEdit3("Low Clouds", (float*)&m_LowCloudsRGB)) { CTimeCycle::m_nLowCloudsRed[m_TimeId][m_WeatherId] = ColorU8(m_LowCloudsRGB.r); CTimeCycle::m_nLowCloudsGreen[m_TimeId][m_WeatherId] = ColorU8(m_LowCloudsRGB.g); CTimeCycle::m_nLowCloudsBlue[m_TimeId][m_WeatherId] = ColorU8(m_LowCloudsRGB.b); } if (ImGui::ColorEdit3("Fluffy Clouds", (float*)&m_FluffyCloudsBottom)) { CTimeCycle::m_nFluffyCloudsBottomRed[m_TimeId][m_WeatherId] = ColorU8(m_FluffyCloudsBottom.r); CTimeCycle::m_nFluffyCloudsBottomGreen[m_TimeId][m_WeatherId] = ColorU8(m_FluffyCloudsBottom.g); CTimeCycle::m_nFluffyCloudsBottomBlue[m_TimeId][m_WeatherId] = ColorU8(m_FluffyCloudsBottom.b); } if (ImGui::ColorEdit4("Water", (float*)&m_WaterRGBA)) { CTimeCycle::m_fWaterRed[m_TimeId][m_WeatherId] = ColorU8(m_WaterRGBA.r); CTimeCycle::m_fWaterGreen[m_TimeId][m_WeatherId] = ColorU8(m_WaterRGBA.g); CTimeCycle::m_fWaterBlue[m_TimeId][m_WeatherId] = ColorU8(m_WaterRGBA.b); CTimeCycle::m_fWaterAlpha[m_TimeId][m_WeatherId] = ColorU8(m_WaterRGBA.a); } if (ImGui::ColorEdit4("Post Fx 1", (float*)&m_PostFx1RGBA)) { CTimeCycle::m_fPostFx1Red[m_TimeId][m_WeatherId] = ColorU8(m_PostFx1RGBA.r); CTimeCycle::m_fPostFx1Green[m_TimeId][m_WeatherId] = ColorU8(m_PostFx1RGBA.g); CTimeCycle::m_fPostFx1Blue[m_TimeId][m_WeatherId] = ColorU8(m_PostFx1RGBA.b); CTimeCycle::m_fPostFx1Alpha[m_TimeId][m_WeatherId] = ColorU8(m_PostFx1RGBA.a); } if (ImGui::ColorEdit4("Post Fx 2", (float*)&m_PostFx2RGBA)) { CTimeCycle::m_fPostFx2Red[m_TimeId][m_WeatherId] = ColorU8(m_PostFx2RGBA.r); CTimeCycle::m_fPostFx2Green[m_TimeId][m_WeatherId] = ColorU8(m_PostFx2RGBA.g); CTimeCycle::m_fPostFx2Blue[m_TimeId][m_WeatherId] = ColorU8(m_PostFx2RGBA.b); CTimeCycle::m_fPostFx2Alpha[m_TimeId][m_WeatherId] = ColorU8(m_PostFx2RGBA.a); } if (ImGui::ColorEdit3("Brightness Added To Ambient", (float*)&m_BrightnessAddedToAmbient)) { CTimeCycle::m_BrightnessAddedToAmbientRed = m_BrightnessAddedToAmbient.r; CTimeCycle::m_BrightnessAddedToAmbientGreen = m_BrightnessAddedToAmbient.g; CTimeCycle::m_BrightnessAddedToAmbientBlue = m_BrightnessAddedToAmbient.b; } if (ImGui::SliderInt("Cloud Alpha", &m_CloudAlpha, 0, 255)) { CTimeCycle::m_fCloudAlpha[m_TimeId][m_WeatherId] = m_CloudAlpha; } if (ImGui::SliderInt("High Light Min Intensity", &m_HighLightMinIntensity, 0, 255)) { CTimeCycle::m_nHighLightMinIntensity[m_TimeId][m_WeatherId] = m_HighLightMinIntensity; } if (ImGui::SliderInt("Water Fog Alpha", &m_WaterFogAlpha, 0, 255)) { CTimeCycle::m_nWaterFogAlpha[m_TimeId][m_WeatherId] = m_WaterFogAlpha; } if (ImGui::SliderInt("Directional Mult", &m_DirectionalMult, 0, 255)) { CTimeCycle::m_nDirectionalMult[m_TimeId][m_WeatherId] = m_DirectionalMult; } ImGui::NewLine(); ImGui::SliderInt("Current Stored Value", &CTimeCycle::m_CurrentStoredValue, 0, 16); ImGui::SliderFloat("Shadow Front X", &CTimeCycle::m_fShadowFrontX[0], 0.0f, 1.0f); ImGui::SliderFloat("Shadow Front Y", &CTimeCycle::m_fShadowFrontY[0], 0.0f, 1.0f); ImGui::SliderFloat("Shadow Side X", &CTimeCycle::m_fShadowSideX[0], 0.0f, 1.0f); ImGui::SliderFloat("Shadow Side Y", &CTimeCycle::m_fShadowSideY[0], 0.0f, 1.0f); ImGui::SliderFloat("Shadow Displacement X", &CTimeCycle::m_fShadowDisplacementX[0], 0.0f, 1.0f); ImGui::SliderFloat("Shadow Displacement Y", &CTimeCycle::m_fShadowDisplacementY[0], 0.0f, 1.0f); ImGui::NewLine(); ImGui::SliderInt("Fog Reduction", &CTimeCycle::m_FogReduction, 0, 64); ImGui::SliderInt("Extra Colour", &CTimeCycle::m_ExtraColour, 0, 255); ImGui::SliderInt("Extra Colour Weather Type", &CTimeCycle::m_ExtraColourWeatherType, 0, 255); ImGui::SliderFloat("Extra Colour Inter", &CTimeCycle::m_ExtraColourInter, 0.0f, 1.0f); } void TimeCycleDebugModule::RenderBoxesGUI() { if (!ImGui::BeginTable("Boxes", 7)) { return; } ImGui::TableSetupColumn("Posistion"); ImGui::TableSetupColumn("Far Clip"); ImGui::TableSetupColumn("Lod Dis tMult"); ImGui::TableSetupColumn("Extra Color"); ImGui::TableSetupColumn("Strength"); ImGui::TableSetupColumn("Fall Off"); ImGui::TableSetupColumn("Teleport"); ImGui::TableHeadersRow(); for (auto& box : CTimeCycle::GetBoxes()) { ImGui::PushID(&box); const auto& boxCenter = box.Box.GetCenter(); ImGui::TableNextColumn(); ImGui::Text("%s", CTheZones::FindSmallestZoneForPosition(boxCenter, false)->GetTranslatedName()); ImGui::TableNextColumn(); ImGui::Text("%d", box.FarClip); ImGui::TableNextColumn(); ImGui::Text("%d", box.LodDistMult); ImGui::TableNextColumn(); ImGui::Text("%d", box.ExtraColor); ImGui::TableNextColumn(); ImGui::Text("%f", box.Strength); ImGui::TableNextColumn(); ImGui::Text("%f", box.Falloff); ImGui::TableNextColumn(); if (bool selected = false; ImGui::Selectable("Teleport", &selected, ImGuiSelectableFlags_SpanAllColumns)) { TeleportDebugModule::TeleportTo(boxCenter); (void)CPedPlacement::FindZCoorForPed(FindPlayerPed()->GetPosition()); // Sets ped at the correct Z } ImGui::PopID(); } ImGui::EndTable(); } void TimeCycleDebugModule::Render3D() { if (!m_ShowBoxes) { return; } for (auto& box : CTimeCycle::GetBoxes()) { box.Box.DrawWireFrame({ 255, 0, 0, 255 }, CMatrix::Unity()); } } void TimeCycleDebugModule::SyncFromGame() { m_WeatherId = CWeather::OldWeatherType; m_OldWeatherTypeId = CWeather::OldWeatherType; m_NewWeatherType = CWeather::NewWeatherType; m_Hours = CClock::ms_nGameClockHours; m_Minutes = CClock::ms_nGameClockMinutes; m_PostFx1.r = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx1Red); m_PostFx1.g = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx1Green); m_PostFx1.b = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx1Blue); m_PostFx2.r = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx2Red); m_PostFx2.g = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx2Green); m_PostFx2.b = ColorF32(CTimeCycle::m_CurrentColours.m_fPostFx2Blue); m_AmbRGB.r = ColorF32(CTimeCycle::m_nAmbientRed[m_TimeId][m_WeatherId]); m_AmbRGB.g = ColorF32(CTimeCycle::m_nAmbientGreen[m_TimeId][m_WeatherId]); m_AmbRGB.b = ColorF32(CTimeCycle::m_nAmbientBlue[m_TimeId][m_WeatherId]); m_AmbObjRGB.r = ColorF32(CTimeCycle::m_nAmbientRed_Obj[m_TimeId][m_WeatherId]); m_AmbObjRGB.g = ColorF32(CTimeCycle::m_nAmbientGreen_Obj[m_TimeId][m_WeatherId]); m_AmbObjRGB.b = ColorF32(CTimeCycle::m_nAmbientBlue_Obj[m_TimeId][m_WeatherId]); m_SkyTopRGB.r = ColorF32(CTimeCycle::m_nSkyTopRed[m_TimeId][m_WeatherId]); m_SkyTopRGB.g = ColorF32(CTimeCycle::m_nSkyTopGreen[m_TimeId][m_WeatherId]); m_SkyTopRGB.b = ColorF32(CTimeCycle::m_nSkyTopBlue[m_TimeId][m_WeatherId]); m_SkyBottomRGB.r = ColorF32(CTimeCycle::m_nSkyBottomRed[m_TimeId][m_WeatherId]); m_SkyBottomRGB.g = ColorF32(CTimeCycle::m_nSkyBottomGreen[m_TimeId][m_WeatherId]); m_SkyBottomRGB.b = ColorF32(CTimeCycle::m_nSkyBottomBlue[m_TimeId][m_WeatherId]); m_SunCoreRGB.r = ColorF32(CTimeCycle::m_nSunCoreRed[m_TimeId][m_WeatherId]); m_SunCoreRGB.g = ColorF32(CTimeCycle::m_nSunCoreGreen[m_TimeId][m_WeatherId]); m_SunCoreRGB.b = ColorF32(CTimeCycle::m_nSunCoreBlue[m_TimeId][m_WeatherId]); m_SunCoronaRGB.r = ColorF32(CTimeCycle::m_nSunCoronaRed[m_TimeId][m_WeatherId]); m_SunCoronaRGB.g = ColorF32(CTimeCycle::m_nSunCoronaGreen[m_TimeId][m_WeatherId]); m_SunCoronaRGB.b = ColorF32(CTimeCycle::m_nSunCoronaBlue[m_TimeId][m_WeatherId]); m_SunSize = CTimeCycle::m_fSunSize[m_TimeId][m_WeatherId]; m_BelowHorizonGrey.r = ColorF32(CTimeCycle::m_BelowHorizonGrey.red); m_BelowHorizonGrey.g = ColorF32(CTimeCycle::m_BelowHorizonGrey.green); m_BelowHorizonGrey.b = ColorF32(CTimeCycle::m_BelowHorizonGrey.blue); m_BelowHorizonGrey.a = ColorF32(CTimeCycle::m_BelowHorizonGrey.alpha); m_SpriteSize = CTimeCycle::m_fSpriteSize[m_TimeId][m_WeatherId]; m_SpriteBrightness = CTimeCycle::m_fSpriteBrightness[m_TimeId][m_WeatherId]; m_ShadowStrength = CTimeCycle::m_nShadowStrength[m_TimeId][m_WeatherId]; m_LightShadowStrength = CTimeCycle::m_nLightShadowStrength[m_TimeId][m_WeatherId]; m_PoleShadowStrength = CTimeCycle::m_nPoleShadowStrength[m_TimeId][m_WeatherId]; m_FarClip = CTimeCycle::m_fFarClip[m_TimeId][m_WeatherId]; m_FogStart = CTimeCycle::m_fFogStart[m_TimeId][m_WeatherId]; m_LightsOnGroundBrightness = CTimeCycle::m_fLightsOnGroundBrightness[m_TimeId][m_WeatherId]; m_LowCloudsRGB.r = ColorF32(CTimeCycle::m_nLowCloudsRed[m_TimeId][m_WeatherId]); m_LowCloudsRGB.g = ColorF32(CTimeCycle::m_nLowCloudsGreen[m_TimeId][m_WeatherId]); m_LowCloudsRGB.b = ColorF32(CTimeCycle::m_nLowCloudsBlue[m_TimeId][m_WeatherId]); m_FluffyCloudsBottom.r = ColorF32(CTimeCycle::m_nFluffyCloudsBottomRed[m_TimeId][m_WeatherId]); m_FluffyCloudsBottom.g = ColorF32(CTimeCycle::m_nFluffyCloudsBottomGreen[m_TimeId][m_WeatherId]); m_FluffyCloudsBottom.b = ColorF32(CTimeCycle::m_nFluffyCloudsBottomBlue[m_TimeId][m_WeatherId]); m_WaterRGBA.r = ColorF32(CTimeCycle::m_fWaterRed[m_TimeId][m_WeatherId]); m_WaterRGBA.g = ColorF32(CTimeCycle::m_fWaterGreen[m_TimeId][m_WeatherId]); m_WaterRGBA.b = ColorF32(CTimeCycle::m_fWaterBlue[m_TimeId][m_WeatherId]); m_WaterRGBA.a = ColorF32(CTimeCycle::m_fWaterAlpha[m_TimeId][m_WeatherId]); m_PostFx1RGBA.r = ColorF32(CTimeCycle::m_fPostFx1Red[m_TimeId][m_WeatherId]); m_PostFx1RGBA.g = ColorF32(CTimeCycle::m_fPostFx1Green[m_TimeId][m_WeatherId]); m_PostFx1RGBA.b = ColorF32(CTimeCycle::m_fPostFx1Blue[m_TimeId][m_WeatherId]); m_PostFx1RGBA.a = ColorF32(CTimeCycle::m_fPostFx1Alpha[m_TimeId][m_WeatherId]); m_PostFx2RGBA.r = ColorF32(CTimeCycle::m_fPostFx2Red[m_TimeId][m_WeatherId]); m_PostFx2RGBA.g = ColorF32(CTimeCycle::m_fPostFx2Green[m_TimeId][m_WeatherId]); m_PostFx2RGBA.b = ColorF32(CTimeCycle::m_fPostFx2Blue[m_TimeId][m_WeatherId]); m_PostFx2RGBA.a = ColorF32(CTimeCycle::m_fPostFx2Alpha[m_TimeId][m_WeatherId]); m_BrightnessAddedToAmbient.r = CTimeCycle::m_BrightnessAddedToAmbientRed; m_BrightnessAddedToAmbient.g = CTimeCycle::m_BrightnessAddedToAmbientGreen; m_BrightnessAddedToAmbient.b = CTimeCycle::m_BrightnessAddedToAmbientBlue; m_CloudAlpha = CTimeCycle::m_fCloudAlpha[m_TimeId][m_WeatherId]; m_HighLightMinIntensity = CTimeCycle::m_nHighLightMinIntensity[m_TimeId][m_WeatherId]; m_WaterFogAlpha = CTimeCycle::m_nWaterFogAlpha[m_TimeId][m_WeatherId]; m_DirectionalMult = CTimeCycle::m_nDirectionalMult[m_TimeId][m_WeatherId]; }