Mercurial > hg > openttd
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.