Fix: Prevent overflow when calculating max town noise (#11564)

Max town noise could overflow if the population was high enough. The value is now clamped.
This commit is contained in:
SamuXarick
2023-12-10 15:42:55 +00:00
committed by GitHub
parent 09251d993c
commit a3d56e2c6e

View File

@@ -119,7 +119,7 @@ struct Town : TownPool::PoolItem<&_town_pool> {
if (this->cache.population == 0) return 0; // no population? no noise if (this->cache.population == 0) return 0; // no population? no noise
/* 3 is added (the noise of the lowest airport), so the user can at least build a small airfield. */ /* 3 is added (the noise of the lowest airport), so the user can at least build a small airfield. */
return (this->cache.population / _settings_game.economy.town_noise_population[_settings_game.difficulty.town_council_tolerance]) + 3; return ClampTo<uint16_t>((this->cache.population / _settings_game.economy.town_noise_population[_settings_game.difficulty.town_council_tolerance]) + 3);
} }
void UpdateVirtCoord(); void UpdateVirtCoord();