Adds additional zone configuration for cities, renames existing zone configuration to towns.

This commit is contained in:
reldred 2021-04-10 15:15:16 +09:30 committed by Jonathan G Rennison
parent 272e583478
commit d1d27c0748
7 changed files with 153 additions and 36 deletions

View File

@ -1943,16 +1943,26 @@ STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_ZONES :{ORANGE}Custom town zones
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE :Use custom town zone calculations: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE_HELPTEXT :Allows manually configuring the size of town zones generated by towns. The default values for custom town zone settings are similar to the default town generation. Some zones only require small changes while Zone 0 in particular benefits from larger values.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier for Zone 0: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Zone 1: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Zone 2: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Zone 3: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier for the size of Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier for Zone 4: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier for the size of Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier for Town Zone 0: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Town Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Town Zone 1: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Town Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Town Zone 2: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Town Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Town Zone 3: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier for the size of Town Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier for Town Zone 4: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier for the size of Town Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_0_MULT :Multiplier for City Zone 0: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT :Multiplier for the size of City Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_CITY_ZONE_1_MULT :Multiplier for City Zone 1: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT :Multiplier for the size of City Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_2_MULT :Multiplier for City Zone 2: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT :Multiplier for the size of City Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_3_MULT :Multiplier for City Zone 3: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_3_MULT_HELPTEXT :Multiplier for the size of City Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_4_MULT :Multiplier for City Zone 4: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_4_MULT_HELPTEXT :Multiplier for the size of City Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_GROWTH :Town growth speed: {STRING2}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth
STR_CONFIG_SETTING_TOWN_GROWTH_CARGO_TRANSPORTED :Town growth speed depends on transported cargo: {STRING2}

View File

@ -1560,16 +1560,26 @@ STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE :Use custom Town Zone calculations: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE_HELPTEXT :Allows manually configuring the size of town zones generated by towns. The default values for custom town zone settings are similar to the default town generation. Some zones only require small changes while Zone 0 in particular benefits from larger values.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier to Zone 0: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier to the size of Zone 0 (Outer most roads with no sidewalks). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier to Zone 1: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier to the size of Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier to Zone 2: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier to the size of Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier to Zone 3: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier to the size of Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier to Zone 4: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier to the size of Zone 4 (Inner most roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier for Town Zone 0: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Town Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Town Zone 1: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Town Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Town Zone 2: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Town Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Town Zone 3: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier for the size of Town Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier for Town Zone 4: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier for the size of Town Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_0_MULT :Multiplier for City Zone 0: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT :Multiplier for the size of City Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_CITY_ZONE_1_MULT :Multiplier for City Zone 1: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT :Multiplier for the size of City Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_2_MULT :Multiplier for City Zone 2: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT :Multiplier for the size of City Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_3_MULT :Multiplier for City Zone 3: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_3_MULT_HELPTEXT :Multiplier for the size of City Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_4_MULT :Multiplier for City Zone 4: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_4_MULT_HELPTEXT :Multiplier for the size of City Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_GROWTH :Town growth speed: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :None

View File

@ -1693,16 +1693,26 @@ STR_CONFIG_SETTING_TOWN_GROWTH :Town growth spe
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE :Use custom Town Zone calculations: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE_HELPTEXT :Allows manually configuring the size of town zones generated by towns. The default values for custom town zone settings are similar to the default town generation. Some zones only require small changes while Zone 0 in particular benefits from larger values.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier to Zone 0: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier to the size of Zone 0 (Outer most roads with no sidewalks). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier to Zone 1: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier to the size of Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier to Zone 2: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier to the size of Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier to Zone 3: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier to the size of Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier to Zone 4: {STRING}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier to the size of Zone 4 (Inner most roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT :Multiplier for Town Zone 0: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Town Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Town Zone 1: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Town Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Town Zone 2: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Town Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Town Zone 3: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT :Multiplier for the size of Town Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT :Multiplier for Town Zone 4: {STRING2}
STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT :Multiplier for the size of Town Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_0_MULT :Multiplier for City Zone 0: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT :Multiplier for the size of City Zone 0 (Outermost roads with no pavement). This setting can benefit from large values.
STR_CONFIG_SETTING_CITY_ZONE_1_MULT :Multiplier for City Zone 1: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT :Multiplier for the size of City Zone 1 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_2_MULT :Multiplier for City Zone 2: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT :Multiplier for the size of City Zone 2 (Outer zone with pavements). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_3_MULT :Multiplier for City Zone 3: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_3_MULT_HELPTEXT :Multiplier for the size of City Zone 3 (Inner tree-lined roads). This setting works best with minor alterations.
STR_CONFIG_SETTING_CITY_ZONE_4_MULT :Multiplier for City Zone 4: {STRING2}
STR_CONFIG_SETTING_CITY_ZONE_4_MULT_HELPTEXT :Multiplier for the size of City Zone 4 (Innermost roads with street lights). This setting works best with minor alterations.
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :None
STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Slow
STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normal

View File

@ -2070,6 +2070,11 @@ static SettingsContainer &GetSettingsTree()
town_zone->Add(new SettingEntry("economy.town_zone_2_mult"));
town_zone->Add(new SettingEntry("economy.town_zone_3_mult"));
town_zone->Add(new SettingEntry("economy.town_zone_4_mult"));
town_zone->Add(new SettingEntry("economy.city_zone_0_mult"));
town_zone->Add(new SettingEntry("economy.city_zone_1_mult"));
town_zone->Add(new SettingEntry("economy.city_zone_2_mult"));
town_zone->Add(new SettingEntry("economy.city_zone_3_mult"));
town_zone->Add(new SettingEntry("economy.city_zone_4_mult"));
}
towns->Add(new SettingEntry("economy.allow_town_roads"));
towns->Add(new SettingEntry("economy.allow_town_level_crossings"));

View File

@ -614,11 +614,16 @@ struct EconomySettings {
int8 town_growth_rate; ///< town growth rate
uint8 town_growth_cargo_transported; ///< percentage of town growth rate which depends on proportion of transported cargo in the last month
bool town_zone_calc_mode; ///< calc mode for town zones
uint16 town_zone_0_mult; ///< multiplier for the size of zone 0
uint16 town_zone_1_mult; ///< multiplier for the size of zone 1
uint16 town_zone_2_mult; ///< multiplier for the size of zone 2
uint16 town_zone_3_mult; ///< multiplier for the size of zone 3
uint16 town_zone_4_mult; ///< multiplier for the size of zone 4
uint16 town_zone_0_mult; ///< multiplier for the size of town zone 0
uint16 town_zone_1_mult; ///< multiplier for the size of town zone 1
uint16 town_zone_2_mult; ///< multiplier for the size of town zone 2
uint16 town_zone_3_mult; ///< multiplier for the size of town zone 3
uint16 town_zone_4_mult; ///< multiplier for the size of town zone 4
uint16 city_zone_0_mult; ///< multiplier for the size of city zone 0
uint16 city_zone_1_mult; ///< multiplier for the size of city zone 1
uint16 city_zone_2_mult; ///< multiplier for the size of city zone 2
uint16 city_zone_3_mult; ///< multiplier for the size of city zone 3
uint16 city_zone_4_mult; ///< multiplier for the size of city zone 4
uint8 larger_towns; ///< the number of cities to build. These start off larger and grow twice as fast
uint8 initial_city_size; ///< multiplier for the initial size of the cities compared to towns
TownLayout town_layout; ///< select town layout, @see TownLayout

View File

@ -2538,6 +2538,76 @@ strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.town_zone_4_mult""
[SDT_VAR]
base = GameSettings
var = economy.city_zone_0_mult
type = SLE_UINT16
def = 15
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_CITY_ZONE_0_MULT
strhelp = STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT
strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.city_zone_0_mult""
[SDT_VAR]
base = GameSettings
var = economy.city_zone_1_mult
type = SLE_UINT16
def = 9
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_CITY_ZONE_1_MULT
strhelp = STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT
strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.city_zone_1_mult""
[SDT_VAR]
base = GameSettings
var = economy.city_zone_2_mult
type = SLE_UINT16
def = 0
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_CITY_ZONE_2_MULT
strhelp = STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT
strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.city_zone_2_mult""
[SDT_VAR]
base = GameSettings
var = economy.city_zone_3_mult
type = SLE_UINT16
def = 5
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_CITY_ZONE_3_MULT
strhelp = STR_CONFIG_SETTING_CITY_ZONE_3_MULT_HELPTEXT
strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.city_zone_3_mult""
[SDT_VAR]
base = GameSettings
var = economy.city_zone_4_mult
type = SLE_UINT16
def = 3
min = 0
max = 255
interval = 1
str = STR_CONFIG_SETTING_CITY_ZONE_4_MULT
strhelp = STR_CONFIG_SETTING_CITY_ZONE_4_MULT_HELPTEXT
strval = STR_JUST_COMMA
cat = SC_EXPERT
patxname = ""town_zone.economy.city_zone_4_mult""
[SDT_VAR]
base = GameSettings
var = economy.town_growth_cargo_transported

View File

@ -1980,7 +1980,14 @@ void UpdateTownRadius(Town *t)
{121, 81, 0, 49, 36}, // 88
};
if (_settings_game.economy.town_zone_calc_mode) {
if (_settings_game.economy.town_zone_calc_mode, t->larger_town) {
int mass = t->cache.num_houses / 8;
t->cache.squared_town_zone_radius[0] = mass * _settings_game.economy.city_zone_0_mult;
t->cache.squared_town_zone_radius[1] = mass * _settings_game.economy.city_zone_1_mult;
t->cache.squared_town_zone_radius[2] = mass * _settings_game.economy.city_zone_2_mult;
t->cache.squared_town_zone_radius[3] = mass * _settings_game.economy.city_zone_3_mult;
t->cache.squared_town_zone_radius[4] = mass * _settings_game.economy.city_zone_4_mult;
} else if (_settings_game.economy.town_zone_calc_mode) {
int mass = t->cache.num_houses / 8;
t->cache.squared_town_zone_radius[0] = mass * _settings_game.economy.town_zone_0_mult;
t->cache.squared_town_zone_radius[1] = mass * _settings_game.economy.town_zone_1_mult;