(svn r12716) -Fix: Do not compare StationIDs with DepotIDs or WaypointIDs.
authorfrosch
Tue, 15 Apr 2008 12:25:35 +0000
changeset 8941 daf347ea7a17
parent 8940 afe7bc9fcc6e
child 8942 a53f56bb1639
(svn r12716) -Fix: Do not compare StationIDs with DepotIDs or WaypointIDs.
src/order_cmd.cpp
--- a/src/order_cmd.cpp	Mon Apr 14 23:26:31 2008 +0000
+++ b/src/order_cmd.cpp	Tue Apr 15 12:25:35 2008 +0000
@@ -1614,7 +1614,7 @@
 	}
 
 	/* Check if we've reached a non-stop station.. */
-	if ((v->current_order.GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) &&
+	if (v->current_order.IsType(OT_GOTO_STATION) && (v->current_order.GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) &&
 			IsTileType(v->tile, MP_STATION) &&
 			v->current_order.GetDestination() == GetStationIndex(v->tile)) {
 		v->last_station_visited = v->current_order.GetDestination();
@@ -1742,10 +1742,11 @@
  */
 bool Order::ShouldStopAtStation(const Vehicle *v, StationID station) const
 {
+	bool is_dest_station = this->IsType(OT_GOTO_STATION) && this->dest == station;
 	return
 			v->last_station_visited != station && // Do stop only when we've not just been there
 			/* Finally do stop when there is no non-stop flag set for this type of station. */
-			!(this->GetNonStopType() & ((this->dest == station) ? ONSF_NO_STOP_AT_DESTINATION_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS));
+			!(this->GetNonStopType() & (is_dest_station ? ONSF_NO_STOP_AT_DESTINATION_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS));
 }
 
 void InitializeOrders()