changeset 4407:8eda64a27161 draft

(svn r6160) -Fix [ 1519167 ] Bus trying to service in depot of other company (mart3p) thanks Darkvater for hotfix (r5897)
author KUDr <KUDr@openttd.org>
date Sat, 26 Aug 2006 22:24:32 +0000
parents d4702ef4c475
children 16b5d019bf7f
files yapf/follow_track.hpp yapf/yapf_road.cpp
diffstat 2 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/yapf/follow_track.hpp
+++ b/yapf/follow_track.hpp
@@ -138,6 +138,10 @@
 			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);
--- a/yapf/yapf_road.cpp
+++ b/yapf/yapf_road.cpp
@@ -83,7 +83,7 @@
 			}
 
 			// 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 @@
 	*   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 @@
 		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;
 	}