Fix timetable automation with conditional order sequences
This commit is contained in:
@@ -3098,9 +3098,12 @@ void Vehicle::DeleteUnreachedImplicitOrders()
|
|||||||
ClrBit(gv_flags, GVF_SUPPRESS_IMPLICIT_ORDERS);
|
ClrBit(gv_flags, GVF_SUPPRESS_IMPLICIT_ORDERS);
|
||||||
this->cur_implicit_order_index = this->cur_real_order_index;
|
this->cur_implicit_order_index = this->cur_real_order_index;
|
||||||
if (this->cur_timetable_order_index != this->cur_real_order_index) {
|
if (this->cur_timetable_order_index != this->cur_real_order_index) {
|
||||||
/* Timetable order ID was not the real order, to avoid updating the wrong timetable, just clear the timetable index */
|
Order *real_timetable_order = this->cur_timetable_order_index != INVALID_VEH_ORDER_ID ? this->GetOrder(this->cur_timetable_order_index) : nullptr;
|
||||||
|
if (real_timetable_order == nullptr || !real_timetable_order->IsType(OT_CONDITIONAL)) {
|
||||||
|
/* Timetable order ID was not the real order or a conditional order, to avoid updating the wrong timetable, just clear the timetable index */
|
||||||
this->cur_timetable_order_index = INVALID_VEH_ORDER_ID;
|
this->cur_timetable_order_index = INVALID_VEH_ORDER_ID;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
InvalidateVehicleOrder(this, 0);
|
InvalidateVehicleOrder(this, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user