From d1d27c0748d02019263f30cca081be315999d419 Mon Sep 17 00:00:00 2001 From: reldred Date: Sat, 10 Apr 2021 15:15:16 +0930 Subject: [PATCH 1/4] Adds additional zone configuration for cities, renames existing zone configuration to towns. --- src/lang/english.txt | 30 ++++++++++++------ src/lang/english_AU.txt | 30 ++++++++++++------ src/lang/english_US.txt | 30 ++++++++++++------ src/settings_gui.cpp | 5 +++ src/settings_type.h | 15 ++++++--- src/table/settings.ini | 70 +++++++++++++++++++++++++++++++++++++++++ src/town_cmd.cpp | 9 +++++- 7 files changed, 153 insertions(+), 36 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index baeef11c84..3d76807538 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -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} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index d1104ed33c..52497bfd6b 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -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 diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 92414073c2..cd1cd29d2e 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -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 diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 146c031b39..8a1c0b894a 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -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")); diff --git a/src/settings_type.h b/src/settings_type.h index 143752f529..92c6b5c1b3 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -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 diff --git a/src/table/settings.ini b/src/table/settings.ini index 7762bac612..4844e62217 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -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 diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 29ebe17925..5c89b6a678 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -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; From 442210a6409b2856444083ee0b824b13f358b731 Mon Sep 17 00:00:00 2001 From: reldred Date: Sat, 10 Apr 2021 20:04:46 +0930 Subject: [PATCH 2/4] Update src/town_cmd.cpp fix bad operator --- src/town_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 5c89b6a678..ee46f57b08 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1980,7 +1980,7 @@ void UpdateTownRadius(Town *t) {121, 81, 0, 49, 36}, // 88 }; - if (_settings_game.economy.town_zone_calc_mode, t->larger_town) { + 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; From bfb57bf6a271560342fba54a81e2e6271224876c Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 12 Apr 2021 20:03:56 +0100 Subject: [PATCH 3/4] Adjust language files --- src/lang/english_AU.txt | 32 ++++++++++++++++---------------- src/lang/english_US.txt | 32 ++++++++++++++++---------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 52497bfd6b..a9c9897de7 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1560,25 +1560,25 @@ 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 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_0_MULT :Multiplier for Town Zone 0: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Town Zone 0 (Outermost roads with no sidewalks). This setting can benefit from large values. +STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Town Zone 1: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Town Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Town Zone 2: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Town Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Town Zone 3: {STRING} 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 :Multiplier for Town Zone 4: {STRING} 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_0_MULT :Multiplier for City Zone 0: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT :Multiplier for the size of City Zone 0 (Outermost roads with no sidewalks). This setting can benefit from large values. +STR_CONFIG_SETTING_CITY_ZONE_1_MULT :Multiplier for City Zone 1: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT :Multiplier for the size of City Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_CITY_ZONE_2_MULT :Multiplier for City Zone 2: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT :Multiplier for the size of City Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_CITY_ZONE_3_MULT :Multiplier for City Zone 3: {STRING} 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 :Multiplier for City Zone 4: {STRING} 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 diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index cd1cd29d2e..fc4426e133 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1693,25 +1693,25 @@ 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 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_0_MULT :Multiplier for Town Zone 0: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT :Multiplier for the size of Town Zone 0 (Outermost roads with no sidewalks). This setting can benefit from large values. +STR_CONFIG_SETTING_TOWN_ZONE_1_MULT :Multiplier for Town Zone 1: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT :Multiplier for the size of Town Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_TOWN_ZONE_2_MULT :Multiplier for Town Zone 2: {STRING} +STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT :Multiplier for the size of Town Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_TOWN_ZONE_3_MULT :Multiplier for Town Zone 3: {STRING} 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 :Multiplier for Town Zone 4: {STRING} 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_0_MULT :Multiplier for City Zone 0: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT :Multiplier for the size of City Zone 0 (Outermost roads with no sidewalks). This setting can benefit from large values. +STR_CONFIG_SETTING_CITY_ZONE_1_MULT :Multiplier for City Zone 1: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT :Multiplier for the size of City Zone 1 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_CITY_ZONE_2_MULT :Multiplier for City Zone 2: {STRING} +STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT :Multiplier for the size of City Zone 2 (Outer zone with sidewalks). This setting works best with minor alterations. +STR_CONFIG_SETTING_CITY_ZONE_3_MULT :Multiplier for City Zone 3: {STRING} 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 :Multiplier for City Zone 4: {STRING} 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 From 737b53849244ffd757cd54a49a0178387cb09358 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 12 Apr 2021 20:08:05 +0100 Subject: [PATCH 4/4] Bump savegame version, copy town to city multipliers for old savegames --- src/saveload/afterload.cpp | 8 ++++++++ src/saveload/extended_ver_sl.cpp | 1 + src/saveload/extended_ver_sl.h | 1 + 3 files changed, 10 insertions(+) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 6302eb7fb1..cd1e9b8608 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3895,6 +3895,14 @@ bool AfterLoadGame() } } + if (SlXvIsFeatureMissing(XSLFI_CUSTOM_TOWN_ZONE)) { + _settings_game.economy.city_zone_0_mult = _settings_game.economy.town_zone_0_mult; + _settings_game.economy.city_zone_1_mult = _settings_game.economy.town_zone_1_mult; + _settings_game.economy.city_zone_2_mult = _settings_game.economy.town_zone_2_mult; + _settings_game.economy.city_zone_3_mult = _settings_game.economy.town_zone_3_mult; + _settings_game.economy.city_zone_4_mult = _settings_game.economy.town_zone_4_mult; + } + InitializeRoadGUI(); /* This needs to be done after conversion. */ diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 4ad0f28799..d047a31e90 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -148,6 +148,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { { XSLFI_INFLATION_FIXED_DATES, XSCF_IGNORABLE_ALL, 1, 1, "inflation_fixed_dates", nullptr, nullptr, nullptr }, { XSLFI_WATER_FLOODING, XSCF_NULL, 1, 1, "water_flooding", nullptr, nullptr, nullptr }, { XSLFI_MORE_HOUSES, XSCF_NULL, 1, 1, "more_houses", nullptr, nullptr, nullptr }, + { XSLFI_CUSTOM_TOWN_ZONE, XSCF_IGNORABLE_UNKNOWN, 1, 1, "custom_town_zone", nullptr, nullptr, nullptr }, { XSLFI_NULL, XSCF_NULL, 0, 0, nullptr, nullptr, nullptr, nullptr },// This is the end marker }; diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index 8e7ec2e39c..f8ce522883 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -102,6 +102,7 @@ enum SlXvFeatureIndex { XSLFI_INFLATION_FIXED_DATES, ///< Inflation is applied between fixed dates XSLFI_WATER_FLOODING, ///< Water flooding map bit XSLFI_MORE_HOUSES, ///< More house types + XSLFI_CUSTOM_TOWN_ZONE, ///< Custom town zones XSLFI_RIFF_HEADER_60_BIT, ///< Size field in RIFF chunk header is 60 bit XSLFI_HEIGHT_8_BIT, ///< Map tile height is 8 bit instead of 4 bit, but savegame version may be before this became true in trunk