(svn r26308) -Fix-ish: do not try to build more towns/industries than the pool can hold (MJP)

This commit is contained in:
rubidium 2014-02-06 20:42:09 +00:00
parent 9603014102
commit 30a95966ec
2 changed files with 2 additions and 1 deletions

View File

@ -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]));
}
/**

View File

@ -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);