summaryrefslogtreecommitdiff
path: root/src/yapf
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2008-01-22 16:08:17 +0000
committerfrosch <frosch@openttd.org>2008-01-22 16:08:17 +0000
commitb99c83246b4029f91579712ae9044fa9e1f6b2c9 (patch)
tree78534c41444e96dbc9179ae15b7f8cbdddcaa1c4 /src/yapf
parent7d1e3086b8dfb7ffdf75478e159ce90543a1ee6e (diff)
downloadopenttd-b99c83246b4029f91579712ae9044fa9e1f6b2c9.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.hpp8
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