src/order_cmd.cpp
changeset 8965 a145f62a6272
parent 8869 1e62a45d7599
child 9047 4dce11366b62
equal deleted inserted replaced
8964:d90216f46fa3 8965:a145f62a6272
   835 					}
   835 					}
   836 				}
   836 				}
   837 			}
   837 			}
   838 
   838 
   839 			/* make sure there are orders available */
   839 			/* make sure there are orders available */
   840 			delta = IsOrderListShared(dst) ? src->num_orders + 1 : src->num_orders - dst->num_orders;
   840 			delta = dst->IsOrderListShared() ? src->num_orders + 1 : src->num_orders - dst->num_orders;
   841 			if (!HasOrderPoolFree(delta))
   841 			if (!HasOrderPoolFree(delta))
   842 				return_cmd_error(STR_8831_NO_MORE_SPACE_FOR_ORDERS);
   842 				return_cmd_error(STR_8831_NO_MORE_SPACE_FOR_ORDERS);
   843 
   843 
   844 			if (flags & DC_EXEC) {
   844 			if (flags & DC_EXEC) {
   845 				const Order *order;
   845 				const Order *order;
   937 	bak->orderindex       = v->cur_order_index;
   937 	bak->orderindex       = v->cur_order_index;
   938 	bak->service_interval = v->service_interval;
   938 	bak->service_interval = v->service_interval;
   939 	if (v->name != NULL) bak->name = strdup(v->name);
   939 	if (v->name != NULL) bak->name = strdup(v->name);
   940 
   940 
   941 	/* If we have shared orders, store it on a special way */
   941 	/* If we have shared orders, store it on a special way */
   942 	if (IsOrderListShared(v)) {
   942 	if (v->IsOrderListShared()) {
   943 		const Vehicle *u = (v->next_shared) ? v->next_shared : v->prev_shared;
   943 		const Vehicle *u = (v->next_shared) ? v->next_shared : v->prev_shared;
   944 
   944 
   945 		bak->clone = u->index;
   945 		bak->clone = u->index;
   946 	} else {
   946 	} else {
   947 		/* Else copy the orders */
   947 		/* Else copy the orders */
  1207 {
  1207 {
  1208 	DeleteOrderWarnings(v);
  1208 	DeleteOrderWarnings(v);
  1209 
  1209 
  1210 	/* If we have a shared order-list, don't delete the list, but just
  1210 	/* If we have a shared order-list, don't delete the list, but just
  1211 	    remove our pointer */
  1211 	    remove our pointer */
  1212 	if (IsOrderListShared(v)) {
  1212 	if (v->IsOrderListShared()) {
  1213 		Vehicle *u = v;
  1213 		Vehicle *u = v;
  1214 
  1214 
  1215 		v->orders = NULL;
  1215 		v->orders = NULL;
  1216 		v->num_orders = 0;
  1216 		v->num_orders = 0;
  1217 
  1217 
  1255 Date GetServiceIntervalClamped(uint index)
  1255 Date GetServiceIntervalClamped(uint index)
  1256 {
  1256 {
  1257 	return (_patches.servint_ispercent) ? Clamp(index, MIN_SERVINT_PERCENT, MAX_SERVINT_PERCENT) : Clamp(index, MIN_SERVINT_DAYS, MAX_SERVINT_DAYS);
  1257 	return (_patches.servint_ispercent) ? Clamp(index, MIN_SERVINT_PERCENT, MAX_SERVINT_PERCENT) : Clamp(index, MIN_SERVINT_DAYS, MAX_SERVINT_DAYS);
  1258 }
  1258 }
  1259 
  1259 
  1260 /**
       
  1261  *
       
  1262  * Check if we share our orders with an other vehicle
       
  1263  *
       
  1264  * @return Returns the vehicle who has the same order
       
  1265  *
       
  1266  */
       
  1267 bool IsOrderListShared(const Vehicle *v)
       
  1268 {
       
  1269 	return v->next_shared != NULL || v->prev_shared != NULL;
       
  1270 }
       
  1271 
  1260 
  1272 /**
  1261 /**
  1273  *
  1262  *
  1274  * Check if a vehicle has any valid orders
  1263  * Check if a vehicle has any valid orders
  1275  *
  1264  *