diff options
Diffstat (limited to 'yapf/yapf_road.cpp')
-rw-r--r-- | yapf/yapf_road.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/yapf/yapf_road.cpp b/yapf/yapf_road.cpp index 6fbff3ecb..d0a06c0f4 100644 --- a/yapf/yapf_road.cpp +++ b/yapf/yapf_road.cpp @@ -76,7 +76,13 @@ public: // base tile cost depending on distance between edges segment_cost += Yapf().OneTileCost(tile, trackdir); - // if there are no reachable trackdirs n new tile, we have end of road + // stop if we have just entered the depot + if (IsTileDepotType(tile, TRANSPORT_ROAD) && trackdir == DiagdirToDiagTrackdir(ReverseDiagDir(GetRoadDepotDirection(tile)))) { + // next time we will reverse and leave the depot + break; + } + + // if there are no reachable trackdirs on new tile, we have end of road TrackFollower F; if (!F.Follow(tile, trackdir)) break; |