# HG changeset patch # User rubidium # Date 1207661564 0 # Node ID 706760e1205a2bbc28c57d99d5188c44a95c5229 # Parent a30cd0629e2b445363e13ee8438d8666af0a00fe (svn r12628) -Fix: TTDP compatible non-stop wasn't handled properly. diff -r a30cd0629e2b -r 706760e1205a src/order_cmd.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)); diff -r a30cd0629e2b -r 706760e1205a src/order_gui.cpp --- 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;