Changeset - r4456:1e356a1bef6a
[Not reviewed]
master
0 5 0
bjarni - 18 years ago 2006-08-30 16:32:00
bjarni@openttd.org
(svn r6239) -Code cleanup: cleaned up PlayerVehWndProc
code to delete an empty shared orders list is now much simpler
cleaned up the code to handle button clicks
fixed an assert if widget 9 was pressed on a list with vehicles for another company
5 files changed with 24 insertions and 47 deletions:
0 comments (0 inline, 0 general)
aircraft_gui.c
Show inline comments
 
@@ -966,25 +966,25 @@ void DrawSmallOrderListAircraft(const Ve
 

	
 
		if (order->type == OT_GOTO_STATION) {
 
			SetDParam(0, order->dest.station);
 
			DrawString(x, y, STR_A036, 0);
 

	
 
			y += 6;
 
			if (++i == 4) break;
 
		}
 
	}
 
}
 

	
 

	
 
const Widget _player_aircraft_widgets[] = {
 
static const Widget _player_aircraft_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_A009_AIRCRAFT,     STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                   STR_STICKY_BUTTON },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,           STR_SORT_ORDER_TIP },
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                   STR_SORT_CRITERIA_TIP },
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,              STR_SORT_CRITERIA_TIP },
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,                   STR_NULL },
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,                 STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT },
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,                   STR_0190_SCROLL_BAR_SCROLLS_LIST },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   124,   170,   181, STR_A003_NEW_AIRCRAFT, STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   125,   247,   170,   181, STR_REPLACE_VEHICLES,  STR_REPLACE_HELP },
 
{      WWT_PANEL,    RESIZE_RTB,    14,   248,   247,   170,   181, 0x0,                   STR_NULL },
 
@@ -1019,25 +1019,25 @@ static const WindowDesc _other_player_ai
 
	-1, -1, 260, 182,
 
	WC_AIRCRAFT_LIST,0,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 
	_other_player_aircraft_widgets,
 
	PlayerVehWndProc
 
};
 

	
 
void ShowPlayerAircraftLocal(PlayerID player, StationID station, OrderID order, bool show_shared)
 
{
 
	Window *w;
 

	
 
	if (show_shared) {
 
		w = AllocateWindowDescFront(&_player_aircraft_desc, (order << 16) | (VEH_Aircraft << 11) | VLW_SHARED_ORDERS);
 
		w = AllocateWindowDescFront(&_player_aircraft_desc, (order << 16) | (VEH_Aircraft << 11) | VLW_SHARED_ORDERS | player);
 
	} else {
 
		uint16 VLW_flag = (station == INVALID_STATION) ? VLW_STANDARD : VLW_STATION_LIST;
 
		if (player == _local_player) {
 
			w = AllocateWindowDescFront(&_player_aircraft_desc, (station << 16) | (VEH_Aircraft << 11) | VLW_flag | player);
 
		} else  {
 
			w = AllocateWindowDescFront(&_other_player_aircraft_desc, (station << 16) | (VEH_Aircraft << 11) | VLW_flag | player);
 
		}
 
	}
 

	
 
	if (w != NULL) {
 
		vehiclelist_d *vl = &WP(w, vehiclelist_d);
 
		vl->flags = VL_REBUILD | (_sorting.aircraft.order << (VL_DESC - 1));
roadveh_gui.c
Show inline comments
 
@@ -903,25 +903,25 @@ void ShowRoadDepotWindow(TileIndex tile)
 

	
 
	if (w != NULL) {
 
		w->caption_color = GetTileOwner(w->window_number);
 
		w->hscroll.cap = 5;
 
		w->vscroll.cap = 3;
 
		w->resize.step_width = 56;
 
		w->resize.step_height = 14;
 
		WP(w,traindepot_d).sel = INVALID_VEHICLE;
 
		_backup_orders_tile = 0;
 
	}
 
}
 

	
 
const Widget _player_roadveh_widgets[] = {
 
static const Widget _player_roadveh_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,               STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_9001_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                    STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,            STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                    STR_SORT_CRITERIA_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,               STR_SORT_CRITERIA_TIP},
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,                    STR_NULL},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   207, 0x701,                  STR_901A_ROAD_VEHICLES_CLICK_ON},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   207, 0x0,                    STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
/* only for our road list, a 'Build Vehicle' button that opens the depot of the last built depot */
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   124,   208,   219, STR_8815_NEW_VEHICLES,  STR_901B_BUILD_NEW_ROAD_VEHICLES},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   125,   247,   208,   219, STR_REPLACE_VEHICLES,   STR_REPLACE_HELP},
 
@@ -958,25 +958,25 @@ static const WindowDesc _other_player_ro
 
	WC_ROADVEH_LIST,0,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 
	_other_player_roadveh_widgets,
 
	PlayerVehWndProc
 
};
 

	
 

	
 
static void ShowPlayerRoadVehiclesLocal(PlayerID player, StationID station, OrderID order, bool show_shared)
 
{
 
	Window *w;
 

	
 
	if (show_shared) {
 
		w = AllocateWindowDescFront(&_player_roadveh_desc, (order << 16) | (VEH_Road << 11) | VLW_SHARED_ORDERS);
 
		w = AllocateWindowDescFront(&_player_roadveh_desc, (order << 16) | (VEH_Road << 11) | VLW_SHARED_ORDERS | player);
 
	} else {
 
		uint16 VLW_flag = (station == INVALID_STATION) ? VLW_STANDARD : VLW_STATION_LIST;
 
		if (player == _local_player) {
 
			w = AllocateWindowDescFront(&_player_roadveh_desc, (station << 16) | (VEH_Road << 11) | VLW_flag | player);
 
		} else  {
 
			w = AllocateWindowDescFront(&_other_player_roadveh_desc, (station << 16) | (VEH_Road << 11) | VLW_flag | player);
 
		}
 
	}
 

	
 
	if (w != NULL) {
 
		vehiclelist_d *vl = &WP(w, vehiclelist_d);
 
		vl->flags = VL_REBUILD | (_sorting.roadveh.order << (VL_DESC - 1));
ship_gui.c
Show inline comments
 
@@ -907,25 +907,25 @@ void DrawSmallOrderListShip(const Vehicl
 
			if (!IsBuoy(GetStation(order->dest.station))){
 
				SetDParam(0, order->dest.station);
 
				DrawString(x, y, STR_A036, 0);
 

	
 
				y += 6;
 
				if (++i == 4) break;
 
			}
 
		}
 
	}
 
}
 

	
 

	
 
const Widget _player_ships_widgets[] = {
 
static const Widget _player_ships_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,             STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_9805_SHIPS,       STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                  STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,          STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                  STR_SORT_CRITERIA_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,             STR_SORT_CRITERIA_TIP},
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,                  STR_NULL},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,                STR_9823_SHIPS_CLICK_ON_SHIP_FOR},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,                  STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   124,   170,   181, STR_9804_NEW_SHIPS,   STR_9824_BUILD_NEW_SHIPS_REQUIRES},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   125,   247,   170,   181, STR_REPLACE_VEHICLES, STR_REPLACE_HELP},
 
{      WWT_PANEL,    RESIZE_RTB,    14,   248,   247,   170,   181, 0x0,                  STR_NULL},
 
@@ -961,25 +961,25 @@ static const WindowDesc _other_player_sh
 
	WC_SHIPS_LIST,0,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 
	_other_player_ships_widgets,
 
	PlayerVehWndProc
 
};
 

	
 

	
 
static void ShowPlayerShipsLocal(PlayerID player, StationID station, OrderID order, bool show_shared)
 
{
 
	Window *w;
 

	
 
	if (show_shared) {
 
		w = AllocateWindowDescFront(&_player_ships_desc, (order << 16) | (VEH_Ship << 11) | VLW_SHARED_ORDERS);
 
		w = AllocateWindowDescFront(&_player_ships_desc, (order << 16) | (VEH_Ship << 11) | VLW_SHARED_ORDERS | player);
 
	} else {
 
		uint16 VLW_flag = (station == INVALID_STATION) ? VLW_STANDARD : VLW_STATION_LIST;
 
		if (player == _local_player) {
 
			w = AllocateWindowDescFront(&_player_ships_desc, (station << 16) | (VEH_Ship << 11) | VLW_flag | player);
 
		} else  {
 
			w = AllocateWindowDescFront(&_other_player_ships_desc, (station << 16) | (VEH_Ship << 11) | VLW_flag | player);
 
		}
 
	}
 

	
 
	if (w != NULL) {
 
		vehiclelist_d *vl = &WP(w, vehiclelist_d);
 
		vl->flags = VL_REBUILD | (_sorting.ship.order << (VL_DESC - 1));
train_gui.c
Show inline comments
 
@@ -1363,25 +1363,25 @@ static void ShowTrainDetailsWindow(const
 

	
 
	w->window_number = veh;
 
	w->caption_color = v->owner;
 
	w->vscroll.cap = 6;
 
	w->widget[4].unkA = (w->vscroll.cap << 8) + 1;
 

	
 
	w->resize.step_height = 14;
 
	w->resize.height = w->height - 14 * 2; /* Minimum of 4 wagons in the display */
 

	
 
	WP(w,traindetails_d).tab = 0;
 
}
 

	
 
const Widget _player_trains_widgets[] = {
 
static const Widget _player_trains_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   312,     0,    13, STR_881B_TRAINS,       STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   313,   324,     0,    13, 0x0,                   STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,           STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                   STR_SORT_CRITERIA_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,              STR_SORT_CRITERIA_TIP},
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   324,    14,    25, 0x0,                   STR_NULL},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   312,    26,   207, 0x701,                 STR_883D_TRAINS_CLICK_ON_TRAIN_FOR},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   313,   324,    26,   207, 0x0,                   STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   156,   208,   219, STR_8815_NEW_VEHICLES, STR_883E_BUILD_NEW_TRAINS_REQUIRES},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   157,   312,   208,   219, STR_REPLACE_VEHICLES,  STR_REPLACE_HELP},
 
{      WWT_PANEL,    RESIZE_RTB,    14,   313,   312,   208,   219, 0x0,                   STR_NULL},
 
@@ -1416,25 +1416,25 @@ static const WindowDesc _other_player_tr
 
	-1, -1, 325, 220,
 
	WC_TRAINS_LIST,0,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 
	_other_player_trains_widgets,
 
	PlayerVehWndProc
 
};
 

	
 
static void ShowPlayerTrainsLocal(PlayerID player, StationID station, OrderID order, bool show_shared)
 
{
 
	Window *w;
 

	
 
	if (show_shared) {
 
		w = AllocateWindowDescFront(&_player_trains_desc, (order << 16) | (VEH_Train << 11) | VLW_SHARED_ORDERS);
 
		w = AllocateWindowDescFront(&_player_trains_desc, (order << 16) | (VEH_Train << 11) | VLW_SHARED_ORDERS | player);
 
	} else {
 
		uint16 VLW_flag = (station == INVALID_STATION) ? VLW_STANDARD : VLW_STATION_LIST;
 
		if (player == _local_player) {
 
			w = AllocateWindowDescFront(&_player_trains_desc, (station << 16) | (VEH_Train << 11) | VLW_flag | player);
 
		} else  {
 
			w = AllocateWindowDescFront(&_other_player_trains_desc, (station << 16) | (VEH_Train << 11) | VLW_flag | player);
 
		}
 
	}
 

	
 
	if (w != NULL) {
 
		vehiclelist_d *vl = &WP(w, vehiclelist_d);
 
		vl->flags = VL_REBUILD | (_sorting.train.order << (VL_DESC - 1));
vehicle_gui.c
Show inline comments
 
@@ -1193,29 +1193,24 @@ void ChangeVehicleViewWindow(const Vehic
 
			w->window_number = to_v->index;
 
			SetWindowDirty(w);
 
		}
 

	
 
		w = FindWindowById(WC_VEHICLE_DETAILS, from_v->index);
 
		if (w != NULL) {
 
			w->window_number = to_v->index;
 
			SetWindowDirty(w);
 
		}
 
	}
 
}
 

	
 
extern const Widget _player_ships_widgets[];
 
extern const Widget _player_aircraft_widgets[];
 
extern const Widget _player_roadveh_widgets[];
 
extern const Widget _player_trains_widgets[];
 

	
 
/*
 
 * bitmask for w->window_number
 
 * 0-7 PlayerID (owner)
 
 * 8-10 window type (use flags in vehicle_gui.h)
 
 * 11-15 vehicle type (using VEH_, but can be compressed to fewer bytes if needed)
 
 * 16-31 StationID or OrderID depending on window type (bit 8-10)
 
 **/
 

	
 
void PlayerVehWndProc(Window *w, WindowEvent *e)
 
{
 
	vehiclelist_d *vl = &WP(w, vehiclelist_d);
 
	const byte vehicle_type = GB(w->window_number, 11, 5);
 
@@ -1238,31 +1233,25 @@ void PlayerVehWndProc(Window *w, WindowE
 
			SetVScrollCount(w, vl->list_length);
 

	
 
			// disable 'Sort By' tooltip on Unsorted sorting criteria
 
			if (vl->sort_type == SORT_BY_UNSORTED) SETBIT(w->disabled_state, 3);
 

	
 
			/* draw the widgets */
 
			switch (window_type) {
 
				case VLW_SHARED_ORDERS:
 
					/* Shared Orders */
 
					if (vl->list_length == 0) {
 
						/* The list is empty, so the last vehicle is sold or crashed */
 
						/* Delete the window because the order is now not in use anymore */
 
						switch (vehicle_type) {
 
							case VEH_Train:    DeleteWindowById(WC_TRAINS_LIST,   w->window_number); break;
 
							case VEH_Road:     DeleteWindowById(WC_ROADVEH_LIST,  w->window_number); break;
 
							case VEH_Ship:     DeleteWindowById(WC_SHIPS_LIST,    w->window_number); break;
 
							case VEH_Aircraft: DeleteWindowById(WC_AIRCRAFT_LIST, w->window_number); break;
 
							default: NOT_REACHED(); break;
 
						}
 
						DeleteWindow(w);
 
						return;
 
					}
 
					SetDParam(0, w->vscroll.count);
 
					w->widget[1].unkA  = STR_VEH_WITH_SHARED_ORDERS_LIST;
 
					w->widget[10].unkA = STR_EMPTY;
 
					SETBIT(w->disabled_state, 10);
 

	
 
					if (vehicle_type == VEH_Aircraft) {
 
						w->widget[9].unkA = STR_SEND_TO_HANGARS;
 
						w->widget[9].tooltips = STR_SEND_TO_HANGARS_TIP;
 
					} else {
 
						w->widget[9].unkA = STR_SEND_TO_DEPOTS;
 
@@ -1394,67 +1383,55 @@ void PlayerVehWndProc(Window *w, WindowE
 

	
 
					v = vl->sort_list[id_v];
 

	
 
					switch (vehicle_type) {
 
						case VEH_Train: ShowTrainViewWindow(v); break;
 
						case VEH_Road: ShowRoadVehViewWindow(v); break;
 
						case VEH_Ship: ShowShipViewWindow(v); break;
 
						case VEH_Aircraft: ShowAircraftViewWindow(v); break;
 
						default: NOT_REACHED(); break;
 
					}
 
				} break;
 

	
 
				case 9: { /* Build new Vehicle */
 
					const uint16 window_type = w->window_number & VLW_FLAGS;
 
				case 9: /* Left button */
 
					if (GB(w->window_number, 0, 8) /* OwnerID */ != _local_player) break;
 

	
 
					if (window_type == VLW_SHARED_ORDERS) {
 
					switch (w->window_number & VLW_FLAGS) {
 
						case VLW_SHARED_ORDERS: {
 
							/* Send to depot */
 
						const Vehicle *v;
 
						assert(vl->list_length != 0);
 
						v = vl->sort_list[0];
 
						DoCommandP(v->tile, v->index, _ctrl_pressed ? 3 : 2, NULL, CMD_SEND_TO_DEPOT(vehicle_type));
 
						break;
 
					}
 

	
 
						case VLW_STANDARD:
 
						case VLW_STATION_LIST:
 
							/* Build new Vehicle */
 
					switch (vehicle_type) {
 
						case VEH_Train:
 
							assert(IsWindowOfPrototype(w, _player_trains_widgets));
 
							ShowBuildTrainWindow(0);
 
							break;
 
						case VEH_Road:
 
							assert(IsWindowOfPrototype(w, _player_roadveh_widgets));
 
							ShowBuildRoadVehWindow(0);
 
							break;
 
						case VEH_Ship:
 
							assert(IsWindowOfPrototype(w, _player_ships_widgets));
 
							ShowBuildShipWindow(0);
 
							break;
 
						case VEH_Aircraft:
 
							assert(IsWindowOfPrototype(w, _player_aircraft_widgets));
 
							ShowBuildAircraftWindow(0);
 
								case VEH_Train:	   ShowBuildTrainWindow(0);    break;
 
								case VEH_Road:     ShowBuildRoadVehWindow(0);  break;
 
								case VEH_Ship:     ShowBuildShipWindow(0);     break;
 
								case VEH_Aircraft: ShowBuildAircraftWindow(0); break;
 
								default: NOT_REACHED(); break;
 
							}
 
							break;
 
						default: NOT_REACHED(); break;
 
					}
 
					break;
 
				}
 

	
 
				case 10: {
 
					if (vehicle_type == VEH_Train    && !IsWindowOfPrototype(w, _player_trains_widgets))   break;
 
					if (vehicle_type == VEH_Road     && !IsWindowOfPrototype(w, _player_roadveh_widgets))  break;
 
					if (vehicle_type == VEH_Ship     && !IsWindowOfPrototype(w, _player_ships_widgets))    break;
 
					if (vehicle_type == VEH_Aircraft && !IsWindowOfPrototype(w, _player_aircraft_widgets)) break;
 

	
 
				case 10: /* Right button */
 
					ShowReplaceVehicleWindow(vehicle_type);
 
					break;
 
				}
 
			}
 
		}	break;
 

	
 
		case WE_DROPDOWN_SELECT: /* we have selected a dropdown item in the list */
 
			if (vl->sort_type != e->dropdown.index) {
 
				// value has changed -> resort
 
				vl->flags |= VL_RESORT;
 
				vl->sort_type = e->dropdown.index;
 
				switch (vehicle_type) {
 
					case VEH_Train:    _sorting.train.criteria    = vl->sort_type; break;
 
					case VEH_Road:     _sorting.roadveh.criteria  = vl->sort_type; break;
 
					case VEH_Ship:     _sorting.ship.criteria     = vl->sort_type; break;
 
					case VEH_Aircraft: _sorting.aircraft.criteria = vl->sort_type; break;
0 comments (0 inline, 0 general)