author | KUDr |
Sun, 15 Apr 2007 14:20:35 +0000 | |
branch | cpp_gui |
changeset 6305 | aa0faea50ab5 |
parent 6303 | 84c215fc8eb8 |
child 6307 | f40e88cff863 |
permissions | -rw-r--r-- |
6268 | 1 |
/* $Id$ */ |
2 |
||
3 |
/** @file cargotype.h */ |
|
4 |
||
5 |
#ifndef CARGOTYPE_H |
|
6 |
#define CARGOTYPE_H |
|
7 |
||
8 |
||
9 |
typedef uint32 CargoLabel; |
|
10 |
||
6303 | 11 |
enum TownEffect { |
12 |
TE_NONE, |
|
13 |
TE_PASSENGERS, |
|
14 |
TE_MAIL, |
|
15 |
TE_GOODS, |
|
16 |
TE_WATER, |
|
17 |
TE_FOOD, |
|
18 |
}; |
|
19 |
||
6268 | 20 |
|
6298
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
21 |
struct CargoSpec { |
6268 | 22 |
uint8 bitnum; |
23 |
CargoLabel label; |
|
24 |
uint32 grfid; |
|
25 |
uint8 legend_colour; |
|
26 |
uint8 rating_colour; |
|
27 |
uint8 weight; |
|
28 |
uint16 initial_payment; |
|
29 |
uint8 transit_days[2]; |
|
30 |
||
31 |
bool is_freight; |
|
6303 | 32 |
TownEffect town_effect; ///< The effect this cargo type has on towns |
6268 | 33 |
uint16 multipliertowngrowth; |
6303 | 34 |
uint8 callback_mask; |
6268 | 35 |
|
36 |
StringID name; |
|
37 |
StringID name_plural; |
|
38 |
StringID units_volume; |
|
39 |
StringID quantifier; |
|
40 |
StringID abbrev; |
|
41 |
||
42 |
SpriteID sprite; |
|
43 |
||
44 |
uint16 classes; |
|
6303 | 45 |
const struct SpriteGroup *group; |
6268 | 46 |
|
47 |
bool IsValid() const; |
|
6298
c30fe89622df
(svn r9119) [cpp_gui] -Sync with trunk (r9003:9100)
bjarni
parents:
6268
diff
changeset
|
48 |
}; |
6268 | 49 |
|
50 |
||
51 |
extern uint32 _cargo_mask; |
|
6303 | 52 |
extern CargoSpec _cargo[NUM_CARGO]; |
6268 | 53 |
|
54 |
||
55 |
/* Set up the default cargo types for the given landscape type */ |
|
56 |
void SetupCargoForClimate(LandscapeID l); |
|
57 |
/* Retrieve cargo details for the given cargo ID */ |
|
58 |
const CargoSpec *GetCargo(CargoID c); |
|
59 |
/* Get the cargo ID with the cargo label */ |
|
60 |
CargoID GetCargoIDByLabel(CargoLabel cl); |
|
61 |
||
6303 | 62 |
static inline bool IsCargoInClass(CargoID c, uint16 cc) |
63 |
{ |
|
64 |
return (GetCargo(c)->classes & cc) != 0; |
|
65 |
} |
|
66 |
||
6268 | 67 |
|
68 |
#endif /* CARGOTYPE_H */ |