(svn r12628) -Fix: TTDP compatible non-stop wasn't handled properly.

This commit is contained in:
rubidium 2008-04-08 13:32:44 +00:00
parent 310170364f
commit 71a2dd21fd
2 changed files with 7 additions and 7 deletions

View File

@ -43,11 +43,11 @@ DEFINE_OLD_POOL_GENERIC(Order, Order);
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 @@ CommandCost CmdModifyOrder(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
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));

View File

@ -201,7 +201,7 @@ static void DrawOrdersWindow(Window *w)
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;