Changeset - r17250:826c29ab7dc1
[Not reviewed]
master
0 5 0
alberth - 13 years ago 2011-02-06 18:11:39
alberth@openttd.org
(svn r22000) -Codechange: Introduce an enum for the industry density setting.
5 files changed with 24 insertions and 10 deletions:
0 comments (0 inline, 0 general)
src/genworld_gui.cpp
Show inline comments
 
@@ -339,6 +339,8 @@ static const StringID _num_towns[]   = {
 
static const StringID _num_inds[]    = {STR_FUNDING_ONLY, STR_MINIMAL, STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, INVALID_STRING_ID};
 
static const StringID _variety[]     = {STR_VARIETY_NONE, STR_VARIETY_VERY_LOW, STR_VARIETY_LOW, STR_VARIETY_MEDIUM, STR_VARIETY_HIGH, STR_VARIETY_VERY_HIGH, INVALID_STRING_ID};
 

	
 
assert_compile(lengthof(_num_inds) == ID_END + 1);
 

	
 
struct GenerateLandscapeWindow : public QueryStringBaseWindow {
 
	uint widget_id;
 
	uint x;
src/industry_cmd.cpp
Show inline comments
 
@@ -1847,7 +1847,7 @@ static uint32 GetScaledIndustryGeneratio
 
	uint32 chance = ind_spc->appear_creation[_settings_game.game_creation.landscape] * 16; // * 16 to increase precision
 
	if (!ind_spc->enabled || chance == 0 || ind_spc->num_table == 0 ||
 
			!CheckIfCallBackAllowsAvailability(it, IACT_MAPGENERATION) ||
 
			(_game_mode != GM_EDITOR && _settings_game.difficulty.number_industries == 0)) {
 
			(_game_mode != GM_EDITOR && _settings_game.difficulty.number_industries == ID_FUND_ONLY)) {
 
		*force_at_least_one = false;
 
		return 0;
 
	} else {
 
@@ -1868,7 +1868,7 @@ static uint32 GetScaledIndustryGeneratio
 
 */
 
static uint16 GetIndustryGamePlayProbability(IndustryType it, byte *min_number)
 
{
 
	if (_settings_game.difficulty.number_industries == 0) {
 
	if (_settings_game.difficulty.number_industries == ID_FUND_ONLY) {
 
		*min_number = 0;
 
		return 0;
 
	}
 
@@ -1902,8 +1902,8 @@ static uint GetNumberOfIndustries()
 
		80,   // high
 
	};
 

	
 
	assert(_settings_game.difficulty.number_industries < lengthof(numof_industry_table));
 
	uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_industries : 2;
 
	assert(lengthof(numof_industry_table) == ID_END);
 
	uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_industries : (uint)ID_VERY_LOW;
 
	return ScaleByMapSize(numof_industry_table[difficulty]);
 
}
 

	
 
@@ -1994,7 +1994,7 @@ void IndustryBuildData::Reset()
 
void IndustryBuildData::MonthlyLoop()
 
{
 
	static const int NEWINDS_PER_MONTH = 0x38000 / (10 * 12); // lower 16 bits is a float fraction, 3.5 industries per decade, divided by 10 * 12 months.
 
	if (_settings_game.difficulty.number_industries == 0) return; // 'no industries' setting,
 
	if (_settings_game.difficulty.number_industries == ID_FUND_ONLY) return; // 'no industries' setting,
 

	
 
	/* To prevent running out of unused industries for the player to connect,
 
	 * add a fraction of new industries each month, but only if the manager can keep up. */
 
@@ -2010,7 +2010,7 @@ void IndustryBuildData::MonthlyLoop()
 
 */
 
void GenerateIndustries()
 
{
 
	if (_game_mode != GM_EDITOR && _settings_game.difficulty.number_industries == 0) return; // No industries in the game.
 
	if (_game_mode != GM_EDITOR && _settings_game.difficulty.number_industries == ID_FUND_ONLY) return; // No industries in the game.
 

	
 
	uint32 industry_probs[NUM_INDUSTRYTYPES];
 
	bool force_at_least_one[NUM_INDUSTRYTYPES];
src/industry_gui.cpp
Show inline comments
 
@@ -602,7 +602,7 @@ public:
 
		this->SetupArrays();
 

	
 
		const IndustrySpec *indsp = (this->selected_type == INVALID_INDUSTRYTYPE) ? NULL : GetIndustrySpec(this->selected_type);
 
		if (indsp == NULL) this->enabled[this->selected_index] = _settings_game.difficulty.number_industries != 0;
 
		if (indsp == NULL) this->enabled[this->selected_index] = _settings_game.difficulty.number_industries != ID_FUND_ONLY;
 
		this->SetButtons();
 
	}
 
};
src/settings_type.h
Show inline comments
 
@@ -19,11 +19,23 @@
 
#include "company_type.h"
 
#include "openttd.h"
 

	
 
/** Available industry map generation densities. */
 
enum IndustryDensity {
 
	ID_FUND_ONLY, ///< The game does not build industries.
 
	ID_MINIMAL,   ///< Start with just the industries that must be present.
 
	ID_VERY_LOW,  ///< Very few industries at game start.
 
	ID_LOW,       ///< Few industries at game start.
 
	ID_NORMAL,    ///< Normal amount of industries at game start.
 
	ID_HIGH,      ///< Many industries at game start.
 

	
 
	ID_END,       ///< Number of industry density settings.
 
};
 

	
 
/** Settings related to the difficulty of the game */
 
struct DifficultySettings {
 
	byte   max_no_competitors;               ///< the number of competitors (AIs)
 
	byte   number_towns;                     ///< the amount of towns
 
	byte   number_industries;                ///< the amount of industries
 
	byte   number_industries;                ///< The industry density. @see IndustryDensity
 
	uint32 max_loan;                         ///< the maximum initial loan
 
	byte   initial_interest;                 ///< amount of interest (to pay over the loan)
 
	byte   vehicle_costs;                    ///< amount of money spent on vehicle running cost
src/table/settings.h
Show inline comments
 
@@ -348,7 +348,7 @@ const SettingDesc _settings[] = {
 
	 SDT_CONDVAR(GameSettings, difficulty.max_no_competitors,        SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,0,MAX_COMPANIES-1,1,STR_NULL,                                  MaxNoAIsChange),
 
	SDT_CONDNULL(                                                            1, 97, 109),
 
	 SDT_CONDVAR(GameSettings, difficulty.number_towns,              SLE_UINT8, 97, SL_MAX_VERSION, 0,NG,     2,     0,      4,  1, STR_NUM_VERY_LOW,                          DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.number_industries,         SLE_UINT8, 97, SL_MAX_VERSION, 0,NG,     5,     0,      5,  1, STR_FUNDING_ONLY,                          DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.number_industries,         SLE_UINT8, 97, SL_MAX_VERSION, 0,NG, ID_END-1,  0,ID_END-1, 1, STR_FUNDING_ONLY,                          DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.max_loan,                 SLE_UINT32, 97, SL_MAX_VERSION, 0,NS|CR,300000,100000,500000,50000,STR_NULL,                               DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.initial_interest,          SLE_UINT8, 97, SL_MAX_VERSION, 0,NS,     2,     2,      4,  1, STR_NULL,                                  DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.vehicle_costs,             SLE_UINT8, 97, SL_MAX_VERSION, 0,NS,     0,     0,      2,  1, STR_SEA_LEVEL_LOW,                         DifficultyChange),
 
@@ -362,7 +362,7 @@ const SettingDesc _settings[] = {
 
	 SDT_CONDVAR(GameSettings, difficulty.economy,                   SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,     0,      1,  1, STR_ECONOMY_STEADY,                        DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.line_reverse_mode,         SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,     0,      1,  1, STR_REVERSE_AT_END_OF_LINE_AND_AT_STATIONS,DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.disasters,                 SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,     0,      1,  1, STR_DISASTERS_OFF,                         DifficultyChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.town_council_tolerance,    SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,     0,      2,  1, STR_CITY_APPROVAL_PERMISSIVE,                            DifficultyNoiseChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.town_council_tolerance,    SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     0,     0,      2,  1, STR_CITY_APPROVAL_PERMISSIVE,              DifficultyNoiseChange),
 
	 SDT_CONDVAR(GameSettings, difficulty.diff_level,                SLE_UINT8, 97, SL_MAX_VERSION, 0, 0,     3,     0,      3,  0, STR_NULL,                                  DifficultyReset),
 

	
 
	/* There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI. */
0 comments (0 inline, 0 general)