(svn r12329) -Fix [FS#1819]: Disallow building level crossings over one-way roads as this allowed competitors to remove the one-way state.
--- 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);