diff options
author | KUDr <KUDr@openttd.org> | 2006-08-26 22:24:32 +0000 |
---|---|---|
committer | KUDr <KUDr@openttd.org> | 2006-08-26 22:24:32 +0000 |
commit | 0fa65dd6f318ea7e091068e8469d6fc72e7ece13 (patch) | |
tree | 5e55df28300ef3b0de58d2f52052f7096df6d4b3 | |
parent | 4f00dd74000ad9828d006d421e2de3a4f76a6090 (diff) | |
download | openttd-0fa65dd6f318ea7e091068e8469d6fc72e7ece13.tar.xz |
(svn r6160) -Fix [ 1519167 ] Bus trying to service in depot of other company (mart3p)
thanks Darkvater for hotfix (r5897)
-rw-r--r-- | yapf/follow_track.hpp | 4 | ||||
-rw-r--r-- | yapf/yapf_road.cpp | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/yapf/follow_track.hpp b/yapf/follow_track.hpp index 2b22d4fe4..5bb3ad8ac 100644 --- a/yapf/follow_track.hpp +++ b/yapf/follow_track.hpp @@ -138,6 +138,10 @@ protected: DiagDirection exitdir = GetRoadDepotDirection(m_new_tile); if (ReverseDiagDir(exitdir) != m_exitdir) return false; + // don't try to enter other player's depots + if (GetTileOwner(m_new_tile) != m_veh->owner) { + return false; + } } if (IsRailTT() && IsTileDepotType(m_new_tile, TT())) { DiagDirection exitdir = GetRailDepotDirection(m_new_tile); diff --git a/yapf/yapf_road.cpp b/yapf/yapf_road.cpp index 30ece09b2..483f82a0f 100644 --- a/yapf/yapf_road.cpp +++ b/yapf/yapf_road.cpp @@ -83,7 +83,7 @@ public: } // if there are no reachable trackdirs on new tile, we have end of road - TrackFollower F; + TrackFollower F(Yapf().GetVehicle()); if (!F.Follow(tile, trackdir)) break; // if there are more trackdirs available & reachable, we are at the end of segment @@ -235,7 +235,7 @@ public: * and adds it to the open list by calling Yapf().AddNewNode(n) */ inline void PfFollowNode(Node& old_node) { - TrackFollower F; + TrackFollower F(Yapf().GetVehicle()); if (F.Follow(old_node.m_segment_last_tile, old_node.m_segment_last_td)) Yapf().AddMultipleNodes(&old_node, F.m_new_tile, F.m_new_td_bits); } @@ -365,7 +365,6 @@ public: Node& n = Yapf().GetBestNode(); TileIndex depot_tile = n.m_segment_last_tile; assert(IsTileDepotType(depot_tile, TRANSPORT_ROAD)); - if (!IsTileOwner(depot_tile, (Owner)v->owner)) return false; Depot* ret = GetDepotByTile(depot_tile); return ret; } |