diff options
author | tron <tron@openttd.org> | 2006-09-03 19:29:31 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-09-03 19:29:31 +0000 |
commit | 7ecc7d0ba470e163ef15a9163083fbcf005eb489 (patch) | |
tree | e61f80c50d2e829b18e36efbebf0677471ba45ff | |
parent | cd5c6df5f7bcca2e6dd00f65835d3afff4e8b40b (diff) | |
download | openttd-7ecc7d0ba470e163ef15a9163083fbcf005eb489.tar.xz |
(svn r6360) -Codechange: Polish RemoveOrderFromAllVehicles()
-rw-r--r-- | order_cmd.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/order_cmd.c b/order_cmd.c index 322448c5c..dae0dd5e8 100644 --- a/order_cmd.c +++ b/order_cmd.c @@ -965,8 +965,6 @@ void CheckOrders(const Vehicle* v) void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination) { Vehicle *v; - Order *order; - bool need_invalidate; /* Aircraft have StationIDs for depot orders and never use DepotIDs * This fact is handled specially below @@ -974,37 +972,37 @@ void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination) /* Go through all vehicles */ FOR_ALL_VEHICLES(v) { + Order *order; + bool invalidate; + if (v->orders == NULL) continue; /* Forget about this station if this station is removed */ - if (v->last_station_visited == destination && type == OT_GOTO_STATION) + if (v->last_station_visited == destination && type == OT_GOTO_STATION) { v->last_station_visited = INVALID_STATION; + } - /* Check the current order */ - if ((v->type == VEH_Aircraft && v->current_order.type == OT_GOTO_DEPOT ? OT_GOTO_STATION : v->current_order.type) == type && + order = &v->current_order; + if ((v->type == VEH_Aircraft && order->type == OT_GOTO_DEPOT ? OT_GOTO_STATION : order->type) == type && v->current_order.dest == destination) { - /* Mark the order as DUMMY */ - v->current_order.type = OT_DUMMY; - v->current_order.flags = 0; + order->type = OT_DUMMY; + order->flags = 0; InvalidateWindow(WC_VEHICLE_VIEW, v->index); } /* Clear the order from the order-list */ - need_invalidate = false; + invalidate = false; FOR_VEHICLE_ORDERS(v, order) { if ((v->type == VEH_Aircraft && order->type == OT_GOTO_DEPOT ? OT_GOTO_STATION : order->type) == type && order->dest == destination) { - /* Mark the order as DUMMY */ order->type = OT_DUMMY; order->flags = 0; - - need_invalidate = true; + invalidate = true; } } /* Only invalidate once, and if needed */ - if (need_invalidate) - InvalidateWindow(WC_VEHICLE_ORDERS, v->index); + if (invalidate) InvalidateWindow(WC_VEHICLE_ORDERS, v->index); } } |