summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortruelight <truelight@openttd.org>2007-03-19 15:59:23 +0000
committertruelight <truelight@openttd.org>2007-03-19 15:59:23 +0000
commit58ef6ecc33504b76ea422dab33a4e3ebd23f4207 (patch)
tree06ba1ea3c0d46ecf622bff268d90d3362e5a7201 /src
parent9435d8cc83f31baf21abf976e644756db15dbbf1 (diff)
downloadopenttd-58ef6ecc33504b76ea422dab33a4e3ebd23f4207.tar.xz
(svn r9338) -Fix: close the Shared Order Vehicle List if you remove the shared link with only 2 vehicles
Diffstat (limited to 'src')
-rw-r--r--src/order_cmd.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp
index 1ddde9fc4..fb544565b 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