summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pathfind.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pathfind.c b/pathfind.c
index 3592c372d..4e65c3d99 100644
--- a/pathfind.c
+++ b/pathfind.c
@@ -11,6 +11,7 @@
#include "debug.h"
#include "tunnel_map.h"
#include "variables.h"
+#include "depot.h"
// remember which tiles we have already visited so we don't visit them again.
static bool TPFSetTileBit(TrackPathFinder *tpf, TileIndex tile, int dir)
@@ -264,6 +265,9 @@ static void TPFMode1(TrackPathFinder* tpf, TileIndex tile, DiagDirection directi
/* Check in case of rail if the owner is the same */
if (tpf->tracktype == TRANSPORT_RAIL) {
+ // don't enter train depot from the back
+ if (IsTileDepotType(tile, TRANSPORT_RAIL) && GetRailDepotDirection(tile) == direction) return;
+
if (IsTileType(tile_org, MP_RAILWAY) || IsTileType(tile_org, MP_STATION) || IsTileType(tile_org, MP_TUNNELBRIDGE))
if (IsTileType(tile, MP_RAILWAY) || IsTileType(tile, MP_STATION) || IsTileType(tile, MP_TUNNELBRIDGE))
/* Check if we are on a bridge (middle parts don't have an owner */