(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
--- 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 */