diff options
Diffstat (limited to 'bridge_map.c')
-rw-r--r-- | bridge_map.c | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/bridge_map.c b/bridge_map.c index e21c5928c..cbb955c37 100644 --- a/bridge_map.c +++ b/bridge_map.c @@ -3,22 +3,19 @@ #include "stdafx.h" #include "openttd.h" #include "bridge_map.h" -#include "variables.h" TileIndex GetBridgeEnd(TileIndex tile, DiagDirection dir) { TileIndexDiff delta = TileOffsByDir(dir); - do { tile += delta; } while (IsBridgeAbove(tile) && IsBridgeOfAxis(tile, DiagDirToAxis(dir))); - - return tile; -} + assert(DiagDirToAxis(dir) == GetBridgeAxis(tile)); + do { + tile += delta; + } while (!IsBridgeRamp(tile)); -TileIndex GetNorthernBridgeEnd(TileIndex t) -{ - return GetBridgeEnd(t, ReverseDiagDir(AxisToDiagDir(GetBridgeAxis(t)))); + return tile; } @@ -30,25 +27,11 @@ TileIndex GetSouthernBridgeEnd(TileIndex t) TileIndex GetOtherBridgeEnd(TileIndex tile) { - assert(IsBridgeTile(tile)); - return GetBridgeEnd(tile, GetBridgeRampDirection(tile)); -} - -uint GetBridgeHeight(TileIndex tile, Axis a) -{ - uint h, f; - uint tileh = GetTileSlope(tile, &h); + TileIndexDiff delta = TileOffsByDir(GetBridgeRampDirection(tile)); - f = GetBridgeFoundation(tileh, a); + do { + tile += delta; + } while (!IsBridgeRamp(tile)); - if (f) { - if (f < 15) { - h += TILE_HEIGHT; - tileh = SLOPE_FLAT; - } else { - tileh = _inclined_tileh[f - 15]; - } - } - - return h + TILE_HEIGHT; + return tile; } |