changeset 15448:aefc3e7ea77d draft

(svn r20097) -Codechange: Share constant bitset of safe level crossing slopes.
author alberth <alberth@openttd.org>
date Fri, 09 Jul 2010 12:14:02 +0000
parents 8336429b0ffb
children f6ee1b7fde96
files src/rail_cmd.cpp src/road_cmd.cpp src/slope_type.h
diffstat 3 files changed, 6 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -408,12 +408,8 @@
 		}
 
 		case MP_ROAD: {
-#define M(x) (1 << (x))
 			/* Level crossings may only be built on these slopes */
-			if (!HasBit(M(SLOPE_SEN) | M(SLOPE_ENW) | M(SLOPE_NWS) | M(SLOPE_NS) | M(SLOPE_WSE) | M(SLOPE_EW) | M(SLOPE_FLAT), tileh)) {
-				return_cmd_error(STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
-			}
-#undef M
+			if (!HasBit(VALID_LEVEL_CROSSING_SLOPES, tileh)) return_cmd_error(STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION);
 
 			CommandCost ret = EnsureNoVehicleOnGround(tile);
 			if (ret.Failed()) return ret;
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -52,11 +52,6 @@
 	return false;
 }
 
-#define M(x) (1 << (x))
-/* Level crossings may only be built on these slopes */
-static const uint32 VALID_LEVEL_CROSSING_SLOPES = (M(SLOPE_SEN) | M(SLOPE_ENW) | M(SLOPE_NWS) | M(SLOPE_NS) | M(SLOPE_WSE) | M(SLOPE_EW) | M(SLOPE_FLAT));
-#undef M
-
 /* Invalid RoadBits on slopes  */
 static const RoadBits _invalid_tileh_slopes_road[2][15] = {
 	/* The inverse of the mixable RoadBits on a leveled slope */
--- a/src/slope_type.h
+++ b/src/slope_type.h
@@ -79,6 +79,11 @@
 };
 DECLARE_ENUM_AS_BIT_SET(Slope)
 
+#define M(x) (1 << (x))
+/** Constant bitset with safe slopes for building a level crossing. */
+static const uint32 VALID_LEVEL_CROSSING_SLOPES = M(SLOPE_SEN) | M(SLOPE_ENW) | M(SLOPE_NWS) | M(SLOPE_NS) | M(SLOPE_WSE) | M(SLOPE_EW) | M(SLOPE_FLAT);
+#undef M
+
 
 /**
  * Enumeration for Foundations.