11 #define MK(bt, label, c, e, f, g, h, fr, te, ks1, ks2, ks3, ks4, ks5, l, m, cmult) \ 12 {bt, label, c, c, e, cmult, f, {g, h}, fr, te, 0, 0, ks1, ks2, ks3, ks4, ks5, l, m, nullptr, nullptr, 0} 16 STR_CARGO_PLURAL_PASSENGERS, STR_CARGO_SINGULAR_PASSENGER, STR_PASSENGERS, STR_QUANTITY_PASSENGERS, STR_ABBREV_PASSENGERS,
19 MK( 1,
'COAL', 6, 16, 5916, 7, 255,
true,
TE_NONE,
20 STR_CARGO_PLURAL_COAL, STR_CARGO_SINGULAR_COAL, STR_TONS, STR_QUANTITY_COAL, STR_ABBREV_COAL,
21 SPR_CARGO_COAL,
CC_BULK, 0x100),
23 MK( 2,
'MAIL', 15, 4, 4550, 20, 90,
false,
TE_MAIL,
24 STR_CARGO_PLURAL_MAIL, STR_CARGO_SINGULAR_MAIL, STR_BAGS, STR_QUANTITY_MAIL, STR_ABBREV_MAIL,
25 SPR_CARGO_MAIL,
CC_MAIL, 0x200),
28 MK( 3,
'OIL_', 174, 16, 4437, 25, 255,
true,
TE_NONE,
29 STR_CARGO_PLURAL_OIL, STR_CARGO_SINGULAR_OIL, STR_LITERS, STR_QUANTITY_OIL, STR_ABBREV_OIL,
33 MK( 3,
'OIL_', 174, 16, 4892, 25, 255,
true,
TE_NONE,
34 STR_CARGO_PLURAL_OIL, STR_CARGO_SINGULAR_OIL, STR_LITERS, STR_QUANTITY_OIL, STR_ABBREV_OIL,
37 MK( 4,
'LVST', 208, 3, 4322, 4, 18,
true,
TE_NONE,
38 STR_CARGO_PLURAL_LIVESTOCK, STR_CARGO_SINGULAR_LIVESTOCK, STR_ITEMS, STR_QUANTITY_LIVESTOCK, STR_ABBREV_LIVESTOCK,
41 MK( 5,
'GOOD', 194, 8, 6144, 5, 28,
true,
TE_GOODS,
42 STR_CARGO_PLURAL_GOODS, STR_CARGO_SINGULAR_GOODS, STR_CRATES, STR_QUANTITY_GOODS, STR_ABBREV_GOODS,
45 MK( 6,
'GRAI', 191, 16, 4778, 4, 40,
true,
TE_NONE,
46 STR_CARGO_PLURAL_GRAIN, STR_CARGO_SINGULAR_GRAIN, STR_TONS, STR_QUANTITY_GRAIN, STR_ABBREV_GRAIN,
47 SPR_CARGO_GRAIN,
CC_BULK, 0x100),
49 MK( 6,
'WHEA', 191, 16, 4778, 4, 40,
true,
TE_NONE,
50 STR_CARGO_PLURAL_WHEAT, STR_CARGO_SINGULAR_WHEAT, STR_TONS, STR_QUANTITY_WHEAT, STR_ABBREV_WHEAT,
51 SPR_CARGO_GRAIN,
CC_BULK, 0x100),
53 MK( 6,
'MAIZ', 191, 16, 4322, 4, 40,
true,
TE_NONE,
54 STR_CARGO_PLURAL_MAIZE, STR_CARGO_SINGULAR_MAIZE, STR_TONS, STR_QUANTITY_MAIZE, STR_ABBREV_MAIZE,
55 SPR_CARGO_GRAIN,
CC_BULK, 0x100),
58 MK( 7,
'WOOD', 84, 16, 5005, 15, 255,
true,
TE_NONE,
59 STR_CARGO_PLURAL_WOOD, STR_CARGO_SINGULAR_WOOD, STR_TONS, STR_QUANTITY_WOOD, STR_ABBREV_WOOD,
63 MK( 7,
'WOOD', 84, 16, 7964, 15, 255,
true,
TE_NONE,
64 STR_CARGO_PLURAL_WOOD, STR_CARGO_SINGULAR_WOOD, STR_TONS, STR_QUANTITY_WOOD, STR_ABBREV_WOOD,
67 MK( 8,
'IORE', 184, 16, 5120, 9, 255,
true,
TE_NONE,
68 STR_CARGO_PLURAL_IRON_ORE, STR_CARGO_SINGULAR_IRON_ORE, STR_TONS, STR_QUANTITY_IRON_ORE, STR_ABBREV_IRON_ORE,
69 SPR_CARGO_IRON_ORE,
CC_BULK, 0x100),
71 MK( 9,
'STEL', 10, 16, 5688, 7, 255,
true,
TE_NONE,
72 STR_CARGO_PLURAL_STEEL, STR_CARGO_SINGULAR_STEEL, STR_TONS, STR_QUANTITY_STEEL, STR_ABBREV_STEEL,
75 MK( 10,
'VALU', 202, 2, 7509, 1, 32,
true,
TE_NONE,
76 STR_CARGO_PLURAL_VALUABLES, STR_CARGO_SINGULAR_VALUABLES, STR_BAGS, STR_QUANTITY_VALUABLES, STR_ABBREV_VALUABLES,
79 MK( 10,
'GOLD', 202, 8, 5802, 10, 40,
true,
TE_NONE,
80 STR_CARGO_PLURAL_GOLD, STR_CARGO_SINGULAR_GOLD, STR_BAGS, STR_QUANTITY_GOLD, STR_ABBREV_GOLD,
83 MK( 10,
'DIAM', 202, 2, 5802, 10, 255,
true,
TE_NONE,
84 STR_CARGO_PLURAL_DIAMONDS, STR_CARGO_SINGULAR_DIAMOND, STR_BAGS, STR_QUANTITY_DIAMONDS, STR_ABBREV_DIAMONDS,
87 MK( 11,
'PAPR', 10, 16, 5461, 7, 60,
true,
TE_NONE,
88 STR_CARGO_PLURAL_PAPER, STR_CARGO_SINGULAR_PAPER, STR_TONS, STR_QUANTITY_PAPER, STR_ABBREV_PAPER,
91 MK( 12,
'FOOD', 48, 16, 5688, 0, 30,
true,
TE_FOOD,
92 STR_CARGO_PLURAL_FOOD, STR_CARGO_SINGULAR_FOOD, STR_TONS, STR_QUANTITY_FOOD, STR_ABBREV_FOOD,
95 MK( 13,
'FRUT', 208, 16, 4209, 0, 15,
true,
TE_NONE,
96 STR_CARGO_PLURAL_FRUIT, STR_CARGO_SINGULAR_FRUIT, STR_TONS, STR_QUANTITY_FRUIT, STR_ABBREV_FRUIT,
99 MK( 14,
'CORE', 184, 16, 4892, 12, 255,
true,
TE_NONE,
100 STR_CARGO_PLURAL_COPPER_ORE, STR_CARGO_SINGULAR_COPPER_ORE, STR_TONS, STR_QUANTITY_COPPER_ORE, STR_ABBREV_COPPER_ORE,
101 SPR_CARGO_COPPER_ORE,
CC_BULK, 0x100),
103 MK( 15,
'WATR', 10, 16, 4664, 20, 80,
true,
TE_WATER,
104 STR_CARGO_PLURAL_WATER, STR_CARGO_SINGULAR_WATER, STR_LITERS, STR_QUANTITY_WATER, STR_ABBREV_WATER,
107 MK( 16,
'RUBR', 6, 16, 4437, 2, 20,
true,
TE_NONE,
108 STR_CARGO_PLURAL_RUBBER, STR_CARGO_SINGULAR_RUBBER, STR_LITERS, STR_QUANTITY_RUBBER, STR_ABBREV_RUBBER,
111 MK( 17,
'SUGR', 6, 16, 4437, 20, 255,
true,
TE_NONE,
112 STR_CARGO_PLURAL_SUGAR, STR_CARGO_SINGULAR_SUGAR, STR_TONS, STR_QUANTITY_SUGAR, STR_ABBREV_SUGAR,
113 SPR_CARGO_SUGAR,
CC_BULK, 0x100),
115 MK( 18,
'TOYS', 174, 2, 5574, 25, 255,
true,
TE_NONE,
116 STR_CARGO_PLURAL_TOYS, STR_CARGO_SINGULAR_TOY, STR_ITEMS, STR_QUANTITY_TOYS, STR_ABBREV_TOYS,
119 MK( 19,
'BATT', 208, 4, 4322, 2, 30,
true,
TE_NONE,
120 STR_CARGO_PLURAL_BATTERIES, STR_CARGO_SINGULAR_BATTERY, STR_ITEMS, STR_QUANTITY_BATTERIES, STR_ABBREV_BATTERIES,
123 MK( 20,
'SWET', 194, 5, 6144, 8, 40,
true,
TE_GOODS,
124 STR_CARGO_PLURAL_CANDY, STR_CARGO_SINGULAR_CANDY, STR_BAGS, STR_QUANTITY_SWEETS, STR_ABBREV_SWEETS,
127 MK( 21,
'TOFF', 191, 16, 4778, 14, 60,
true,
TE_NONE,
128 STR_CARGO_PLURAL_TOFFEE, STR_CARGO_SINGULAR_TOFFEE, STR_TONS, STR_QUANTITY_TOFFEE, STR_ABBREV_TOFFEE,
129 SPR_CARGO_TOFFEE,
CC_BULK, 0x100),
131 MK( 22,
'COLA', 84, 16, 4892, 5, 75,
true,
TE_NONE,
132 STR_CARGO_PLURAL_COLA, STR_CARGO_SINGULAR_COLA, STR_LITERS, STR_QUANTITY_COLA, STR_ABBREV_COLA,
135 MK( 23,
'CTCD', 184, 16, 5005, 10, 25,
true,
TE_NONE,
136 STR_CARGO_PLURAL_COTTON_CANDY, STR_CARGO_SINGULAR_COTTON_CANDY, STR_TONS, STR_QUANTITY_CANDYFLOSS, STR_ABBREV_CANDYFLOSS,
137 SPR_CARGO_COTTONCANDY,
CC_BULK, 0x100),
139 MK( 24,
'BUBL', 10, 1, 5077, 20, 80,
true,
TE_NONE,
140 STR_CARGO_PLURAL_BUBBLES, STR_CARGO_SINGULAR_BUBBLE, STR_ITEMS, STR_QUANTITY_BUBBLES, STR_ABBREV_BUBBLES,
143 MK( 25,
'PLST', 202, 16, 4664, 30, 255,
true,
TE_NONE,
144 STR_CARGO_PLURAL_PLASTIC, STR_CARGO_SINGULAR_PLASTIC, STR_LITERS, STR_QUANTITY_PLASTIC, STR_ABBREV_PLASTIC,
147 MK( 26,
'FZDR', 48, 2, 6250, 30, 50,
true,
TE_FOOD,
148 STR_CARGO_PLURAL_FIZZY_DRINKS, STR_CARGO_SINGULAR_FIZZY_DRINK, STR_ITEMS, STR_QUANTITY_FIZZY_DRINKS, STR_ABBREV_FIZZY_DRINKS,
152 MK( 0xFF, 0, 1, 0, 5688, 0, 30,
true,
TE_NONE,
153 STR_CARGO_PLURAL_NOTHING, STR_CARGO_SINGULAR_NOTHING, STR_TONS, STR_QUANTITY_NOTHING, STR_ABBREV_NOTHING,
157 MK( 0xFF, 0, 184, 0, 5120, 9, 255,
true,
TE_NONE,
158 STR_CARGO_PLURAL_NOTHING, STR_CARGO_SINGULAR_NOTHING, STR_TONS, STR_QUANTITY_NOTHING, STR_ABBREV_NOTHING,
166 {
'PASS',
'COAL',
'MAIL',
'OIL_',
'LVST',
'GOOD',
'GRAI',
'WOOD',
'IORE',
'STEL',
'VALU', 33, },
167 {
'PASS',
'COAL',
'MAIL',
'OIL_',
'LVST',
'GOOD',
'WHEA',
'WOOD', 34,
'PAPR',
'GOLD',
'FOOD', },
168 {
'PASS',
'RUBR',
'MAIL', 4,
'FRUT',
'GOOD',
'MAIZ', 11,
'CORE',
'WATR',
'DIAM',
'FOOD', },
169 {
'PASS',
'SUGR',
'MAIL',
'TOYS',
'BATT',
'SWET',
'TOFF',
'COLA',
'CTCD',
'BUBL',
'PLST',
'FZDR', },
Specification of a cargo type.
Piece goods (Livestock, Wood, Steel, Paper)
Cargo behaves water-like.
Cargo behaves goods/candy-like.
Armoured cargo (Valuables, Gold, Diamonds)
No cargo class has been specified.
Express cargo (Goods, Food, Candy, but also possible for passengers)
static const CargoLabel _default_climate_cargo[NUM_LANDSCAPE][12]
Table of cargo types available in each climate, by default.
Liquids (Oil, Water, Rubber)
static const CargoSpec _default_cargo[]
Cargo types available by default.
Cargo behaves passenger-like.
uint32 CargoLabel
Globally unique label of a cargo type.
Cargo behaves food/fizzy-drinks-like.
Bulk cargo (Coal, Grain etc., Ores, Fruit)
#define MK(bt, label, c, e, f, g, h, fr, te, ks1, ks2, ks3, ks4, ks5, l, m, cmult)
Construction macro for a CargoSpec structure.
Refrigerated cargo (Food, Fruit)