changeset 17234:08d6a07fe4ce draft

(svn r21974) -Feature: Add a setting to enable/disable funding local road reconstruction.
author terkhen <terkhen@openttd.org>
date Sat, 05 Feb 2011 13:46:09 +0000
parents f9de7c157fbe
children 3f6432af5795
files src/lang/english.txt src/saveload/saveload.cpp src/settings_gui.cpp src/settings_type.h src/table/settings.h src/town_cmd.cpp
diffstat 6 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -1134,6 +1134,7 @@
 STR_CONFIG_SETTING_AUTOSCROLL                                   :{LTBLUE}Pan window when mouse is at the edge: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_BRIBE                                        :{LTBLUE}Allow bribing of the local authority: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_ALLOW_EXCLUSIVE                              :{LTBLUE}Allow buying exclusive transport rights: {ORANGE}{STRING1}
+STR_CONFIG_SETTING_ALLOW_FUND_ROAD                              :{LTBLUE}Allow funding local road reconstruction: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_ALLOW_GIVE_MONEY                             :{LTBLUE}Allow sending money to other companies: {ORANGE}{STRING1}
 STR_CONFIG_SETTING_FREIGHT_TRAINS                               :{LTBLUE}Weight multiplier for freight to simulate heavy trains: {ORANGE}{STRING}
 STR_CONFIG_SETTING_PLANE_SPEED                                  :{LTBLUE}Plane speed factor: {ORANGE}1 / {STRING1}
--- a/src/saveload/saveload.cpp
+++ b/src/saveload/saveload.cpp
@@ -224,7 +224,7 @@
  *  157   21862
  *  158   21933
  *  159   21962
- *  160   21969
+ *  160   21974
  */
 extern const uint16 SAVEGAME_VERSION = 160; ///< Current savegame version of OpenTTD.
 
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -1368,6 +1368,7 @@
 static SettingEntry _settings_economy_towns[] = {
 	SettingEntry("economy.bribe"),
 	SettingEntry("economy.exclusive_rights"),
+	SettingEntry("economy.fund_roads"),
 	SettingEntry("economy.town_layout"),
 	SettingEntry("economy.allow_town_roads"),
 	SettingEntry("economy.allow_town_level_crossings"),
--- a/src/settings_type.h
+++ b/src/settings_type.h
@@ -367,6 +367,7 @@
 	uint8  feeder_payment_share;             ///< percentage of leg payment to virtually pay in feeder systems
 	byte   dist_local_authority;             ///< distance for town local authority, default 20
 	bool   exclusive_rights;                 ///< allow buying exclusive rights
+	bool   fund_roads;                       ///< allow funding local road reconstruction
 	bool   give_money;                       ///< allow giving other companies money
 	bool   mod_road_rebuild;                 ///< roadworks remove unneccesary RoadBits
 	bool   multiple_industry_per_town;       ///< allow many industries of the same type per town
--- a/src/table/settings.h
+++ b/src/table/settings.h
@@ -451,6 +451,7 @@
 	SDT_CONDNULL(                                                            1,  0, 140),
 	    SDT_BOOL(GameSettings, economy.bribe,                                                       0, 0,  true,                    STR_CONFIG_SETTING_BRIBE,                  RedrawTownAuthority),
 	SDT_CONDBOOL(GameSettings, economy.exclusive_rights,                        79, SL_MAX_VERSION, 0, 0,  true,                    STR_CONFIG_SETTING_ALLOW_EXCLUSIVE,        RedrawTownAuthority),
+	SDT_CONDBOOL(GameSettings, economy.fund_roads,                             160, SL_MAX_VERSION, 0, 0,  true,                    STR_CONFIG_SETTING_ALLOW_FUND_ROAD,        RedrawTownAuthority),
 	SDT_CONDBOOL(GameSettings, economy.give_money,                              79, SL_MAX_VERSION, 0, 0,  true,                    STR_CONFIG_SETTING_ALLOW_GIVE_MONEY,       NULL),
 	     SDT_VAR(GameSettings, game_creation.snow_line_height,       SLE_UINT8,                     0, 0, DEF_SNOWLINE_HEIGHT, MIN_SNOWLINE_HEIGHT, MAX_SNOWLINE_HEIGHT, 0, STR_CONFIG_SETTING_SNOWLINE_HEIGHT, NULL),
 	SDT_CONDNULL(                                                            4,  0, 143),
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -2469,6 +2469,9 @@
 
 static CommandCost TownActionRoadRebuild(Town *t, DoCommandFlag flags)
 {
+	/* Check if the company is allowed to fund new roads. */
+	if (!_settings_game.economy.fund_roads) return CMD_ERROR;
+
 	if (flags & DC_EXEC) {
 		t->road_build_months = 6;
 
@@ -2639,6 +2642,9 @@
 			/* Is the company not able to buy exclusive rights ? */
 			if (cur == TACT_BUY_RIGHTS && !_settings_game.economy.exclusive_rights) continue;
 
+			/* Is the company not able to fund local road reconstruction? */
+			if (cur == TACT_ROAD_REBUILD && !_settings_game.economy.fund_roads) continue;
+
 			/* Is the company not able to build a statue ? */
 			if (cur == TACT_BUILD_STATUE && HasBit(t->statues, cid)) continue;