vehicle_gui.h
author glx
Mon, 24 Sep 2007 03:08:47 +0000
branch0.5
changeset 5545 f42dc59a45f5
parent 4932 3567a3ec9d80
permissions -rw-r--r--
(svn r11153) [0.5] -Fix [FS#1251]: incorrect usage of {G} tag in slovak translation
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
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
     3
#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
     4
#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
     5
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
     6
#include "window.h"
4734
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
     7
#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
     8
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
     9
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
    10
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order);
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
    11
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
    12
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
    13
/* sorter stuff */
588
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    14
void RebuildVehicleLists(void);
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    15
void ResortVehicleLists(void);
1b60458bdc29 (svn r1009) -Feature: per-station vehicle lists
tron
parents: 505
diff changeset
    16
168
79f9ed5b23e6 (svn r169) -Fix: move around sort-widgets a bit so it looks more natural
darkvater
parents: 164
diff changeset
    17
#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
    18
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    19
/* Vehicle List Window type flags */
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    20
enum {
4546
9345e0569655 (svn r6378) -Codechange: Rename VLW_FLAGS to VLW_MASK as it is a mask
Darkvater
parents: 4545
diff changeset
    21
	VLW_STANDARD      = 0 << 8,
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    22
	VLW_SHARED_ORDERS = 1 << 8,
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    23
	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
    24
	VLW_DEPOT_LIST    = 3 << 8,
4546
9345e0569655 (svn r6378) -Codechange: Rename VLW_FLAGS to VLW_MASK as it is a mask
Darkvater
parents: 4545
diff changeset
    25
	VLW_MASK          = 0x700,
4449
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    26
};
7b1d5a6d15be (svn r6227) -Codechange: added window type flags to use with PlayerVehWndProc
bjarni
parents: 4442
diff changeset
    27
4506
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    28
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
    29
{
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
    30
	return (flags == VLW_STANDARD || flags == VLW_SHARED_ORDERS || flags == VLW_STATION_LIST || flags == VLW_DEPOT_LIST);
4506
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    31
}
0d8fcc0a4e49 (svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents: 4485
diff changeset
    32
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    33
void PlayerVehWndProc(Window *w, WindowEvent *e);
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    34
4930
fd91a88d6ef6 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p)
peter1138
parents: 4928
diff changeset
    35
void DrawTrainEnginePurchaseInfo(int x, int y, uint w, EngineID engine_number);
fd91a88d6ef6 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p)
peter1138
parents: 4928
diff changeset
    36
void DrawTrainWagonPurchaseInfo(int x, int y, uint w, EngineID engine_number);
fd91a88d6ef6 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p)
peter1138
parents: 4928
diff changeset
    37
void DrawRoadVehPurchaseInfo(int x, int y, uint w, EngineID engine_number);
fd91a88d6ef6 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p)
peter1138
parents: 4928
diff changeset
    38
void DrawAircraftPurchaseInfo(int x, int y, uint w, EngineID engine_number);
fd91a88d6ef6 (svn r6910) - Codechange: Supply width of area when drawing purchase info instead of using hardcoded values. (mart3p)
peter1138
parents: 4928
diff changeset
    39
void DrawShipPurchaseInfo(int x, int y, uint w, EngineID engine_number);
842
ebfd36603ab9 (svn r1323) Adding autoreplace feature
bjarni
parents: 588
diff changeset
    40
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    41
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
    42
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
    43
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
    44
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
    45
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    46
void ShowBuildTrainWindow(TileIndex tile);
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    47
void ShowBuildRoadVehWindow(TileIndex tile);
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    48
void ShowBuildShipWindow(TileIndex tile);
4800
009e3c6cea8a (svn r6722) -Codechange: [aircraft build window] moved aircraft build window to a file of it's own
bjarni
parents: 4796
diff changeset
    49
void ShowBuildVehicleWindow(TileIndex tile, byte type);
4442
8d8d0c2df7cb (svn r6215) -Codechange: [vehicle list windows] unified Player(vehicle)WndProc into PlayerVehWndProc
bjarni
parents: 4434
diff changeset
    50
2552
fb174febb0b1 (svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
bjarni
parents: 2548
diff changeset
    51
void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v);
fb174febb0b1 (svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
bjarni
parents: 2548
diff changeset
    52
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
    53
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
    54
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
    55
4668
8b6035c51188 (svn r6562) -Codechange: merged the vehicle list window widget arrays
bjarni
parents: 4642
diff changeset
    56
void ShowVehicleListWindow(PlayerID player, StationID station, byte vehicle_type);
8b6035c51188 (svn r6562) -Codechange: merged the vehicle list window widget arrays
bjarni
parents: 4642
diff changeset
    57
void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type);
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
    58
void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile);
4668
8b6035c51188 (svn r6562) -Codechange: merged the vehicle list window widget arrays
bjarni
parents: 4642
diff changeset
    59
4734
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    60
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    61
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
    62
{
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    63
	switch (v->type) {
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    64
		case VEH_Train:    DrawTrainImage(v, x, y, count, skip, selection); break;
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    65
		case VEH_Road:     DrawRoadVehImage(v, x, y, selection);            break;
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    66
		case VEH_Ship:     DrawShipImage(v, x, y, selection);               break;
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    67
		case VEH_Aircraft: DrawAircraftImage(v, x, y, selection);           break;
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    68
		default: NOT_REACHED();
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    69
	}
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    70
}
20770a208a04 (svn r6646) -Codechange: [vehicle list window] Cleaned up the drawing code
bjarni
parents: 4712
diff changeset
    71
4796
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    72
static inline byte GetVehicleListHeight(byte type)
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    73
{
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    74
	return (type == VEH_Train || type == VEH_Road) ? 14 : 24;
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    75
}
7e40ab01097a (svn r6718) -Codechange: added function to get the line height for a vehicle type
bjarni
parents: 4734
diff changeset
    76
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
    77
#endif /* VEHICLE_GUI_H */