diff options
author | frosch <frosch@openttd.org> | 2008-04-15 12:25:35 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-04-15 12:25:35 +0000 |
commit | 7ba1d9076f4eea0930214be0ec1a054a467e301b (patch) | |
tree | 698911f4da9bef1f779ffbe3049f1bbdcdbd99ab | |
parent | fd38b3f850863a3e4010bccd6cbab5e5b8cec0c1 (diff) | |
download | openttd-7ba1d9076f4eea0930214be0ec1a054a467e301b.tar.xz |
(svn r12716) -Fix: Do not compare StationIDs with DepotIDs or WaypointIDs.
-rw-r--r-- | src/order_cmd.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index ccb104d2a..b6e483d4c 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1614,7 +1614,7 @@ bool ProcessOrders(Vehicle *v) } /* 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 ProcessOrders(Vehicle *v) */ 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() |