From 58ef6ecc33504b76ea422dab33a4e3ebd23f4207 Mon Sep 17 00:00:00 2001 From: truelight Date: Mon, 19 Mar 2007 15:59:23 +0000 Subject: [PATCH] (svn r9338) -Fix: close the Shared Order Vehicle List if you remove the shared link with only 2 vehicles --- src/order_cmd.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 1ddde9fc43..fb544565bf 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1138,7 +1138,7 @@ void DeleteVehicleOrders(Vehicle *v) /* If we have a shared order-list, don't delete the list, but just remove our pointer */ if (IsOrderListShared(v)) { - const Vehicle *u = v; + Vehicle *u = v; v->orders = NULL; v->num_orders = 0; @@ -1155,6 +1155,10 @@ void DeleteVehicleOrders(Vehicle *v) v->prev_shared = NULL; v->next_shared = NULL; + /* If we are the only one left in the Shared Order Vehicle List, + * remove it, as we are no longer a Shared Order Vehicle */ + if (u->prev_shared == NULL && u->next_shared == NULL) RemoveSharedOrderVehicleList(u); + /* We only need to update this-one, because if there is a third * vehicle which shares the same order-list, nothing will change. If * this is the last vehicle, the last line of the order-window