From 30a95966ecb1d6f88a7a789ff1aaee442241c84c Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 6 Feb 2014 20:42:09 +0000 Subject: (svn r26308) -Fix-ish: do not try to build more towns/industries than the pool can hold (MJP) --- src/industry_cmd.cpp | 2 +- src/town_cmd.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 0bc92459d..34096be92 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1995,7 +1995,7 @@ static uint GetNumberOfIndustries() assert(lengthof(numof_industry_table) == ID_END); uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.industry_density : (uint)ID_VERY_LOW; - return ScaleByMapSize(numof_industry_table[difficulty]); + return min(IndustryPool::MAX_SIZE, ScaleByMapSize(numof_industry_table[difficulty])); } /** diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index b6cd19bc2..d9843866c 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1880,6 +1880,7 @@ bool GenerateTowns(TownLayout layout) uint current_number = 0; uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_towns : 0; uint total = (difficulty == (uint)CUSTOM_TOWN_NUMBER_DIFFICULTY) ? _settings_game.game_creation.custom_town_number : ScaleByMapSize(_num_initial_towns[difficulty] + (Random() & 7)); + total = min(TownPool::MAX_SIZE, total); uint32 townnameparts; SetGeneratingWorldProgress(GWP_TOWN, total); -- cgit v1.2.3-54-g00ecf