mirror of https://github.com/OpenTTD/OpenTTD
(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()release/0.6
parent
470619a8bb
commit
c8c27b9740
|
@ -793,7 +793,7 @@ static void DepotWndProc(Window *w, WindowEvent *e)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DEPOT_WIDGET_VEHICLE_LIST:
|
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;
|
break;
|
||||||
|
|
||||||
case DEPOT_WIDGET_AUTOREPLACE:
|
case DEPOT_WIDGET_AUTOREPLACE:
|
||||||
|
|
|
@ -263,22 +263,22 @@ static void MenuClickIndustry(int index)
|
||||||
|
|
||||||
static void MenuClickShowTrains(int index)
|
static void MenuClickShowTrains(int index)
|
||||||
{
|
{
|
||||||
ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Train);
|
ShowVehicleListWindow((PlayerID)index, VEH_Train);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuClickShowRoad(int index)
|
static void MenuClickShowRoad(int index)
|
||||||
{
|
{
|
||||||
ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Road);
|
ShowVehicleListWindow((PlayerID)index, VEH_Road);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuClickShowShips(int index)
|
static void MenuClickShowShips(int index)
|
||||||
{
|
{
|
||||||
ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Ship);
|
ShowVehicleListWindow((PlayerID)index, VEH_Ship);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuClickShowAir(int index)
|
static void MenuClickShowAir(int index)
|
||||||
{
|
{
|
||||||
ShowVehicleListWindow((PlayerID)index, INVALID_STATION, VEH_Aircraft);
|
ShowVehicleListWindow((PlayerID)index, VEH_Aircraft);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MenuClickBuildRail(int index)
|
static void MenuClickBuildRail(int index)
|
||||||
|
@ -1802,10 +1802,10 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e)
|
||||||
case WKC_F10:ShowOperatingProfitGraph(); break;
|
case WKC_F10:ShowOperatingProfitGraph(); break;
|
||||||
case WKC_F11: ShowCompanyLeagueTable(); break;
|
case WKC_F11: ShowCompanyLeagueTable(); break;
|
||||||
case WKC_F12: ShowBuildIndustryWindow(); break;
|
case WKC_F12: ShowBuildIndustryWindow(); break;
|
||||||
case WKC_SHIFT | WKC_F1: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Train); break;
|
case WKC_SHIFT | WKC_F1: ShowVehicleListWindow(_local_player, VEH_Train); break;
|
||||||
case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Road); break;
|
case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, VEH_Road); break;
|
||||||
case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Ship); break;
|
case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, VEH_Ship); break;
|
||||||
case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, INVALID_STATION, VEH_Aircraft); break;
|
case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, VEH_Aircraft); break;
|
||||||
case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break;
|
case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break;
|
||||||
case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break;
|
case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break;
|
||||||
case WKC_SHIFT | WKC_F7: ShowBuildRailToolbar(_last_built_railtype, -1); break;
|
case WKC_SHIFT | WKC_F7: ShowBuildRailToolbar(_last_built_railtype, -1); break;
|
||||||
|
|
|
@ -482,7 +482,7 @@ static void OrdersWndProc(Window *w, WindowEvent *e)
|
||||||
OrderClick_Transfer(w, v);
|
OrderClick_Transfer(w, v);
|
||||||
break;
|
break;
|
||||||
case 11: /* Vehicle with same shared Orders button */
|
case 11: /* Vehicle with same shared Orders button */
|
||||||
ShowVehWithSharedOrders(v, v->type);
|
ShowVehicleListWindow(v);
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
OrderClick_Refit(w, v);
|
OrderClick_Refit(w, v);
|
||||||
|
|
|
@ -762,13 +762,13 @@ static void StationViewWndProc(Window *w, WindowEvent *e)
|
||||||
|
|
||||||
case 10: { /* Show a list of scheduled trains to this station */
|
case 10: { /* Show a list of scheduled trains to this station */
|
||||||
const Station *st = GetStation(w->window_number);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 11: { /* Show a list of scheduled road-vehicles to this station */
|
case 11: { /* Show a list of scheduled road-vehicles to this station */
|
||||||
const Station *st = GetStation(w->window_number);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -776,7 +776,7 @@ static void StationViewWndProc(Window *w, WindowEvent *e)
|
||||||
const Station *st = GetStation(w->window_number);
|
const Station *st = GetStation(w->window_number);
|
||||||
/* Since oilrigs have no owners, show the scheduled aircraft of current player */
|
/* Since oilrigs have no owners, show the scheduled aircraft of current player */
|
||||||
PlayerID owner = (st->owner == OWNER_NONE) ? _current_player : st->owner;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -784,7 +784,7 @@ static void StationViewWndProc(Window *w, WindowEvent *e)
|
||||||
const Station *st = GetStation(w->window_number);
|
const Station *st = GetStation(w->window_number);
|
||||||
/* Since oilrigs/bouys have no owners, show the scheduled ships of current player */
|
/* Since oilrigs/bouys have no owners, show the scheduled ships of current player */
|
||||||
PlayerID owner = (st->owner == OWNER_NONE) ? _current_player : st->owner;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1874,29 +1874,19 @@ static const WindowDesc _player_vehicle_list_aircraft_desc = {
|
||||||
PlayerVehWndProc
|
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;
|
Window *w;
|
||||||
WindowNumber num;
|
WindowNumber num;
|
||||||
|
|
||||||
if (!IsValidPlayer(player)) return;
|
if (!IsValidPlayer(player)) return;
|
||||||
|
|
||||||
num = (vehicle_type << 11) | player;
|
num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The vehicle list windows have been unified. Just some strings need
|
/* The vehicle list windows have been unified. Just some strings need
|
||||||
* to be changed which happens in the WE_CREATE event and resizing
|
* to be changed which happens in the WE_CREATE event and resizing
|
||||||
* some of the windows to the correct size */
|
* some of the windows to the correct size */
|
||||||
switch (vehicle_type) {
|
switch (vehicle_type) {
|
||||||
default: NOT_REACHED();
|
|
||||||
case VEH_Train:
|
case VEH_Train:
|
||||||
w = AllocateWindowDescFront(&_player_vehicle_list_train_desc, num);
|
w = AllocateWindowDescFront(&_player_vehicle_list_train_desc, num);
|
||||||
if (w != NULL) ResizeWindow(w, 65, 38);
|
if (w != NULL) ResizeWindow(w, 65, 38);
|
||||||
|
@ -1911,6 +1901,7 @@ static void ShowVehicleListWindowLocal(PlayerID player, byte vehicle_type, Stati
|
||||||
case VEH_Aircraft:
|
case VEH_Aircraft:
|
||||||
w = AllocateWindowDescFront(&_player_vehicle_list_aircraft_desc, num);
|
w = AllocateWindowDescFront(&_player_vehicle_list_aircraft_desc, num);
|
||||||
break;
|
break;
|
||||||
|
default: NOT_REACHED(); return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (w != NULL) {
|
if (w != NULL) {
|
||||||
|
@ -1920,18 +1911,23 @@ static void ShowVehicleListWindowLocal(PlayerID player, byte vehicle_type, Stati
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
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;
|
uint16 depot_airport_index;
|
||||||
|
|
||||||
|
@ -1942,5 +1938,5 @@ void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile
|
||||||
if (depot == NULL) return; // no depot to show
|
if (depot == NULL) return; // no depot to show
|
||||||
depot_airport_index = depot->index;
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,9 +53,10 @@ void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v);
|
||||||
uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
|
uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
|
||||||
uint ShowRefitOptionsList(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 ShowVehicleListWindow(const Vehicle *v);
|
||||||
void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type);
|
void ShowVehicleListWindow(PlayerID player, byte vehicle_type);
|
||||||
void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile);
|
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)
|
static inline void DrawVehicleImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection)
|
||||||
|
|
Loading…
Reference in New Issue