(svn r1607) -Fix: When deleting an order, the next pointer was not cleared,

resulting in some unusual behavoir from time to time
This commit is contained in:
truelight 2005-01-23 11:37:27 +00:00
parent 61a3ac68e2
commit 18f16908a2

View File

@ -273,6 +273,7 @@ int32 CmdDeleteOrder(int x, int y, uint32 flags, uint32 vehicle_id, uint32 selec
/* Give the item free */ /* Give the item free */
order->type = OT_NOTHING; order->type = OT_NOTHING;
order->next = NULL;
u = GetFirstVehicleFromSharedList(v); u = GetFirstVehicleFromSharedList(v);
while (u != NULL) { while (u != NULL) {
@ -568,6 +569,7 @@ void BackupVehicleOrders(Vehicle *v, BackuppedOrders *bak)
} }
/* End the list with an OT_NOTHING */ /* End the list with an OT_NOTHING */
dest->type = OT_NOTHING; dest->type = OT_NOTHING;
dest->next = NULL;
} }
} }
@ -663,7 +665,7 @@ bool CheckOrders(uint data_a, uint data_b)
} else { } else {
DEBUG(misc, 3) ("CheckOrder called in mode 1 (validation mode) for %d", v->index); DEBUG(misc, 3) ("CheckOrder called in mode 1 (validation mode) for %d", v->index);
}*/ }*/
FOR_VEHICLE_ORDERS(v, order) { FOR_VEHICLE_ORDERS(v, order) {
/* Dummy order? */ /* Dummy order? */
if (order->type == OT_DUMMY) { if (order->type == OT_DUMMY) {