src/vehicle_gui.h
author truebrain
Fri, 18 Jul 2008 01:00:03 +0000
branchnoai
changeset 11166 17960948c3af
parent 11044 097ea3e7ec56
permissions -rw-r--r--
(svn r13724) [NoAI] -Fix r13723: in this modern world with all those checks and warnings GCC can give when ever I not ask him to, it fails to see the simplest of all, 'if (cargo_id == cargo_id)'.. makes you wonder, doesn't it? Well, such is life, wondering wondering wandering .. Status Quo, Yeah! Oh yeah, what was I doing ... ah, yes: don't compare one variable with itself, it is always true.. Obiwan by Yexo. (Yexo)
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2159
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2159
diff changeset
     2
10455
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
     3
/** @file vehicle_gui.h Functions related to the vehicle's GUIs. */
9574
698395509d12 (svn r9575) [NoAI] -Sync with trunk r9504:9574
glx
parents: 9566
diff changeset
     4
164
0cbdf3c9bde1 (svn r165) -Feature: Option to sort vehicles in vehicle-list window by different criteria. Total independent sort for all types and players. Periodic resort of list every 10 TTD days. Thank you for your graphical inspiration follow and buxo (since none of you provided any code).
darkvater
parents:
diff changeset
     5
#ifndef VEHICLE_GUI_H
0cbdf3c9bde1 (svn r165) -Feature: Option to sort vehicles in vehicle-list window by different criteria. Total independent sort for all types and players. Periodic resort of list every 10 TTD days. Thank you for your graphical inspiration follow and buxo (since none of you provided any code).
darkvater
parents:
diff changeset
     6
#define VEHICLE_GUI_H
0cbdf3c9bde1 (svn r165) -Feature: Option to sort vehicles in vehicle-list window by different criteria. Total independent sort for all types and players. Periodic resort of list every 10 TTD days. Thank you for your graphical inspiration follow and buxo (since none of you provided any code).
darkvater
parents:
diff changeset
     7
10645
8cbdb511a674 (svn r13189) [NoAI] -Sync: with trunk r13055:13185.
glx
parents: 10513
diff changeset
     8
#include "sortlist_type.h"
8cbdb511a674 (svn r13189) [NoAI] -Sync: with trunk r13055:13185.
glx
parents: 10513
diff changeset
     9
#include "window_type.h"
9723
eee46cb39750 (svn r11796) [NoAI] -Sync: with trunk r11502:11795.
rubidium
parents: 9701
diff changeset
    10
#include "vehicle_type.h"
9837
c9ec4f82e0d0 (svn r12503) [NoAI] -Sync: with trunk r12461:12501.
rubidium
parents: 9724
diff changeset
    11
#include "order_type.h"
c9ec4f82e0d0 (svn r12503) [NoAI] -Sync: with trunk r12461:12501.
rubidium
parents: 9724
diff changeset
    12
#include "station_type.h"
c9ec4f82e0d0 (svn r12503) [NoAI] -Sync: with trunk r12461:12501.
rubidium
parents: 9724
diff changeset
    13
#include "engine_type.h"
1752
cdbfb2f23e72 (svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
matthijs
parents: 1246
diff changeset
    14
2436
177cb6a8339f (svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents: 2186
diff changeset
    15
void DrawVehicleProfitButton(const Vehicle *v, int x, int y);
4712
273ec3b182bf (svn r6624) -Feature: added ability to add refit commands to vehicle orders (can only be done in goto depot orders)
bjarni
parents: 4681
diff changeset
    16
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order);
588
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    17
9724
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    18
/** Constants of vehicle view widget indices */
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    19
enum VehicleViewWindowWidgets {
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    20
	VVW_WIDGET_CLOSEBOX = 0,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    21
	VVW_WIDGET_CAPTION,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    22
	VVW_WIDGET_STICKY,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    23
	VVW_WIDGET_PANEL,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    24
	VVW_WIDGET_VIEWPORT,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    25
	VVW_WIDGET_START_STOP_VEH,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    26
	VVW_WIDGET_CENTER_MAIN_VIEH,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    27
	VVW_WIDGET_GOTO_DEPOT,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    28
	VVW_WIDGET_REFIT_VEH,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    29
	VVW_WIDGET_SHOW_ORDERS,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    30
	VVW_WIDGET_SHOW_DETAILS,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    31
	VVW_WIDGET_CLONE_VEH,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    32
	VVW_WIDGET_EMPTY_BOTTOM_RIGHT,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    33
	VVW_WIDGET_RESIZE,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    34
	VVW_WIDGET_TURN_AROUND,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    35
	VVW_WIDGET_FORCE_PROCEED,
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    36
};
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    37
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    38
/** Start of functions regarding vehicle list windows */
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    39
enum {
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    40
	PLY_WND_PRC__OFFSET_TOP_WIDGET = 26,
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    41
	PLY_WND_PRC__SIZE_OF_ROW_TINY  = 13,
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    42
	PLY_WND_PRC__SIZE_OF_ROW_SMALL = 26,
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    43
	PLY_WND_PRC__SIZE_OF_ROW_BIG   = 36,
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    44
	PLY_WND_PRC__SIZE_OF_ROW_BIG2  = 39,
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    45
};
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    46
9724
b39bc69bb2f2 (svn r12051) [NoAI] -Sync: with trunk (r11795:12050).
rubidium
parents: 9723
diff changeset
    47
/** Vehicle List Window type flags */
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    48
enum {
4546
9345e0569655 (svn r6378) -Codechange: Rename VLW_FLAGS to VLW_MASK as it is a mask
Darkvater
parents: 4545
diff changeset
    49
	VLW_STANDARD      = 0 << 8,
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    50
	VLW_SHARED_ORDERS = 1 << 8,
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    51
	VLW_STATION_LIST  = 2 << 8,
4681
7d7a89b32dd0 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
bjarni
parents: 4668
diff changeset
    52
	VLW_DEPOT_LIST    = 3 << 8,
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    53
	VLW_GROUP_LIST    = 4 << 8,
4546
9345e0569655 (svn r6378) -Codechange: Rename VLW_FLAGS to VLW_MASK as it is a mask
Darkvater
parents: 4545
diff changeset
    54
	VLW_MASK          = 0x700,
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    55
};
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    56
4506
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    57
static inline bool ValidVLWFlags(uint16 flags)
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    58
{
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    59
	return (flags == VLW_STANDARD || flags == VLW_SHARED_ORDERS || flags == VLW_STATION_LIST || flags == VLW_DEPOT_LIST || flags == VLW_GROUP_LIST);
4506
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    60
}
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    61
9566
9936b201d53f (svn r9505) [NoAI] -Sync with trunk r9468:9504
truelight
parents: 6585
diff changeset
    62
int DrawVehiclePurchaseInfo(int x, int y, uint w, EngineID engine_number);
842
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    63
9723
eee46cb39750 (svn r11796) [NoAI] -Sync: with trunk r11502:11795.
rubidium
parents: 9701
diff changeset
    64
void DrawTrainImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip);
eee46cb39750 (svn r11796) [NoAI] -Sync: with trunk r11502:11795.
rubidium
parents: 9701
diff changeset
    65
void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection, int count);
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    66
void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection);
4542
24f60077489a (svn r6372) -Codechange: static, unneeded decleration in headers, superfluous header includes
Darkvater
parents: 4506
diff changeset
    67
void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection);
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    68
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    69
void ShowBuildVehicleWindow(TileIndex tile, VehicleType type);
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    70
4932
3567a3ec9d80 (svn r6912) - Feature: Show a list of cargo types that a vehicle is refittable to in the purchase information window. (mart3p)
peter1138
parents: 4930
diff changeset
    71
uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
3567a3ec9d80 (svn r6912) - Feature: Show a list of cargo types that a vehicle is refittable to in the purchase information window. (mart3p)
peter1138
parents: 4930
diff changeset
    72
uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine);
2552
fb174febb0b1 (svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
bjarni
parents: 2548
diff changeset
    73
5996
d4b66530ded4 (svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni
parents: 5726
diff changeset
    74
void ShowVehicleListWindow(const Vehicle *v);
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    75
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type);
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    76
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station);
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    77
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, TileIndex depot_tile);
4668
8b6035c51188 (svn r6562) -Codechange: merged the vehicle list window widget arrays
bjarni
parents: 4642
diff changeset
    78
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    79
void DrawSmallOrderList(const Vehicle *v, int x, int y);
4734
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    80
9723
eee46cb39750 (svn r11796) [NoAI] -Sync: with trunk r11502:11795.
rubidium
parents: 9701
diff changeset
    81
void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip);
4734
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    82
10455
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
    83
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
    84
/* ChangeVehicleViewWindow() moves all windows for one vehicle to another vehicle.
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
    85
 * For ease of use it can be called with both Vehicle pointers and VehicleIDs. */
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
    86
void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index);
22c441f5adf9 (svn r12997) [NoAI] -Sync: with trunk r12895:12996.
rubidium
parents: 10355
diff changeset
    87
9624
b71483f2330f (svn r9915) [NoAI] -Sync with trunk -r9815:9914
glx
parents: 9574
diff changeset
    88
static inline uint GetVehicleListHeight(VehicleType type)
4796
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    89
{
6585
7da94b26498a (svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents: 6573
diff changeset
    90
	return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24;
4796
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    91
}
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    92
10355
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    93
/** Get WindowClass for vehicle list of given vehicle type
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    94
 * @param vt vehicle type to check
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    95
 * @return corresponding window class
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    96
 * @note works only for player buildable vehicle types
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    97
 */
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    98
static inline WindowClass GetWindowClassForVehicleType(VehicleType vt)
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
    99
{
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   100
	switch (vt) {
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   101
		default: NOT_REACHED();
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   102
		case VEH_TRAIN:    return WC_TRAINS_LIST;
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   103
		case VEH_ROAD:     return WC_ROADVEH_LIST;
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   104
		case VEH_SHIP:     return WC_SHIPS_LIST;
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   105
		case VEH_AIRCRAFT: return WC_AIRCRAFT_LIST;
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   106
	}
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   107
}
ee4b5f7a5bf2 (svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
rubidium
parents: 9837
diff changeset
   108
9701
d1ac22c62f64 (svn r11036) [NoAI] -Sync: with trunk r10774:11035.
rubidium
parents: 9627
diff changeset
   109
/* Unified window procedure */
d1ac22c62f64 (svn r11036) [NoAI] -Sync: with trunk r10774:11035.
rubidium
parents: 9627
diff changeset
   110
void ShowVehicleViewWindow(const Vehicle *v);
d1ac22c62f64 (svn r11036) [NoAI] -Sync: with trunk r10774:11035.
rubidium
parents: 9627
diff changeset
   111
10513
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   112
Vehicle *CheckClickOnVehicle(const struct ViewPort *vp, int x, int y);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   113
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   114
typedef GUIList<const Vehicle*> GUIVehicleList;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   115
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   116
struct VehicleListBase {
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   117
	GUIVehicleList vehicles;  ///< The list of vehicles
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   118
	Listing *sorting;         ///< Pointer to the vehicle type related sorting.
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   119
	VehicleType vehicle_type; ///< The vehicle type that is sorted
11044
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   120
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   121
	static const StringID vehicle_sorter_names[];
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   122
	static GUIVehicleList::SortFunction *const vehicle_sorter_funcs[];
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   123
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   124
	VehicleListBase()
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   125
	{
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   126
		this->vehicles.SetSortFuncs(this->vehicle_sorter_funcs);
097ea3e7ec56 (svn r13600) [NoAI] -Sync: with trunk r13508:13599.
rubidium
parents: 10645
diff changeset
   127
	}
10513
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   128
};
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   129
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   130
struct Sorting {
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   131
	Listing aircraft;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   132
	Listing roadveh;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   133
	Listing ship;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   134
	Listing train;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   135
};
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   136
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   137
extern Sorting _sorting;
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   138
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   139
/* sorter stuff */
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   140
void SortVehicleList(VehicleListBase *vl);
33cb70ff2f5d (svn r13056) [NoAI] -Sync: with trunk r12996:13055.
rubidium
parents: 10455
diff changeset
   141
void BuildVehicleList(VehicleListBase *vl, PlayerID owner, uint16 index, uint16 window_type);
9837
c9ec4f82e0d0 (svn r12503) [NoAI] -Sync: with trunk r12461:12501.
rubidium
parents: 9724
diff changeset
   142
164
0cbdf3c9bde1 (svn r165) -Feature: Option to sort vehicles in vehicle-list window by different criteria. Total independent sort for all types and players. Periodic resort of list every 10 TTD days. Thank you for your graphical inspiration follow and buxo (since none of you provided any code).
darkvater
parents:
diff changeset
   143
#endif /* VEHICLE_GUI_H */