From 2a07ed9d46ecf07a6ea0c802970c4a3c70dd76eb Mon Sep 17 00:00:00 2001 From: bjarni Date: Wed, 30 Aug 2006 19:42:20 +0000 Subject: (svn r6242) -Codechange: made BuildVehicleList static as it is not used in any other files anymore added window_type to arguments and used it to replace an if cascade with a switch case --- vehicle_gui.c | 49 +++++++++++++++++++++++++++---------------------- vehicle_gui.h | 1 - 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/vehicle_gui.c b/vehicle_gui.c index 5445fe212..e76700241 100644 --- a/vehicle_gui.c +++ b/vehicle_gui.c @@ -119,7 +119,7 @@ void ResortVehicleLists(void) } } -void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID station, OrderID order) +static void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID station, OrderID order, uint16 window_type) { const Vehicle** sort_list; uint subtype = (type != VEH_Aircraft) ? Train_Front : 2; @@ -136,25 +136,26 @@ void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID sta DEBUG(misc, 1) ("Building vehicle list for player %d station %d...", owner, station); - if (station != INVALID_STATION) { - const Vehicle *v; - FOR_ALL_VEHICLES(v) { - if (v->type == type && ( - (type == VEH_Train && IsFrontEngine(v)) || - (type != VEH_Train && v->subtype <= subtype) - )) { - const Order *order; - - FOR_VEHICLE_ORDERS(v, order) { - if (order->type == OT_GOTO_STATION && order->dest.station == station) { - sort_list[n++] = v; - break; + switch (window_type) { + case VLW_STATION_LIST: { + const Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (v->type == type && ( + (type == VEH_Train && IsFrontEngine(v)) || + (type != VEH_Train && v->subtype <= subtype))) { + const Order *order; + + FOR_VEHICLE_ORDERS(v, order) { + if (order->type == OT_GOTO_STATION && order->dest.station == station) { + sort_list[n++] = v; + break; + } } } } - } - } else { - if (order != INVALID_ORDER) { + } break; + + case VLW_SHARED_ORDERS: { Vehicle *v; FOR_ALL_VEHICLES(v) { /* Find a vehicle with the order in question */ @@ -167,16 +168,20 @@ void BuildVehicleList(vehiclelist_d* vl, int type, PlayerID owner, StationID sta sort_list[n++] = v; } } - } else { + } break; + + case VLW_STANDARD: { const Vehicle *v; FOR_ALL_VEHICLES(v) { if (v->type == type && v->owner == owner && ( - (type == VEH_Train && IsFrontEngine(v)) || - (type != VEH_Train && v->subtype <= subtype))) { + (type == VEH_Train && IsFrontEngine(v)) || + (type != VEH_Train && v->subtype <= subtype))) { sort_list[n++] = v; } } - } + } break; + + default: NOT_REACHED(); break; } free((void*)vl->sort_list); @@ -1227,7 +1232,7 @@ void PlayerVehWndProc(Window *w, WindowEvent *e) const StationID station = (window_type == VLW_STATION_LIST) ? GB(w->window_number, 16, 16) : INVALID_STATION; const OrderID order = (window_type == VLW_SHARED_ORDERS) ? GB(w->window_number, 16, 16) : INVALID_ORDER; - BuildVehicleList(vl, vehicle_type, owner, station, order); + BuildVehicleList(vl, vehicle_type, owner, station, order, window_type); SortVehicleList(vl); SetVScrollCount(w, vl->list_length); diff --git a/vehicle_gui.h b/vehicle_gui.h index 5df43c11c..103f5db9e 100644 --- a/vehicle_gui.h +++ b/vehicle_gui.h @@ -17,7 +17,6 @@ void InitializeVehiclesGuiList(void); void RebuildVehicleLists(void); void ResortVehicleLists(void); -void BuildVehicleList(struct vehiclelist_d* vl, int type, PlayerID, StationID, uint16 order); void SortVehicleList(struct vehiclelist_d *vl); #define PERIODIC_RESORT_DAYS 10 -- cgit v1.2.3-70-g09d2