summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2006-08-30 19:42:20 +0000
committerbjarni <bjarni@openttd.org>2006-08-30 19:42:20 +0000
commit2a07ed9d46ecf07a6ea0c802970c4a3c70dd76eb (patch)
treeb67ab9d550ee4abe5b610a7949fd32f310168c64
parent8f102334ff9947db18208fbb5b95b9b820bfc814 (diff)
downloadopenttd-2a07ed9d46ecf07a6ea0c802970c4a3c70dd76eb.tar.xz
(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
-rw-r--r--vehicle_gui.c49
-rw-r--r--vehicle_gui.h1
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