(svn r1544) -Fix: SwapOrder did not use AssignOrder, which caused the saveroutine to
authortruelight
Sun, 16 Jan 2005 14:42:53 +0000
changeset 1043 123072ba6ced
parent 1042 b613cc1c2226
child 1044 9b73df700a7c
(svn r1544) -Fix: SwapOrder did not use AssignOrder, which caused the saveroutine to
crash from time to time
-Codechange: added const before 'Order *' where possible
ai.c
aircraft_cmd.c
order.h
order_cmd.c
order_gui.c
--- a/ai.c	Sun Jan 16 14:10:13 2005 +0000
+++ b/ai.c	Sun Jan 16 14:42:53 2005 +0000
@@ -3609,7 +3609,7 @@
 {
 	// Remove stations that aren't in use by any vehicle
 	byte in_use[256], *used;
-	Order *ord;
+	const Order *ord;
 	Station *st;
 	uint tile;
 
--- a/aircraft_cmd.c	Sun Jan 16 14:10:13 2005 +0000
+++ b/aircraft_cmd.c	Sun Jan 16 14:42:53 2005 +0000
@@ -1023,7 +1023,7 @@
 
 static void ProcessAircraftOrder(Vehicle *v)
 {
-	Order *order;
+	const Order *order;
 
 	// OT_GOTO_DEPOT, OT_LOADING
 	if (v->current_order.type == OT_GOTO_DEPOT ||
--- a/order.h	Sun Jan 16 14:10:13 2005 +0000
+++ b/order.h	Sun Jan 16 14:42:53 2005 +0000
@@ -74,7 +74,7 @@
 
 static inline bool HasOrderPoolFree(uint amount)
 {
-	Order *order;
+	const Order *order;
 
 	FOR_ALL_ORDERS(order)
 		if (order->type == OT_NOTHING)
--- a/order_cmd.c	Sun Jan 16 14:10:13 2005 +0000
+++ b/order_cmd.c	Sun Jan 16 14:42:53 2005 +0000
@@ -67,8 +67,10 @@
 	Order temp_order;
 
 	temp_order = *order1;
-	*order1 = *order2;
-	*order2 = temp_order;
+	AssignOrder(order1, *order2);
+	order1->next = order2->next;
+	AssignOrder(order2, temp_order);
+	order2->next = temp_order.next;
 }
 
 /**
--- a/order_gui.c	Sun Jan 16 14:10:13 2005 +0000
+++ b/order_gui.c	Sun Jan 16 14:42:53 2005 +0000
@@ -387,7 +387,7 @@
 			sel += w->vscroll.pos;
 
 			if (_ctrl_pressed && sel < v->num_orders) {
-				Order *ord = GetVehicleOrder(v, sel);
+				const Order *ord = GetVehicleOrder(v, sel);
 				int xy = 0;
 				switch (ord->type) {
 				case OT_GOTO_STATION:			/* station order */