diff options
author | frosch <frosch@openttd.org> | 2008-01-22 16:08:17 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-01-22 16:08:17 +0000 |
commit | 8a72af3a13f1046d5ec26cbc95babc3712ba1509 (patch) | |
tree | 78534c41444e96dbc9179ae15b7f8cbdddcaa1c4 /src/yapf | |
parent | 1d219ad7b650b606383cb2499fe70397a26cbff3 (diff) | |
download | openttd-8a72af3a13f1046d5ec26cbc95babc3712ba1509.tar.xz |
(svn r11946) -Fix: slope detection of bridge ramps.
YAPF failed for steep slopes.
Trolly failed for a lot.
Diffstat (limited to 'src/yapf')
-rw-r--r-- | src/yapf/yapf_costbase.hpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/yapf/yapf_costbase.hpp b/src/yapf/yapf_costbase.hpp index 2793aab9f..010c53ce1 100644 --- a/src/yapf/yapf_costbase.hpp +++ b/src/yapf/yapf_costbase.hpp @@ -13,11 +13,9 @@ struct CYapfCostBase { // 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 |