changeset 14909:d2be77222529 draft

(svn r19506) -Fix: Tunnels, bridges and roadstops are build with only one roadtype.
author frosch <frosch@openttd.org>
date Tue, 23 Mar 2010 20:29:52 +0000
parents 0ab8c3474720
children bd99e52e5aa2
files src/road_func.h src/station_cmd.cpp src/tunnelbridge_cmd.cpp
diffstat 3 files changed, 3 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/road_func.h
+++ b/src/road_func.h
@@ -29,16 +29,6 @@
 }
 
 /**
- * Are the given bits pointing to valid roadtypes?
- * @param rts the roadtypes to check for validness
- * @return true if and only if valid
- */
-static inline bool AreValidRoadTypes(RoadTypes rts)
-{
-	return HasBit(rts, ROADTYPE_ROAD) || HasBit(rts, ROADTYPE_TRAM);
-}
-
-/**
  * Maps a RoadType to the corresponding RoadTypes value
  *
  * @param rt the roadtype to get the roadtypes from
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1697,7 +1697,7 @@
 
 	if (distant_join && (!_settings_game.station.distant_join_stations || !Station::IsValidID(station_to_join))) return CMD_ERROR;
 
-	if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
+	if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
 
 	/* Trams only have drive through stops */
 	if (!is_drive_through && HasBit(rts, ROADTYPE_TRAM)) return CMD_ERROR;
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -207,7 +207,7 @@
 	switch (transport_type) {
 		case TRANSPORT_ROAD:
 			roadtypes = (RoadTypes)GB(p2, 8, 2);
-			if (!AreValidRoadTypes(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
+			if (!HasExactlyOneBit(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
 			break;
 
 		case TRANSPORT_RAIL:
@@ -487,7 +487,7 @@
 		if (!ValParamRailtype((RailType)p1)) return CMD_ERROR;
 	} else {
 		const RoadTypes rts = (RoadTypes)GB(p1, 0, 2);
-		if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
+		if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
 	}
 
 	uint start_z;