File diff r19518:752c1c3f7cfd → r19519:a08cec92f7c7
src/order_backup.cpp
Show inline comments
 
@@ -25,8 +25,6 @@ INSTANTIATE_POOL_METHODS(OrderBackup)
 
/** Free everything that is allocated. */
 
OrderBackup::~OrderBackup()
 
{
 
	free(this->name);
 

	
 
	if (CleaningPool()) return;
 

	
 
	Order *o = this->orders;
 
@@ -46,11 +44,9 @@ OrderBackup::OrderBackup(const Vehicle *
 
{
 
	this->user             = user;
 
	this->tile             = v->tile;
 
	this->orderindex       = v->cur_implicit_order_index;
 
	this->group            = v->group_id;
 
	this->service_interval = v->service_interval;
 

	
 
	if (v->name != NULL) this->name = strdup(v->name);
 
	this->CopyConsistPropertiesFrom(v);
 

	
 
	/* If we have shared orders, store the vehicle we share the order with. */
 
	if (v->IsOrderListShared()) {
 
@@ -76,10 +72,6 @@ OrderBackup::OrderBackup(const Vehicle *
 
 */
 
void OrderBackup::DoRestore(Vehicle *v)
 
{
 
	/* If we have a custom name, process that */
 
	v->name = this->name;
 
	this->name = NULL;
 

	
 
	/* If we had shared orders, recover that */
 
	if (this->clone != NULL) {
 
		DoCommand(0, v->index | CO_SHARE << 30, this->clone->index, DC_EXEC, CMD_CLONE_ORDER);
 
@@ -90,12 +82,11 @@ void OrderBackup::DoRestore(Vehicle *v)
 
		InvalidateWindowClassesData(WC_STATION_LIST, 0);
 
	}
 

	
 
	uint num_orders = v->GetNumOrders();
 
	if (num_orders != 0) {
 
		v->cur_real_order_index = v->cur_implicit_order_index = this->orderindex % num_orders;
 
		v->UpdateRealOrderIndex();
 
	}
 
	v->service_interval = this->service_interval;
 
	v->CopyConsistPropertiesFrom(this);
 

	
 
	/* Make sure orders are in range */
 
	v->UpdateRealOrderIndex();
 
	v->cur_implicit_order_index = v->cur_real_order_index;
 

	
 
	/* Restore vehicle group */
 
	DoCommand(0, this->group, v->index, DC_EXEC, CMD_ADD_VEHICLE_GROUP);