From 405ca1ea4ddc8a6a0b20849ef037eb4f65d4833a Mon Sep 17 00:00:00 2001 From: matthijs Date: Sat, 9 Jul 2005 13:45:21 +0000 Subject: [PATCH] (svn r2539) * Fix: Mixed up use of trackdirs and directions in GetTileRailType() causes NPF to not consider routes under bridges. --- rail.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rail.c b/rail.c index ecd6be9375..5952dae571 100644 --- a/rail.c +++ b/rail.c @@ -109,6 +109,7 @@ const Trackdir _reverse_trackdir[] = { RailType GetTileRailType(TileIndex tile, Trackdir trackdir) { RailType type = INVALID_RAILTYPE; + DiagDirection exitdir = TrackdirToExitdir(trackdir); switch (GetTileType(tile)) { case MP_RAILWAY: /* railway track */ @@ -129,10 +130,10 @@ RailType GetTileRailType(TileIndex tile, Trackdir trackdir) /* railway bridge ending */ if ((_map5[tile] & 0xC6) == 0x80) type = _map3_lo[tile] & RAILTYPE_MASK; /* on railway bridge */ - if ((_map5[tile] & 0xC6) == 0xC0 && ((DiagDirection)(_map5[tile] & 0x1)) == (TrackdirToExitdir(trackdir) & 0x1)) + if ((_map5[tile] & 0xC6) == 0xC0 && ((DiagDirection)(_map5[tile] & 0x1)) == (exitdir & 0x1)) type = (_map3_lo[tile] >> 4) & RAILTYPE_MASK; /* under bridge (any type) */ - if ((_map5[tile] & 0xC0) == 0xC0 && ((uint)_map5[tile] & 0x1) != (trackdir & 0x1)) + if ((_map5[tile] & 0xC0) == 0xC0 && ((uint)_map5[tile] & 0x1) != (exitdir & 0x1)) type = _map3_lo[tile] & RAILTYPE_MASK; break; default: