diff options
Diffstat (limited to 'pathfind.c')
-rw-r--r-- | pathfind.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pathfind.c b/pathfind.c index c4703026d..81ccc699c 100644 --- a/pathfind.c +++ b/pathfind.c @@ -301,6 +301,22 @@ static void TPFMode1(TrackPathFinder* tpf, TileIndex tile, DiagDirection directi if (IsTileDepotType(tile, TRANSPORT_ROAD) && ReverseDiagDir(GetRoadDepotDirection(tile)) != direction) return; } + /* Check if the new tile is a tunnel or bridge head and that the direction + * and transport type match */ + if (IsTileType(tile, MP_TUNNELBRIDGE)) { + if (IsTunnel(tile)) { + if (GetTunnelDirection(tile) != direction || + GetTunnelTransportType(tile) != tpf->tracktype) { + return; + } + } else if (IsBridge(tile)) { + if (GetBridgeRampDirection(tile) != direction || + GetBridgeTransportType(tile) != tpf->tracktype) { + return; + } + } + } + tpf->rd.cur_length++; bits = GetTileTrackStatus(tile, tpf->tracktype); |