From eefba527359f6ad8a075d96d7953e7fb03e44363 Mon Sep 17 00:00:00 2001 From: Matt <5415177+ZehMatt@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:36:26 +0200 Subject: [PATCH] Fix #23781: Changing weather does not update state for next weather (#23782) * Fix #23781: Changing weather does not update state for next weather * Bump up network version --- src/openrct2/network/NetworkBase.cpp | 2 +- src/openrct2/world/Climate.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index ee02351757..0b2f685278 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -49,7 +49,7 @@ using namespace OpenRCT2; // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -constexpr uint8_t kNetworkStreamVersion = 0; +constexpr uint8_t kNetworkStreamVersion = 1; const std::string kNetworkStreamID = std::string(kOpenRCT2Version) + "-" + std::to_string(kNetworkStreamVersion); diff --git a/src/openrct2/world/Climate.cpp b/src/openrct2/world/Climate.cpp index b23748f401..4fa8841158 100644 --- a/src/openrct2/world/Climate.cpp +++ b/src/openrct2/world/Climate.cpp @@ -223,7 +223,7 @@ void ClimateForceWeather(WeatherType weather) gameState.ClimateCurrent.Temperature = pattern.baseTemperature + trait.temperatureDelta; gameState.ClimateUpdateTimer = 1920; - ClimateUpdate(); + ClimateDetermineFutureWeather(ScenarioRand()); // In case of change in gloom level force a complete redraw GfxInvalidateScreen(); @@ -311,8 +311,8 @@ static void ClimateDetermineFutureWeather(uint32_t randomValue) // Generate a random index with values 0 up to randomBias-1 // and choose weather from the distribution table accordingly const auto& pattern = kClimatePatterns[EnumValue(gameState.Climate)][month]; - size_t randomIndex = ((randomValue % 256) * pattern.randomBias) / 256; - auto nextWeather = pattern.distribution[randomIndex]; + const auto randomIndex = ((randomValue % 256) * pattern.randomBias) / 256; + const auto nextWeather = pattern.distribution[randomIndex]; gameState.ClimateNext.Weather = nextWeather; const auto& nextWeatherTrait = kClimateWeatherTraits[EnumValue(nextWeather)];