Merge PR #283 (max city height) into jgrpp
This commit is contained in:
@@ -1918,6 +1918,8 @@ STR_CONFIG_SETTING_TOWN_CARGO_FACTOR :Town cargo gene
|
|||||||
STR_CONFIG_SETTING_TOWN_CARGO_FACTOR_HELPTEXT :Passenger, mail, and other town cargo production is scaled by approximately 2^factor (exponential)
|
STR_CONFIG_SETTING_TOWN_CARGO_FACTOR_HELPTEXT :Passenger, mail, and other town cargo production is scaled by approximately 2^factor (exponential)
|
||||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR :Industry cargo generation factor (less < 0 < more): {STRING2}
|
STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR :Industry cargo generation factor (less < 0 < more): {STRING2}
|
||||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR_HELPTEXT :Primary industry cargo production is scaled by approximately 2^factor (exponential). This excludes tree-cutting industries.{}This is not guaranteed to be fully compatible with all industry NewGRFs.
|
STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR_HELPTEXT :Primary industry cargo production is scaled by approximately 2^factor (exponential). This excludes tree-cutting industries.{}This is not guaranteed to be fully compatible with all industry NewGRFs.
|
||||||
|
STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT :No towns above height level: {STRING2}
|
||||||
|
STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT_HELPTEXT :No towns above the specified height level are built during map creation.
|
||||||
|
|
||||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :In game placement of trees: {STRING2}
|
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :In game placement of trees: {STRING2}
|
||||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Control random appearance of trees during the game. This might affect industries which rely on tree growth, for example lumber mills
|
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Control random appearance of trees during the game. This might affect industries which rely on tree growth, for example lumber mills
|
||||||
|
@@ -2036,6 +2036,7 @@ static SettingsContainer &GetSettingsTree()
|
|||||||
genworld->Add(new SettingEntry("economy.initial_city_size"));
|
genworld->Add(new SettingEntry("economy.initial_city_size"));
|
||||||
genworld->Add(new SettingEntry("economy.town_layout"));
|
genworld->Add(new SettingEntry("economy.town_layout"));
|
||||||
genworld->Add(new SettingEntry("economy.town_min_distance"));
|
genworld->Add(new SettingEntry("economy.town_min_distance"));
|
||||||
|
genworld->Add(new SettingEntry("economy.max_town_heightlevel"));
|
||||||
genworld->Add(new SettingEntry("game_creation.build_public_roads"));
|
genworld->Add(new SettingEntry("game_creation.build_public_roads"));
|
||||||
genworld->Add(new SettingEntry("difficulty.industry_density"));
|
genworld->Add(new SettingEntry("difficulty.industry_density"));
|
||||||
genworld->Add(new SettingEntry("gui.pause_on_newgame"));
|
genworld->Add(new SettingEntry("gui.pause_on_newgame"));
|
||||||
|
@@ -634,6 +634,7 @@ struct EconomySettings {
|
|||||||
TownCargoGenMode town_cargogen_mode; ///< algorithm for generating cargo from houses, @see TownCargoGenMode
|
TownCargoGenMode town_cargogen_mode; ///< algorithm for generating cargo from houses, @see TownCargoGenMode
|
||||||
bool allow_town_roads; ///< towns are allowed to build roads (always allowed when generating world / in SE)
|
bool allow_town_roads; ///< towns are allowed to build roads (always allowed when generating world / in SE)
|
||||||
uint16 town_min_distance; ///< minimum distance between towns
|
uint16 town_min_distance; ///< minimum distance between towns
|
||||||
|
uint8 max_town_heightlevel; ///< maximum height level for towns
|
||||||
TownFounding found_town; ///< town founding.
|
TownFounding found_town; ///< town founding.
|
||||||
bool station_noise_level; ///< build new airports when the town noise level is still within accepted limits
|
bool station_noise_level; ///< build new airports when the town noise level is still within accepted limits
|
||||||
uint16 town_noise_population[3]; ///< population to base decision on noise evaluation (@see town_council_tolerance)
|
uint16 town_noise_population[3]; ///< population to base decision on noise evaluation (@see town_council_tolerance)
|
||||||
|
@@ -940,10 +940,23 @@ strhelp = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT
|
|||||||
strval = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL
|
strval = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL
|
||||||
cat = SC_ADVANCED
|
cat = SC_ADVANCED
|
||||||
|
|
||||||
;; economy.max_town_heightlevel
|
[SDT_XREF]
|
||||||
[SDT_NULL]
|
|
||||||
length = 1
|
|
||||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_JOKERPP)
|
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_JOKERPP)
|
||||||
|
xref = ""economy.max_town_heightlevel""
|
||||||
|
|
||||||
|
[SDT_VAR]
|
||||||
|
base = GameSettings
|
||||||
|
var = economy.max_town_heightlevel
|
||||||
|
type = SLE_UINT8
|
||||||
|
def = MAX_MAP_HEIGHT_LIMIT
|
||||||
|
min = 2
|
||||||
|
max = MAX_MAP_HEIGHT_LIMIT
|
||||||
|
interval = 1
|
||||||
|
str = STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT
|
||||||
|
strhelp = STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT_HELPTEXT
|
||||||
|
strval = STR_JUST_INT
|
||||||
|
cat = SC_BASIC
|
||||||
|
patxname = ""max_town_heightlevel.economy.max_town_heightlevel""
|
||||||
|
|
||||||
; link graph
|
; link graph
|
||||||
|
|
||||||
|
@@ -2118,6 +2118,11 @@ static CommandCost TownCanBePlacedHere(TileIndex tile)
|
|||||||
return_cmd_error(STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN);
|
return_cmd_error(STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check max height level. */
|
||||||
|
if (GetTileZ(tile) > _settings_game.economy.max_town_heightlevel) {
|
||||||
|
return_cmd_error(STR_ERROR_SITE_UNSUITABLE);
|
||||||
|
}
|
||||||
|
|
||||||
/* Can only build on clear flat areas, possibly with trees. */
|
/* Can only build on clear flat areas, possibly with trees. */
|
||||||
if ((!IsTileType(tile, MP_CLEAR) && !IsTileType(tile, MP_TREES)) || !IsTileFlat(tile)) {
|
if ((!IsTileType(tile, MP_CLEAR) && !IsTileType(tile, MP_TREES)) || !IsTileFlat(tile)) {
|
||||||
return_cmd_error(STR_ERROR_SITE_UNSUITABLE);
|
return_cmd_error(STR_ERROR_SITE_UNSUITABLE);
|
||||||
|
Reference in New Issue
Block a user