(svn r2517) - Fix: [pbs] Detect end-of-lines properly regarding depots.

This commit is contained in:
hackykid 2005-07-04 15:25:06 +00:00
parent 60ddaf95f0
commit 5fb14350a0

8
npf.c
View File

@ -37,8 +37,8 @@ bool IsEndOfLine(TileIndex tile, Trackdir trackdir)
return false; return false;
// depot // depot
if (IsTileDepotType(tile, TRANSPORT_RAIL)) if (IsTileDepotType(tile, TRANSPORT_RAIL) && (exitdir != GetDepotDirection(tile, TRANSPORT_RAIL)))
return false; return true;
/* Calculate next tile */ /* Calculate next tile */
dst_tile = tile + TileOffsByDir(exitdir); dst_tile = tile + TileOffsByDir(exitdir);
@ -51,14 +51,14 @@ bool IsEndOfLine(TileIndex tile, Trackdir trackdir)
{ {
byte src_type = GetTileRailType(tile, 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) { if (src_type != dst_type) {
return true; return true;
} }
if (GetTileOwner(tile) != GetTileOwner(dst_tile)) if (GetTileOwner(tile) != GetTileOwner(dst_tile))
return true; 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; return true;
/* Check for oneway signal against us */ /* Check for oneway signal against us */