author | celestar |
Wed, 13 Jun 2007 11:45:14 +0000 | |
branch | gamebalance |
changeset 9911 | 0b8b245a2391 |
parent 9908 | 0fa543611bbe |
child 9912 | 1ac8aac92385 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9908
0fa543611bbe
(svn r10112) [gamebalance] -Sync: r9520:9620 from trunk
celestar
parents:
9907
diff
changeset
|
3 |
/** @file vehicle_gui.h */ |
0fa543611bbe
(svn r10112) [gamebalance] -Sync: r9520:9620 from trunk
celestar
parents:
9907
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 |
|
4442
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
8 |
#include "window.h" |
4734
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
9 |
#include "vehicle.h" |
1752
cdbfb2f23e72
(svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
matthijs
parents:
1246
diff
changeset
|
10 |
|
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
|
11 |
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
|
12 |
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order); |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
13 |
void InitializeVehiclesGuiList(); |
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
|
14 |
|
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
|
15 |
/* sorter stuff */ |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
16 |
void RebuildVehicleLists(); |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
17 |
void ResortVehicleLists(); |
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
18 |
void SortVehicleList(vehiclelist_d *vl); |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
19 |
void BuildVehicleList(vehiclelist_d *vl, PlayerID owner, uint16 index, uint16 window_type); |
588 | 20 |
|
168
79f9ed5b23e6
(svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents:
164
diff
changeset
|
21 |
#define PERIODIC_RESORT_DAYS 10 |
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 |
|
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
23 |
extern const StringID _vehicle_sort_listing[]; |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
24 |
|
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
25 |
/* Start of functions regarding vehicle list windows */ |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
26 |
enum { |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
27 |
PLY_WND_PRC__OFFSET_TOP_WIDGET = 26, |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
28 |
PLY_WND_PRC__SIZE_OF_ROW_TINY = 13, |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
29 |
PLY_WND_PRC__SIZE_OF_ROW_SMALL = 26, |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
30 |
PLY_WND_PRC__SIZE_OF_ROW_BIG = 36, |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
31 |
PLY_WND_PRC__SIZE_OF_ROW_BIG2 = 39, |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
32 |
}; |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
33 |
|
4449
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
34 |
/* Vehicle List Window type flags */ |
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
35 |
enum { |
4546
9345e0569655
(svn r6378) -Codechange: Rename VLW_FLAGS to VLW_MASK as it is a mask
Darkvater
parents:
4545
diff
changeset
|
36 |
VLW_STANDARD = 0 << 8, |
4449
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
37 |
VLW_SHARED_ORDERS = 1 << 8, |
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
38 |
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
|
39 |
VLW_DEPOT_LIST = 3 << 8, |
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
40 |
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
|
41 |
VLW_MASK = 0x700, |
4449
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
42 |
}; |
7b1d5a6d15be
(svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents:
4442
diff
changeset
|
43 |
|
4506
0d8fcc0a4e49
(svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents:
4485
diff
changeset
|
44 |
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
|
45 |
{ |
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
46 |
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
|
47 |
} |
0d8fcc0a4e49
(svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents:
4485
diff
changeset
|
48 |
|
4442
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
49 |
void PlayerVehWndProc(Window *w, WindowEvent *e); |
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
50 |
|
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9895
diff
changeset
|
51 |
int DrawVehiclePurchaseInfo(int x, int y, uint w, EngineID engine_number); |
842 | 52 |
|
4442
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
53 |
void DrawTrainImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection); |
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
54 |
void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection); |
8d8d0c2df7cb
(svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents:
4434
diff
changeset
|
55 |
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
|
56 |
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
|
57 |
|
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
58 |
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
|
59 |
|
2552
fb174febb0b1
(svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
bjarni
parents:
2548
diff
changeset
|
60 |
void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v); |
fb174febb0b1
(svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
bjarni
parents:
2548
diff
changeset
|
61 |
|
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
|
62 |
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
|
63 |
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
|
64 |
|
5996
d4b66530ded4
(svn r8293) -Codechange: overloaded ShowVehicleListWindow() so it can open all types of vehicle lists (depending on arguments)
bjarni
parents:
5726
diff
changeset
|
65 |
void ShowVehicleListWindow(const Vehicle *v); |
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
66 |
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type); |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
67 |
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station); |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
68 |
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
|
69 |
|
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
70 |
void ShowReplaceVehicleWindow(VehicleType vehicletype); |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
71 |
void DrawSmallOrderList(const Vehicle *v, int x, int y); |
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
72 |
void ShowReplaceGroupVehicleWindow(GroupID group, VehicleType veh); |
4734
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
73 |
|
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
74 |
static inline void DrawVehicleImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection) |
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
75 |
{ |
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
76 |
switch (v->type) { |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
77 |
case VEH_TRAIN: DrawTrainImage(v, x, y, count, skip, selection); break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
78 |
case VEH_ROAD: DrawRoadVehImage(v, x, y, selection); break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
79 |
case VEH_SHIP: DrawShipImage(v, x, y, selection); break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
80 |
case VEH_AIRCRAFT: DrawAircraftImage(v, x, y, selection); break; |
4734
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
81 |
default: NOT_REACHED(); |
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
82 |
} |
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
83 |
} |
20770a208a04
(svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents:
4712
diff
changeset
|
84 |
|
9911
0b8b245a2391
(svn r10135) [gamebalance] -Sync: r9700:9900 from trunk
celestar
parents:
9908
diff
changeset
|
85 |
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
|
86 |
{ |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6223
diff
changeset
|
87 |
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
|
88 |
} |
7e40ab01097a
(svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents:
4734
diff
changeset
|
89 |
|
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
|
90 |
#endif /* VEHICLE_GUI_H */ |