(svn r12628) -Fix: TTDP compatible non-stop wasn't handled properly.
authorrubidium
Tue, 08 Apr 2008 13:32:44 +0000
changeset 8861 706760e1205a
parent 8860 a30cd0629e2b
child 8862 f72f256c0259
(svn r12628) -Fix: TTDP compatible non-stop wasn't handled properly.
src/order_cmd.cpp
src/order_gui.cpp
--- a/src/order_cmd.cpp	Tue Apr 08 07:19:29 2008 +0000
+++ b/src/order_cmd.cpp	Tue Apr 08 13:32:44 2008 +0000
@@ -43,11 +43,11 @@
 
 OrderNonStopFlags Order::GetNonStopType() const
 {
-	return (this->flags & 0x8) ?
-			((!_patches.new_nonstop || !this->IsType(OT_GOTO_STATION)) ?
-					ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS :
-					ONSF_NO_STOP_AT_DESTINATION_STATION) :
-			ONSF_STOP_EVERYWHERE;
+	if (_patches.new_nonstop || this->IsType(OT_GOTO_DEPOT)) {
+		return (this->flags & 0x08) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS;
+	}
+
+	return (this->flags & 0x08) ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE;
 }
 
 void Order::Free()
@@ -759,7 +759,7 @@
 				order->SetLoadType(OLF_LOAD_IF_POSSIBLE);
 				break;
 			case OF_NON_STOP:
-				order->SetNonStopType(order->GetNonStopType() == ONSF_STOP_EVERYWHERE ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_STOP_EVERYWHERE);
+				order->SetNonStopType((order->GetNonStopType() == (_patches.new_nonstop ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE)) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_STOP_EVERYWHERE);
 				break;
 			case OF_TRANSFER:
 				order->SetUnloadType((OrderUnloadFlags)(order->GetUnloadType() ^ OUFB_TRANSFER));
--- a/src/order_gui.cpp	Tue Apr 08 07:19:29 2008 +0000
+++ b/src/order_gui.cpp	Tue Apr 08 13:32:44 2008 +0000
@@ -201,7 +201,7 @@
 					break;
 
 				case OT_GOTO_STATION:
-					SetDParam(1, _station_order_strings[!!order->GetNonStopType()][order->GetLoadType() | order->GetUnloadType()]);
+					SetDParam(1, _station_order_strings[!(order->GetNonStopType() == (_patches.new_nonstop ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE))][order->GetLoadType() | order->GetUnloadType()]);
 					SetDParam(2, order->GetDestination());
 					break;