From 5fb14350a0d558e79416ebed2ded120c237a06f7 Mon Sep 17 00:00:00 2001 From: hackykid Date: Mon, 4 Jul 2005 15:25:06 +0000 Subject: [PATCH] (svn r2517) - Fix: [pbs] Detect end-of-lines properly regarding depots. --- npf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/npf.c b/npf.c index bdb26af52a..85b11bd3fd 100644 --- a/npf.c +++ b/npf.c @@ -37,8 +37,8 @@ bool IsEndOfLine(TileIndex tile, Trackdir trackdir) return false; // depot - if (IsTileDepotType(tile, TRANSPORT_RAIL)) - return false; + if (IsTileDepotType(tile, TRANSPORT_RAIL) && (exitdir != GetDepotDirection(tile, TRANSPORT_RAIL))) + return true; /* Calculate next tile */ dst_tile = tile + TileOffsByDir(exitdir); @@ -51,14 +51,14 @@ bool IsEndOfLine(TileIndex tile, Trackdir trackdir) { byte src_type = GetTileRailType(tile, trackdir); - byte dst_type = GetTileRailType(dst_tile, TrackdirToExitdir(trackdir)); + byte dst_type = GetTileRailType(dst_tile, exitdir); if (src_type != dst_type) { return true; } if (GetTileOwner(tile) != GetTileOwner(dst_tile)) return true; - if (IsTileDepotType(dst_tile, TRANSPORT_RAIL) && (TrackdirToExitdir(trackdir) != ReverseDiagdir(GetDepotDirection(dst_tile, TRANSPORT_RAIL)))) + if (IsTileDepotType(dst_tile, TRANSPORT_RAIL) && (exitdir != ReverseDiagdir(GetDepotDirection(dst_tile, TRANSPORT_RAIL)))) return true; /* Check for oneway signal against us */