(svn r12329) -Fix [FS#1819]: Disallow building level crossings over one-way roads as this allowed competitors to remove the one-way state.
authorpeter1138
Mon, 03 Mar 2008 19:15:53 +0000
changeset 9160 e11f0a28e7f1
parent 9159 33d0e3eb6b62
child 9161 f88d089fa608
(svn r12329) -Fix [FS#1819]: Disallow building level crossings over one-way roads as this allowed competitors to remove the one-way state.
src/lang/english.txt
src/rail_cmd.cpp
--- a/src/lang/english.txt	Mon Mar 03 18:20:42 2008 +0000
+++ b/src/lang/english.txt	Mon Mar 03 19:15:53 2008 +0000
@@ -1612,6 +1612,7 @@
 STR_1005_NO_SUITABLE_RAILROAD_TRACK                             :{WHITE}No suitable railway track
 STR_1007_ALREADY_BUILT                                          :{WHITE}...already built
 STR_1008_MUST_REMOVE_RAILROAD_TRACK                             :{WHITE}Must remove railway track first
+STR_ERR_CROSSING_ON_ONEWAY_ROAD                                 :{WHITE}Road is one way or blocked
 STR_100A_RAILROAD_CONSTRUCTION                                  :{WHITE}Railway Construction
 STR_TITLE_ELRAIL_CONSTRUCTION                                   :{WHITE}Electrified Railway Construction
 STR_100B_MONORAIL_CONSTRUCTION                                  :{WHITE}Monorail Construction
--- a/src/rail_cmd.cpp	Mon Mar 03 18:20:42 2008 +0000
+++ b/src/rail_cmd.cpp	Mon Mar 03 19:15:53 2008 +0000
@@ -360,6 +360,8 @@
 			if (IsNormalRoad(tile)) {
 				if (HasRoadWorks(tile)) return_cmd_error(STR_ROAD_WORKS_IN_PROGRESS);
 
+				if (GetDisallowedRoadDirections(tile) != DRD_NONE) return_cmd_error(STR_ERR_CROSSING_ON_ONEWAY_ROAD);
+
 				RoadTypes roadtypes = GetRoadTypes(tile);
 				RoadBits road = GetRoadBits(tile, ROADTYPE_ROAD);
 				RoadBits tram = GetRoadBits(tile, ROADTYPE_TRAM);