vehicle_gui.h
author matthijs
Wed, 04 May 2005 22:13:07 +0000
changeset 1763 9e6f367ae02e
parent 1752 cdbfb2f23e72
child 1802 448f187042d3
permissions -rw-r--r--
(svn r2267) - Codechange: Reverted the typedeffing of VehicleType (r2256), since that interfered with the saveload code.
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
     1
#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
     2
#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
     3
1752
cdbfb2f23e72 (svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
matthijs
parents: 1246
diff changeset
     4
#include "vehicle.h"
cdbfb2f23e72 (svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
matthijs
parents: 1246
diff changeset
     5
588
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
     6
struct vehiclelist_d;
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
     7
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
     8
void DrawVehicleProfitButton(Vehicle *v, int x, int y);
1093
e8d26c7dc42f (svn r1594) Convert all undefined parameter lists to (void) and add the appropriate warning flags in the Makefile
tron
parents: 842
diff changeset
     9
void InitializeVehiclesGuiList(void);
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
    10
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
    11
/* sorter stuff */
588
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    12
void RebuildVehicleLists(void);
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    13
void ResortVehicleLists(void);
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    14
1763
9e6f367ae02e (svn r2267) - Codechange: Reverted the typedeffing of VehicleType (r2256), since that interfered with the saveload code.
matthijs
parents: 1752
diff changeset
    15
void BuildVehicleList(struct vehiclelist_d *vl, int type, int owner, int station);
588
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    16
void SortVehicleList(struct vehiclelist_d *vl);
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    17
168
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    18
int CDECL GeneralOwnerSorter(const void *a, const void *b);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    19
VARDEF uint32	_internal_name_sorter_id;	// internal StringID for default vehicle-names
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    20
VARDEF uint32	_last_vehicle_idx;				// cached index to hopefully speed up name-sorting
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    21
VARDEF bool		_internal_sort_order;			// descending/ascending
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
    22
168
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    23
#define PERIODIC_RESORT_DAYS 10
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    24
#define DEF_SORTER(yyyy) int CDECL yyyy(const void *a, const void *b)
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    25
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    26
DEF_SORTER(VehicleUnsortedSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    27
DEF_SORTER(VehicleNumberSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    28
DEF_SORTER(VehicleNameSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    29
DEF_SORTER(VehicleAgeSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    30
DEF_SORTER(VehicleProfitThisYearSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    31
DEF_SORTER(VehicleProfitLastYearSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    32
DEF_SORTER(VehicleCargoSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    33
DEF_SORTER(VehicleReliabilitySorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    34
DEF_SORTER(VehicleMaxSpeedSorter);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    35
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    36
typedef DEF_SORTER(VehicleSortListingTypeFunctions);
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    37
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    38
#define SORT_BY_UNSORTED 0
505
11582dcada49 (svn r813) Push two tables from vehicle_gui.h into vehicle_gui.c - they were in the binary 48 (!) times.
tron
parents: 168
diff changeset
    39
extern VehicleSortListingTypeFunctions * const _vehicle_sorter[];
11582dcada49 (svn r813) Push two tables from vehicle_gui.h into vehicle_gui.c - they were in the binary 48 (!) times.
tron
parents: 168
diff changeset
    40
extern const StringID _vehicle_sort_listing[];
842
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    41
extern const StringID _rail_types_list[];
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
    42
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
    43
enum VehicleSortTypes {
1246
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    44
	VEHTRAIN     = 0,
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    45
	VEHROAD      = 1,
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    46
	VEHSHIP      = 2,
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    47
	VEHAIRCRAFT  = 3
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
    48
};
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
    49
1246
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    50
typedef struct Listing {
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    51
	bool order;	// Ascending/descending?
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    52
	byte criteria;	// Sorting criteria
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    53
} Listing;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    54
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    55
typedef struct Sorting {
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    56
	Listing aircraft;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    57
	Listing roadveh;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    58
	Listing ship;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    59
	Listing train;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    60
} Sorting;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    61
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    62
VARDEF Sorting _sorting;
45f15251412b (svn r1750) - Feature: [ 1093261 ] Saving vehicle sorting criteria for each vehicle type (bociusz)
darkvater
parents: 1093
diff changeset
    63
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
    64
enum {
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
    65
  PLY_WND_PRC__OFFSET_TOP_WIDGET	= 26,
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
    66
	PLY_WND_PRC__SIZE_OF_ROW_SMALL	= 26,
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
    67
  PLY_WND_PRC__SIZE_OF_ROW_BIG		= 36,
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
    68
};
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
    69
842
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    70
void ShowReplaceVehicleWindow(byte vehicletype);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    71
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    72
void Set_DPARAM_Train_Engine_Build_Window(uint16 engine_number);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    73
void Set_DPARAM_Train_Car_Build_Window(Window *w, uint16 engine_number);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    74
void Set_DPARAM_Road_Veh_Build_Window(uint16 engine_number);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    75
void Set_DPARAM_Aircraft_Build_Window(uint16 engine_number);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    76
void Set_DPARAM_Ship_Build_Window(uint16 engine_number);
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    77
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    78
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
    79
#endif /* VEHICLE_GUI_H */