changeset 5745:9c34cdf6cc19 draft

(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments) - Also removed some unneeded arguments - this also allows removing an if-else cascade in ShowVehicleListWindowLocal()
author bjarni <bjarni@openttd.org>
date Sun, 21 Jan 2007 00:01:47 +0000
parents 369fb46d0646
children 0d0228d0cc60
files src/depot_gui.cpp src/main_gui.cpp src/order_gui.cpp src/station_gui.cpp src/vehicle_gui.cpp src/vehicle_gui.h
diffstat 6 files changed, 32 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/src/depot_gui.cpp
+++ b/src/depot_gui.cpp
@@ -793,7 +793,7 @@
 					break;
 
 				case DEPOT_WIDGET_VEHICLE_LIST:
-					ShowVehDepotOrders(GetTileOwner(w->window_number), WP(w, depot_d).type, w->window_number);
+					ShowVehicleListWindow(GetTileOwner(w->window_number), WP(w, depot_d).type, (TileIndex)w->window_number);
 					break;
 
 				case DEPOT_WIDGET_AUTOREPLACE:
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -263,22 +263,22 @@
 
 static void MenuClickShowTrains(int index)
 {
-	ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Train);
+	ShowVehicleListWindow((PlayerID)index, VEH_Train);
 }
 
 static void MenuClickShowRoad(int index)
 {
-	ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Road);
+	ShowVehicleListWindow((PlayerID)index, VEH_Road);
 }
 
 static void MenuClickShowShips(int index)
 {
-	ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Ship);
+	ShowVehicleListWindow((PlayerID)index, VEH_Ship);
 }
 
 static void MenuClickShowAir(int index)
 {
-	ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Aircraft);
+	ShowVehicleListWindow((PlayerID)index, VEH_Aircraft);
 }
 
 static void MenuClickBuildRail(int index)
@@ -1802,10 +1802,10 @@
 		case WKC_F10:ShowOperatingProfitGraph(); break;
 		case WKC_F11: ShowCompanyLeagueTable(); break;
 		case WKC_F12: ShowBuildIndustryWindow(); break;
-		case WKC_SHIFT | WKC_F1: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Train); break;
-		case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Road); break;
-		case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Ship); break;
-		case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Aircraft); break;
+		case WKC_SHIFT | WKC_F1: ShowVehicleListWindow(_local_player, VEH_Train); break;
+		case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, VEH_Road); break;
+		case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, VEH_Ship); break;
+		case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, VEH_Aircraft); break;
 		case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break;
 		case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break;
 		case WKC_SHIFT | WKC_F7: ShowBuildRailToolbar(_last_built_railtype, -1); break;
--- a/src/order_gui.cpp
+++ b/src/order_gui.cpp
@@ -482,7 +482,7 @@
 			OrderClick_Transfer(w, v);
 			break;
 		case 11: /* Vehicle with same shared Orders button */
-			ShowVehWithSharedOrders(v, v->type);
+			ShowVehicleListWindow(v);
 			break;
 		case 12:
 			OrderClick_Refit(w, v);
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -762,13 +762,13 @@
 
 		case 10: { /* Show a list of scheduled trains to this station */
 			const Station *st = GetStation(w->window_number);
-			ShowVehicleListWindow(st->owner, w->window_number, VEH_Train);
+			ShowVehicleListWindow(st->owner, VEH_Train, (StationID)w->window_number);
 			break;
 		}
 
 		case 11: { /* Show a list of scheduled road-vehicles to this station */
 			const Station *st = GetStation(w->window_number);
-			ShowVehicleListWindow(st->owner, w->window_number, VEH_Road);
+			ShowVehicleListWindow(st->owner, VEH_Road, (StationID)w->window_number);
 			break;
 		}
 
@@ -776,7 +776,7 @@
 			const Station *st = GetStation(w->window_number);
 			/* Since oilrigs have no owners, show the scheduled aircraft of current player */
 			PlayerID owner = (st->owner == OWNER_NONE) ? _current_player : st->owner;
-			ShowVehicleListWindow(owner, w->window_number, VEH_Aircraft);
+			ShowVehicleListWindow(owner, VEH_Aircraft, (StationID)w->window_number);
 			break;
 		}
 
@@ -784,7 +784,7 @@
 			const Station *st = GetStation(w->window_number);
 			/* Since oilrigs/bouys have no owners, show the scheduled ships of current player */
 			PlayerID owner = (st->owner == OWNER_NONE) ? _current_player : st->owner;
-			ShowVehicleListWindow(owner, w->window_number, VEH_Ship);
+			ShowVehicleListWindow(owner, VEH_Ship, (StationID)w->window_number);
 			break;
 		}
 		}
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -1874,29 +1874,19 @@
 	PlayerVehWndProc
 };
 
-static void ShowVehicleListWindowLocal(PlayerID player, byte vehicle_type, StationID station, OrderID order, uint16 depot_airport_index)
+static void ShowVehicleListWindowLocal(PlayerID player, uint16 VLW_flag, byte vehicle_type, uint16 unique_number)
 {
 	Window *w;
 	WindowNumber num;
 
 	if (!IsValidPlayer(player)) return;
 
-	num = (vehicle_type << 11) | player;
-	if (order != INVALID_ORDER) {
-		num |= (order << 16) | VLW_SHARED_ORDERS;
-	} else if (depot_airport_index != INVALID_STATION) {
-		num |= (depot_airport_index << 16) | VLW_DEPOT_LIST;
-	} else if (station == INVALID_STATION) {
-		num |= VLW_STANDARD;
-	} else {
-		num |= (station << 16) | VLW_STATION_LIST;
-	}
+	num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | player;
 
 	/* The vehicle list windows have been unified. Just some strings need
 	 * to be changed which happens in the WE_CREATE event and resizing
 	 * some of the windows to the correct size */
 	switch (vehicle_type) {
-		default: NOT_REACHED();
 		case VEH_Train:
 			w = AllocateWindowDescFront(&_player_vehicle_list_train_desc, num);
 			if (w != NULL) ResizeWindow(w, 65, 38);
@@ -1911,6 +1901,7 @@
 		case VEH_Aircraft:
 			w = AllocateWindowDescFront(&_player_vehicle_list_aircraft_desc, num);
 			break;
+		default: NOT_REACHED(); return;
 	}
 
 	if (w != NULL) {
@@ -1920,18 +1911,23 @@
 	}
 }
 
-void ShowVehicleListWindow(PlayerID player, StationID station, byte vehicle_type)
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type)
 {
-	ShowVehicleListWindowLocal(player, vehicle_type, station, INVALID_ORDER, INVALID_STATION);
+	ShowVehicleListWindowLocal(player, VLW_STANDARD, vehicle_type, 0);
 }
 
-void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type)
+void ShowVehicleListWindow(const Vehicle *v)
 {
 	if (v->orders == NULL) return; // no shared list to show
-	ShowVehicleListWindowLocal(v->owner, vehicle_type, INVALID_STATION, v->orders->index, INVALID_STATION);
+	ShowVehicleListWindowLocal(v->owner, VLW_SHARED_ORDERS, v->type, v->orders->index);
 }
 
-void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile)
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type, StationID station)
+{
+	ShowVehicleListWindowLocal(player, VLW_STATION_LIST, vehicle_type, station);
+}
+
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type, TileIndex depot_tile)
 {
 	uint16 depot_airport_index;
 
@@ -1942,5 +1938,5 @@
 		if (depot == NULL) return; // no depot to show
 		depot_airport_index = depot->index;
 	}
-	ShowVehicleListWindowLocal(player, vehicle_type, INVALID_STATION, INVALID_ORDER, depot_airport_index);
+	ShowVehicleListWindowLocal(player, VLW_DEPOT_LIST, vehicle_type, depot_airport_index);
 }
--- a/src/vehicle_gui.h
+++ b/src/vehicle_gui.h
@@ -53,9 +53,10 @@
 uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
 uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine);
 
-void ShowVehicleListWindow(PlayerID player, StationID station, byte vehicle_type);
-void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type);
-void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile);
+void ShowVehicleListWindow(const Vehicle *v);
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type);
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type, StationID station);
+void ShowVehicleListWindow(PlayerID player, byte vehicle_type, TileIndex depot_tile);
 
 
 static inline void DrawVehicleImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection)