(svn r20738) -Codechange: Introduce a function for getting the number of industries that should be build.

This commit is contained in:
alberth 2010-09-04 12:09:12 +00:00
parent 21a80e0a0e
commit 4f435d9256
1 changed files with 20 additions and 11 deletions

View File

@ -1881,14 +1881,25 @@ static uint16 GetIndustryGamePlayProbability(IndustryType it)
return chance; return chance;
} }
/** Number of industries on a 256x256 map */ /**
static const byte _numof_industry_table[] = { * Get wanted number of industries on the map.
0, // none * @return Wanted number of industries at the map.
10, // very low */
25, // low static uint GetNumberOfIndustries()
55, // normal {
80, // high /* Number of industries on a 256x256 map. */
}; static const uint16 numof_industry_table[] = {
0, // none
10, // very low
25, // low
55, // normal
80, // high
};
assert(_settings_game.difficulty.number_industries < lengthof(numof_industry_table));
uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_industries : 1;
return ScaleByMapSize(numof_industry_table[difficulty]);
}
/** /**
* Advertise about a new industry opening. * Advertise about a new industry opening.
@ -1947,9 +1958,7 @@ static void PlaceInitialIndustry(IndustryType type, bool try_hard)
*/ */
void GenerateIndustries() void GenerateIndustries()
{ {
assert(_settings_game.difficulty.number_industries < lengthof(_numof_industry_table)); uint total_amount = GetNumberOfIndustries();
uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_industries : 1;
uint total_amount = ScaleByMapSize(_numof_industry_table[difficulty]);
/* Do not create any industries? */ /* Do not create any industries? */
if (total_amount == 0) return; if (total_amount == 0) return;