mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 15:41:15 +00:00
(svn r14601) -Fix: the nearest depot and stop in depot orders didn't work together (the vehicle didn't stop).
This commit is contained in:
parent
bc88d7d9b0
commit
2209c6a344
@ -84,10 +84,11 @@ public:
|
||||
* Makes this order a Go To Depot order.
|
||||
* @param destination the depot to go to.
|
||||
* @param order is this order a 'default' order, or an overriden vehicle order?
|
||||
* @param action what to do in the depot?
|
||||
* @param cargo the cargo type to change to.
|
||||
* @param subtype the subtype to change to.
|
||||
*/
|
||||
void MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, CargoID cargo = CT_NO_REFIT, byte subtype = 0);
|
||||
void MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, OrderDepotActionFlags action = ODATF_SERVICE_ONLY, CargoID cargo = CT_NO_REFIT, byte subtype = 0);
|
||||
|
||||
/**
|
||||
* Makes this order a Go To Waypoint order.
|
||||
|
@ -57,11 +57,11 @@ void Order::MakeGoToStation(StationID destination)
|
||||
this->dest = destination;
|
||||
}
|
||||
|
||||
void Order::MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, CargoID cargo, byte subtype)
|
||||
void Order::MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, OrderDepotActionFlags action, CargoID cargo, byte subtype)
|
||||
{
|
||||
this->type = OT_GOTO_DEPOT;
|
||||
this->flags = 0;
|
||||
this->SetDepotOrderType(order);
|
||||
this->SetDepotActionType(action);
|
||||
if (!(order & ODTFB_PART_OF_ORDERS)) {
|
||||
this->SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
|
||||
}
|
||||
@ -1623,7 +1623,7 @@ bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth)
|
||||
|
||||
if (v->FindClosestDepot(&location, &destination, &reverse)) {
|
||||
v->dest_tile = location;
|
||||
v->current_order.MakeGoToDepot(destination, v->current_order.GetDepotOrderType(), v->current_order.GetRefitCargo(), v->current_order.GetRefitSubtype());
|
||||
v->current_order.MakeGoToDepot(destination, v->current_order.GetDepotOrderType(), (OrderDepotActionFlags)(v->current_order.GetDepotActionType() & ~ODATFB_NEAREST_DEPOT), v->current_order.GetRefitCargo(), v->current_order.GetRefitSubtype());
|
||||
|
||||
/* If there is no depot in front, reverse automatically (trains only) */
|
||||
if (v->type == VEH_TRAIN && reverse) DoCommand(v->tile, v->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION);
|
||||
|
Loading…
Reference in New Issue
Block a user