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