author | peter1138 |
Sun, 25 May 2008 09:40:44 +0000 | |
changeset 10693 | 2ce681c2f4cc |
parent 10543 | 0d72a03fa70c |
child 10697 | 9ec651be998d |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
10429
1b99254f9607
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
10272
diff
changeset
|
3 |
/** @file vehicle_func.h Functions related to vehicles. */ |
1024
9b06b01490a4
(svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents:
1020
diff
changeset
|
4 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
5 |
#ifndef VEHICLE_FUNC_H |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
6 |
#define VEHICLE_FUNC_H |
7631
e810ef25497e
(svn r10409) -Codechange: replace (Aircraft|RoadVeh|Ship|Train)_Tick with a Tick method in the Vehicle class.
rubidium
parents:
7630
diff
changeset
|
7 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
8 |
#include "tile_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
9 |
#include "strings_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
10 |
#include "gfx_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
11 |
#include "direction_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
12 |
#include "cargo_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
13 |
#include "command_type.h" |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
14 |
#include "vehicle_type.h" |
9273
ca5e00698c01
(svn r12476) -Codechange: split type engine related types from engine.h (and openttd.h) to engine_type.h.
rubidium
parents:
9269
diff
changeset
|
15 |
#include "engine_type.h" |
10444
3876060cdef7
(svn r12986) -Codechange: move the landscape and transport related types from openttd.h to their own headers.
rubidium
parents:
10429
diff
changeset
|
16 |
#include "transport_type.h" |
0 | 17 |
|
1765
f8d29d5462c9
(svn r2269) - CodeChange: no else after return; exchange some magic 0xffff with INVALID_VEHICLE, vehicle index is of type VehicleID
Darkvater
parents:
1763
diff
changeset
|
18 |
#define is_custom_sprite(x) (x >= 0xFD) |
f8d29d5462c9
(svn r2269) - CodeChange: no else after return; exchange some magic 0xffff with INVALID_VEHICLE, vehicle index is of type VehicleID
Darkvater
parents:
1763
diff
changeset
|
19 |
#define IS_CUSTOM_FIRSTHEAD_SPRITE(x) (x == 0xFD) |
f8d29d5462c9
(svn r2269) - CodeChange: no else after return; exchange some magic 0xffff with INVALID_VEHICLE, vehicle index is of type VehicleID
Darkvater
parents:
1763
diff
changeset
|
20 |
#define IS_CUSTOM_SECONDHEAD_SPRITE(x) (x == 0xFE) |
0 | 21 |
|
22 |
typedef void *VehicleFromPosProc(Vehicle *v, void *data); |
|
23 |
||
578
86e352980acd
(svn r998) now vehicles are serviced both when entering and when leaving depots to prevent that vehicles might need service when leaving after a long stay (ln--)
bjarni
parents:
577
diff
changeset
|
24 |
void VehicleServiceInDepot(Vehicle *v); |
0 | 25 |
void VehiclePositionChanged(Vehicle *v); |
26 |
Vehicle *GetLastVehicleInChain(Vehicle *v); |
|
10693
2ce681c2f4cc
(svn r13240) -Codechange: More const-ness for GUI code.
peter1138
parents:
10543
diff
changeset
|
27 |
const Vehicle *GetLastVehicleInChain(const Vehicle *v); |
7814
fe643468ad64
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
7631
diff
changeset
|
28 |
uint CountVehiclesInChain(const Vehicle *v); |
4574
497540b4a75f
(svn r6424) -Codechange: [autoreplace] removed a loop though all vehicles from each time the window is redrawn
bjarni
parents:
4544
diff
changeset
|
29 |
bool IsEngineCountable(const Vehicle *v); |
0 | 30 |
void DeleteVehicleChain(Vehicle *v); |
31 |
void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc); |
|
7367
a0499d5cb8e5
(svn r10111) -Codechange: Add new vehicle hash table for collision detection and finding vehicles on a tile. The hash area scanned is far smaller than the old hash table, which is now used for viewport updates only. This should give a significant performance improvement for games with many vehicles. (Based on work by 'B. N. SmatZ!' and 'madman2003')
peter1138
parents:
7353
diff
changeset
|
32 |
void *VehicleFromPosXY(int x, int y, void *data, VehicleFromPosProc *proc); |
6573 | 33 |
void CallVehicleTicks(); |
1605
c4630be67467
(svn r2109) -Fix: use FindVehicleOnTileZ(tile, 0) over FindVehicleBetween(tile, tile, 0)
truelight
parents:
1601
diff
changeset
|
34 |
Vehicle *FindVehicleOnTileZ(TileIndex tile, byte z); |
10543
0d72a03fa70c
(svn r13087) -Codechange: Constify CalcPercentVehicleFilled() (michi_cc)
peter1138
parents:
10444
diff
changeset
|
35 |
uint8 CalcPercentVehicleFilled(const Vehicle *v, StringID *color); |
0 | 36 |
|
6573 | 37 |
void InitializeTrains(); |
38 |
byte VehicleRandomBits(); |
|
39 |
void ResetVehiclePosHash(); |
|
8298
b8f2b501e23a
(svn r11352) -Codechange: cache callback 2D result (vehicle color mapping) instead calling it every time the vehicle is drawn
glx
parents:
8044
diff
changeset
|
40 |
void ResetVehicleColorMap(); |
0 | 41 |
|
2704
dc9ae68dfd74
(svn r3248) - Codechange: Change interface of CanRefitTo() to supply the engine type directly instead of getting it from a vehicle. This allows the function to be used before vehicles are involved.
peter1138
parents:
2676
diff
changeset
|
42 |
bool CanRefitTo(EngineID engine_type, CargoID cid_to); |
3973
7624a250577b
(svn r5146) - NewGRF: Support selection of aircraft default cargo type by checking its refit mask. If aircraft can be refitted to passengers, no change happens, else the first refittable type is chosen. Also use refit capacity to determine the default capacity.
peter1138
parents:
3948
diff
changeset
|
43 |
CargoID FindFirstRefittableCargo(EngineID engine_type); |
7439
0c0e2945c890
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
7367
diff
changeset
|
44 |
CommandCost GetRefitCost(EngineID engine_type); |
0 | 45 |
|
46 |
void ViewportAddVehicles(DrawPixelInfo *dpi); |
|
47 |
||
6117
b50b5ebc1c98
(svn r8448) -Codechange/Fix (r2993): Also update the helicopter's rotor when loading the game. This can solve crashes when a game is loaded with missing GRF's
Darkvater
parents:
6105
diff
changeset
|
48 |
SpriteID GetRotorImage(const Vehicle *v); |
0 | 49 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1944
diff
changeset
|
50 |
uint32 VehicleEnterTile(Vehicle *v, TileIndex tile, int x, int y); |
0 | 51 |
|
3881 | 52 |
StringID VehicleInTheWayErrMsg(const Vehicle* v); |
6191
12d69f54e920
(svn r8593) -Fix (FS#564): bridges do not get destroyed when the bridge head gets flooded and there is a vehicle on the bridge. Original patch by KeeperofTheSoul.
rubidium
parents:
6139
diff
changeset
|
53 |
Vehicle *FindVehicleBetween(TileIndex from, TileIndex to, byte z, bool without_crashed = false); |
8568
a82225425c24
(svn r11633) -Codechange: merge CheckTunnelEmpty and IsVehicleOnBridge into GetVehicleTunnelBridge
smatz
parents:
8377
diff
changeset
|
54 |
Vehicle *GetVehicleTunnelBridge(TileIndex tile, TileIndex endtile); |
0 | 55 |
|
56 |
void DecreaseVehicleValue(Vehicle *v); |
|
57 |
void CheckVehicleBreakdown(Vehicle *v); |
|
58 |
void AgeVehicle(Vehicle *v); |
|
2574
382fd3f37604
(svn r3111) -Fix: [autoreplace] [ 1341783 ] Assertion failure in vehicle.c line 378
bjarni
parents:
2564
diff
changeset
|
59 |
void VehicleEnteredDepotThisTick(Vehicle *v); |
0 | 60 |
|
8813
6d054db96ede
(svn r11882) -Codechange: introduce MarkSingleVehicleDirty() and simplify the code at some places
smatz
parents:
8734
diff
changeset
|
61 |
void BeginVehicleMove(const Vehicle *v); |
6d054db96ede
(svn r11882) -Codechange: introduce MarkSingleVehicleDirty() and simplify the code at some places
smatz
parents:
8734
diff
changeset
|
62 |
void EndVehicleMove(const Vehicle *v); |
6d054db96ede
(svn r11882) -Codechange: introduce MarkSingleVehicleDirty() and simplify the code at some places
smatz
parents:
8734
diff
changeset
|
63 |
void MarkSingleVehicleDirty(const Vehicle *v); |
0 | 64 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
65 |
UnitID GetFreeUnitNumber(VehicleType type); |
0 | 66 |
|
1905
f43d9e821deb
(svn r2411) - Codechange: Have trains cache stuff like consist power/weight/max speed instead of recalculating it each time.
hackykid
parents:
1804
diff
changeset
|
67 |
void TrainConsistChanged(Vehicle *v); |
3355
a653b8e47f27
(svn r4150) -Feature: Merged elrails into trunk. Thanks to Tron for lots of code and proofreading, thanks to peter1138 for another lot of code and ideas.
celestar
parents:
3347
diff
changeset
|
68 |
void TrainPowerChanged(Vehicle *v); |
7449
5cedaf2c861c
(svn r10208) -Codechange: replace int32 with Money where appropriate.
rubidium
parents:
7439
diff
changeset
|
69 |
Money GetTrainRunningCost(const Vehicle *v); |
0 | 70 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
71 |
uint GenerateVehicleSortList(const Vehicle*** sort_list, uint16 *length_of_array, VehicleType type, PlayerID owner, uint32 index, uint16 window_type); |
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
72 |
void BuildDepotVehicleList(VehicleType type, TileIndex tile, Vehicle ***engine_list, uint16 *engine_list_length, uint16 *engine_count, Vehicle ***wagon_list, uint16 *wagon_list_length, uint16 *wagon_count); |
7439
0c0e2945c890
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
7367
diff
changeset
|
73 |
CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id); |
4725
f7284b86833f
(svn r6637) -Codechange: merged all (vehicle type)EnterDepot into VehicleEnterDepot()
bjarni
parents:
4681
diff
changeset
|
74 |
void VehicleEnterDepot(Vehicle *v); |
4506
0d8fcc0a4e49
(svn r6291) -Feature: Vehicle lists from the station window now also got the goto depot button
bjarni
parents:
4497
diff
changeset
|
75 |
|
10259
23ab8ff3d044
(svn r12791) -Codechange: [autoreplace] Added a flag parameter (listens for DC_EXEC and DC_QUERY_COST) and included more info when returning CommandCost
bjarni
parents:
10127
diff
changeset
|
76 |
CommandCost MaybeReplaceVehicle(Vehicle *v, uint32 flags, bool display_costs); |
7582
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7562
diff
changeset
|
77 |
bool CanBuildVehicleInfrastructure(VehicleType type); |
6590
9bbf8fdc5e91
(svn r9073) -Codechange: moved autoreplace to a file of it's own (now autoreplace has a cmd and a gui file)
bjarni
parents:
6585
diff
changeset
|
78 |
|
7974
6fcdebd75c19
(svn r10985) -Codechange: unify/remove duplicate CcClone(Aircraft|RoadVeh|Ship|Train) in favour of CcCloneVehicle.
rubidium
parents:
7973
diff
changeset
|
79 |
void CcCloneVehicle(bool success, TileIndex tile, uint32 p1, uint32 p2); |
6fcdebd75c19
(svn r10985) -Codechange: unify/remove duplicate CcClone(Aircraft|RoadVeh|Ship|Train) in favour of CcCloneVehicle.
rubidium
parents:
7973
diff
changeset
|
80 |
|
4463
3a70624c40eb
(svn r6246) -Feature: added the many times requested "send all vehicle to depot" button
bjarni
parents:
4451
diff
changeset
|
81 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
82 |
struct GetNewVehiclePosResult { |
7814
fe643468ad64
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
7631
diff
changeset
|
83 |
int x, y; |
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1944
diff
changeset
|
84 |
TileIndex old_tile; |
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1944
diff
changeset
|
85 |
TileIndex new_tile; |
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
86 |
}; |
0 | 87 |
|
88 |
/* returns true if staying in the same tile */ |
|
6479 | 89 |
GetNewVehiclePosResult GetNewVehiclePos(const Vehicle *v); |
7814
fe643468ad64
(svn r10673) -Cleanup: some assorted style cleanups. Primarily type* var -> type *var.
rubidium
parents:
7631
diff
changeset
|
90 |
Direction GetDirectionTowards(const Vehicle *v, int x, int y); |
0 | 91 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
92 |
static inline bool IsPlayerBuildableVehicleType(VehicleType type) |
5997
11e028b7f507
(svn r8294) -Fix: deleting a vehicle with shared orders, but no orders would fail to reset prev_shared and next_shared
bjarni
parents:
5934
diff
changeset
|
93 |
{ |
6026
96b4b02774e5
(svn r8327) -Codechange: though overloading, IsPlayerBuildableVehicleType() now works with the type given as a byte as well as a vehicle pointer
bjarni
parents:
5999
diff
changeset
|
94 |
switch (type) { |
6585
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6574
diff
changeset
|
95 |
case VEH_TRAIN: |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6574
diff
changeset
|
96 |
case VEH_ROAD: |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6574
diff
changeset
|
97 |
case VEH_SHIP: |
7da94b26498a
(svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code).
rubidium
parents:
6574
diff
changeset
|
98 |
case VEH_AIRCRAFT: |
5997
11e028b7f507
(svn r8294) -Fix: deleting a vehicle with shared orders, but no orders would fail to reset prev_shared and next_shared
bjarni
parents:
5934
diff
changeset
|
99 |
return true; |
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
100 |
|
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
101 |
default: return false; |
5997
11e028b7f507
(svn r8294) -Fix: deleting a vehicle with shared orders, but no orders would fail to reset prev_shared and next_shared
bjarni
parents:
5934
diff
changeset
|
102 |
} |
11e028b7f507
(svn r8294) -Fix: deleting a vehicle with shared orders, but no orders would fail to reset prev_shared and next_shared
bjarni
parents:
5934
diff
changeset
|
103 |
} |
11e028b7f507
(svn r8294) -Fix: deleting a vehicle with shared orders, but no orders would fail to reset prev_shared and next_shared
bjarni
parents:
5934
diff
changeset
|
104 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
105 |
static inline bool IsPlayerBuildableVehicleType(const BaseVehicle *v) |
6026
96b4b02774e5
(svn r8327) -Codechange: though overloading, IsPlayerBuildableVehicleType() now works with the type given as a byte as well as a vehicle pointer
bjarni
parents:
5999
diff
changeset
|
106 |
{ |
96b4b02774e5
(svn r8327) -Codechange: though overloading, IsPlayerBuildableVehicleType() now works with the type given as a byte as well as a vehicle pointer
bjarni
parents:
5999
diff
changeset
|
107 |
return IsPlayerBuildableVehicleType(v->type); |
96b4b02774e5
(svn r8327) -Codechange: though overloading, IsPlayerBuildableVehicleType() now works with the type given as a byte as well as a vehicle pointer
bjarni
parents:
5999
diff
changeset
|
108 |
} |
96b4b02774e5
(svn r8327) -Codechange: though overloading, IsPlayerBuildableVehicleType() now works with the type given as a byte as well as a vehicle pointer
bjarni
parents:
5999
diff
changeset
|
109 |
|
7012
f20d04170833
(svn r9702) -Codechange: Add livery support to newgrf vehicle var 43
peter1138
parents:
6988
diff
changeset
|
110 |
const struct Livery *GetEngineLivery(EngineID engine_type, PlayerID player, EngineID parent_engine_type, const Vehicle *v); |
f20d04170833
(svn r9702) -Codechange: Add livery support to newgrf vehicle var 43
peter1138
parents:
6988
diff
changeset
|
111 |
|
3105
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
112 |
/** |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
113 |
* Get the colour map for an engine. This used for unbuilt engines in the user interface. |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
114 |
* @param engine_type ID of engine |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
115 |
* @param player ID of player |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
116 |
* @return A ready-to-use palette modifier |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
117 |
*/ |
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5902
diff
changeset
|
118 |
SpriteID GetEnginePalette(EngineID engine_type, PlayerID player); |
3040
c3473d1fb81f
(svn r3620) - 2cc: Replace use of macro to determine colour map with a function call for drawing of vehicles.
peter1138
parents:
3022
diff
changeset
|
119 |
|
3105
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
120 |
/** |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
121 |
* Get the colour map for a vehicle. |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
122 |
* @param v Vehicle to get colour map for |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
123 |
* @return A ready-to-use palette modifier |
4a6514d7a8ba
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
peter1138
parents:
3040
diff
changeset
|
124 |
*/ |
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5902
diff
changeset
|
125 |
SpriteID GetVehiclePalette(const Vehicle *v); |
3040
c3473d1fb81f
(svn r3620) - 2cc: Replace use of macro to determine colour map with a function call for drawing of vehicles.
peter1138
parents:
3022
diff
changeset
|
126 |
|
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
127 |
extern const uint32 _veh_build_proc_table[]; |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
128 |
extern const uint32 _veh_sell_proc_table[]; |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
129 |
extern const uint32 _veh_refit_proc_table[]; |
4494
15b8ae6bd860
(svn r6279) -Codechange (r1525): Use proper const pointers for functions that do not change them .
Darkvater
parents:
4463
diff
changeset
|
130 |
extern const uint32 _send_to_depot_proc_table[]; |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
131 |
|
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
132 |
/* Functions to find the right command for certain vehicle type */ |
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
133 |
static inline uint32 GetCmdBuildVeh(VehicleType type) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
134 |
{ |
6206
67358999d80d
(svn r8621) -Codechange: assigned new numbers to the VEH_(type) enum so that VEH_Train is 0, VEH_Road is 1 and so on
bjarni
parents:
6195
diff
changeset
|
135 |
return _veh_build_proc_table[type]; |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
136 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
137 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
138 |
static inline uint32 GetCmdBuildVeh(const BaseVehicle *v) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
139 |
{ |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
140 |
return GetCmdBuildVeh(v->type); |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
141 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
142 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
143 |
static inline uint32 GetCmdSellVeh(VehicleType type) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
144 |
{ |
6206
67358999d80d
(svn r8621) -Codechange: assigned new numbers to the VEH_(type) enum so that VEH_Train is 0, VEH_Road is 1 and so on
bjarni
parents:
6195
diff
changeset
|
145 |
return _veh_sell_proc_table[type]; |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
146 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
147 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
148 |
static inline uint32 GetCmdSellVeh(const BaseVehicle *v) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
149 |
{ |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
150 |
return GetCmdSellVeh(v->type); |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
151 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
152 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
153 |
static inline uint32 GetCmdRefitVeh(VehicleType type) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
154 |
{ |
6206
67358999d80d
(svn r8621) -Codechange: assigned new numbers to the VEH_(type) enum so that VEH_Train is 0, VEH_Road is 1 and so on
bjarni
parents:
6195
diff
changeset
|
155 |
return _veh_refit_proc_table[type]; |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
156 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
157 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
158 |
static inline uint32 GetCmdRefitVeh(const BaseVehicle *v) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
159 |
{ |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
160 |
return GetCmdRefitVeh(v->type); |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
161 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
162 |
|
7137
94dd139831be
(svn r9872) -Codechange: more type strictness for vehicle types
rubidium
parents:
7117
diff
changeset
|
163 |
static inline uint32 GetCmdSendToDepot(VehicleType type) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
164 |
{ |
6206
67358999d80d
(svn r8621) -Codechange: assigned new numbers to the VEH_(type) enum so that VEH_Train is 0, VEH_Road is 1 and so on
bjarni
parents:
6195
diff
changeset
|
165 |
return _send_to_depot_proc_table[type]; |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
166 |
} |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
167 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
168 |
static inline uint32 GetCmdSendToDepot(const BaseVehicle *v) |
6043
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
169 |
{ |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
170 |
return GetCmdSendToDepot(v->type); |
99c8fb13658b
(svn r8349) -Codechange: replaced CMD_REFIT_VEH() and similar defines with real static inline functions
bjarni
parents:
6040
diff
changeset
|
171 |
} |
4451
66603f0f732e
(svn r6229) -Feature: Shared order lists now got a "goto depot" button
bjarni
parents:
4434
diff
changeset
|
172 |
|
8627
448ebf3a8291
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium
parents:
8619
diff
changeset
|
173 |
bool EnsureNoVehicleOnGround(TileIndex tile); |
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
174 |
void StopAllVehicles(); |
8627
448ebf3a8291
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium
parents:
8619
diff
changeset
|
175 |
|
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
176 |
extern VehicleID _vehicle_id_ctr_day; |
10693
2ce681c2f4cc
(svn r13240) -Codechange: More const-ness for GUI code.
peter1138
parents:
10543
diff
changeset
|
177 |
extern const Vehicle *_place_clicked_vehicle; |
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
178 |
extern VehicleID _new_vehicle_id; |
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
179 |
extern uint16 _returned_refit_capacity; |
8615
6b91ca653bad
(svn r11680) -Codechange: refactor more out of openttd.h and functions.h.
rubidium
parents:
8604
diff
changeset
|
180 |
|
10272
2014f0bdc800
(svn r12804) -Codechange: move the effect vehicle handling out of vehicle.cpp
rubidium
parents:
10271
diff
changeset
|
181 |
#endif /* VEHICLE_FUNC_H */ |