diff -r 5a5206510c1a -r 94fcc26a241a src/yapf/yapf_costbase.hpp --- a/src/yapf/yapf_costbase.hpp Tue Jan 22 15:47:40 2008 +0000 +++ b/src/yapf/yapf_costbase.hpp Tue Jan 22 16:08:17 2008 +0000 @@ -13,11 +13,9 @@ // it is bridge ramp, check if we are entering the bridge if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(td)) return false; // no, we are living it, no penalty // we are entering the bridge - // if the tile slope is downwards, then bridge ramp has not upward slope - uint tile_slope = GetTileSlope(tile, NULL) & 0x0F; - if ((c_upwards_slopes[tile_slope] & TrackdirToTrackdirBits(ReverseTrackdir(td))) != 0) return false; // tile under ramp goes down, no penalty - // tile under ramp isn't going down, so ramp must go up - return true; + Slope tile_slope = GetTileSlope(tile, NULL); + Axis axis = DiagDirToAxis(GetTunnelBridgeDirection(tile)); + return !HasBridgeFlatRamp(tile_slope, axis); } else { // not bridge ramp if (IsTunnelTile(tile)) return false; // tunnel entry/exit doesn't slope