(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
pull/155/head
bjarni 18 years ago
parent 76dd9bf928
commit 118409fb8c

@ -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);

@ -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

Loading…
Cancel
Save