Add support for multiple scheduled dispatch schedules per order list

This commit is contained in:
Jonathan G Rennison
2022-01-13 19:46:43 +00:00
parent 29521ef883
commit ff3473fe6a
23 changed files with 755 additions and 367 deletions

View File

@@ -69,11 +69,7 @@ OrderBackup::OrderBackup(const Vehicle *v, uint32 user)
if (v->orders.list != nullptr && HasBit(v->vehicle_flags, VF_SCHEDULED_DISPATCH)) {
SetBit(this->vehicle_flags, VF_SCHEDULED_DISPATCH);
this->scheduled_dispatch = v->orders.list->GetScheduledDispatch();
this->scheduled_dispatch_duration = v->orders.list->GetScheduledDispatchDuration();
this->scheduled_dispatch_start_date = v->orders.list->GetScheduledDispatchStartDatePart();
this->scheduled_dispatch_start_full_date_fract = v->orders.list->GetScheduledDispatchStartDateFractPart();
this->scheduled_dispatch_max_delay = v->orders.list->GetScheduledDispatchDelay();
this->dispatch_schedules = v->orders.list->GetScheduledDispatchScheduleSet();
}
}
@@ -95,12 +91,7 @@ void OrderBackup::DoRestore(Vehicle *v)
if (HasBit(this->vehicle_flags, VF_SCHEDULED_DISPATCH)) {
SetBit(v->vehicle_flags, VF_SCHEDULED_DISPATCH);
v->orders.list->SetScheduledDispatchDuration(this->scheduled_dispatch_duration);
v->orders.list->SetScheduledDispatchDelay(this->scheduled_dispatch_max_delay);
v->orders.list->SetScheduledDispatchStartDate(this->scheduled_dispatch_start_date,
this->scheduled_dispatch_start_full_date_fract);
v->orders.list->SetScheduledDispatchLastDispatch(0);
v->orders.list->SetScheduledDispatch(std::move(this->scheduled_dispatch));
v->orders.list->GetScheduledDispatchScheduleSet() = std::move(this->dispatch_schedules);
}
/* Make sure buoys/oil rigs are updated in the station list. */