13#include "table/strings.h"
26#define MT(a, b, c, d, e, f) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 5, f, INVALID_CARGO, e, 0, 8, EngineMiscFlags{}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
39#define MM(a, b, c, d, e, f) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 5, f, INVALID_CARGO, e, 0, 8, EngineMiscFlags{EngineMiscFlag::RailIsMU}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
52#define MW(a, b, c, d, e, f) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 5, f, INVALID_CARGO, e, 0, 8, EngineMiscFlags{}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
65#define MR(a, b, c, d, e, f) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 5, f, INVALID_CARGO, e, 0, 8, EngineMiscFlags{}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
77#define MS(a, b, c, d, e, f) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 10, f, INVALID_CARGO, e, 0, 8, EngineMiscFlags{}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
88#define MA(a, b, c, d, e) { CalendarTime::DAYS_TILL_ORIGINAL_BASE_YEAR + a, TimerGameCalendar::Year{c}, TimerGameCalendar::Year{d}, b, 20, e, INVALID_CARGO, CT_INVALID, 0, 8, EngineMiscFlags{}, VehicleCallbackMasks{}, 0, {}, STR_EMPTY, Ticks::CARGO_AGING_TICKS, EngineID::Invalid() }
91#define T LandscapeType::Temperate
93#define A LandscapeType::Arctic
95#define S LandscapeType::Tropic
97#define Y LandscapeType::Toyland
98static constexpr EngineInfo _orig_engine_info[] = {
103 MT( 1827, 20, 15, 30,
CT_NONE , LandscapeTypes({
T })),
104 MT( 12784, 20, 22, 30,
CT_NONE , LandscapeTypes({
A,
S })),
105 MT( 9497, 20, 20, 50,
CT_NONE , LandscapeTypes({
Y})),
106 MT( 11688, 20, 20, 30,
CT_NONE , LandscapeTypes({
Y})),
107 MT( 16802, 20, 20, 30,
CT_NONE , LandscapeTypes({
Y})),
108 MT( 18993, 20, 20, 30,
CT_NONE , LandscapeTypes({
Y})),
109 MT( 20820, 20, 20, 30,
CT_NONE , LandscapeTypes({
Y})),
110 MT( 8766, 20, 20, 30,
CT_NONE , LandscapeTypes({
A,
S })),
111 MT( 5114, 20, 21, 30,
CT_NONE , LandscapeTypes({
T })),
112 MT( 5479, 20, 20, 30,
CT_NONE , LandscapeTypes({
T })),
113 MT( 12419, 20, 23, 25,
CT_NONE , LandscapeTypes({
T })),
116 MT( 14976, 20, 18, 28,
CT_NONE , LandscapeTypes({
T })),
117 MT( 14245, 20, 20, 30,
CT_NONE , LandscapeTypes({
T })),
118 MT( 15341, 20, 22, 33,
CT_NONE , LandscapeTypes({
T })),
119 MT( 14976, 20, 20, 25,
CT_NONE , LandscapeTypes({
A,
S })),
120 MT( 16437, 20, 20, 30,
CT_NONE , LandscapeTypes({
A,
S })),
121 MT( 18993, 20, 22, 30,
CT_NONE , LandscapeTypes({
A,
S })),
122 MT( 13880, 20, 22, 30,
CT_NONE , LandscapeTypes({
A,
S })),
123 MM( 20454, 20, 22, 30,
CT_NONE , LandscapeTypes({
A,
S })),
124 MT( 16071, 20, 22, 30,
CT_NONE , LandscapeTypes({
A,
S })),
125 MT( 20820, 20, 20, 25, CT_MAIL , LandscapeTypes({
T })),
126 MT( 16437, 20, 23, 30,
CT_NONE , LandscapeTypes({
T })),
127 MT( 19359, 20, 23, 80,
CT_NONE , LandscapeTypes({
T })),
128 MM( 23376, 20, 25, 30,
CT_NONE , LandscapeTypes({
T })),
129 MM( 26298, 20, 25, 50,
CT_NONE , LandscapeTypes({
T })),
131 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({
T,
A,
S,
Y})),
132 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({
T,
A })),
133 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({
T,
A,
S })),
134 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
135 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({
T,
A,
S })),
137 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({
T,
A,
S })),
138 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({
T })),
139 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({
T })),
141 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({
A,
S })),
142 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({
A })),
143 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({
S })),
144 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({
S })),
145 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({
S })),
146 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({
S })),
147 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({
Y})),
148 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({
Y})),
149 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({
Y})),
150 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({
Y})),
151 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({
Y})),
152 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({
Y})),
153 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({
Y})),
154 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({
Y})),
155 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
156 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({
Y})),
157 MT( 28490, 20, 20, 50,
CT_NONE , LandscapeTypes({
T,
A,
S })),
159 MT( 28855, 20, 20, 50,
CT_NONE , LandscapeTypes({
Y})),
161 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({
T,
A,
S,
Y})),
162 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({
T,
A })),
163 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({
T,
A,
S })),
164 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
165 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({
T,
A,
S })),
167 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({
T,
A,
S })),
168 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({
T })),
169 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({
T })),
171 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({
A,
S })),
172 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({
A })),
173 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({
S })),
174 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({
S })),
175 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({
S })),
176 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({
S })),
177 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({
Y})),
178 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({
Y})),
179 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({
Y})),
180 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({
Y})),
181 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({
Y})),
182 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({
Y})),
183 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({
Y})),
184 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({
Y})),
185 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
186 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({
Y})),
187 MT( 36525, 20, 20, 50,
CT_NONE , LandscapeTypes({
T,
A,
S })),
188 MT( 39447, 20, 20, 50,
CT_NONE , LandscapeTypes({
T,
A,
S })),
189 MT( 42004, 20, 20, 50,
CT_NONE , LandscapeTypes({
T,
A,
S })),
190 MT( 42735, 20, 20, 50,
CT_NONE , LandscapeTypes({
T,
A,
S })),
191 MT( 36891, 20, 20, 60,
CT_NONE , LandscapeTypes({
Y})),
193 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({
T,
A,
S,
Y})),
194 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({
T,
A })),
195 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({
T,
A,
S })),
196 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
197 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({
T,
A,
S })),
199 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({
T,
A,
S })),
200 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({
T })),
201 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({
T })),
203 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({
A,
S })),
204 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({
A })),
205 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({
S })),
206 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({
S })),
207 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({
S })),
208 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({
S })),
209 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({
Y})),
210 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({
Y})),
211 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({
Y})),
212 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({
Y})),
213 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({
Y})),
214 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({
Y})),
215 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({
Y})),
216 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({
Y})),
217 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
218 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({
Y})),
226 MR( 5479, 20, 15, 55, CT_COAL , LandscapeTypes({
T,
A })),
227 MR( 20089, 20, 15, 55, CT_COAL , LandscapeTypes({
T,
A })),
228 MR( 33969, 20, 15, 85, CT_COAL , LandscapeTypes({
T,
A })),
229 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({
T,
A,
S })),
230 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({
T,
A,
S })),
231 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({
T,
A,
S })),
232 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({
Y})),
233 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({
Y})),
234 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({
Y})),
235 MR( 5479, 20, 15, 55, CT_OIL , LandscapeTypes({
T,
A,
S })),
236 MR( 19359, 20, 15, 55, CT_OIL , LandscapeTypes({
T,
A,
S })),
237 MR( 31047, 20, 15, 85, CT_OIL , LandscapeTypes({
T,
A,
S })),
238 MR( 5479, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
239 MR( 21915, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
240 MR( 37256, 20, 15, 85, CT_LIVESTOCK , LandscapeTypes({
T,
A })),
241 MR( 5479, 20, 15, 55, CT_GOODS , LandscapeTypes({
T,
A,
S })),
242 MR( 19724, 20, 15, 55, CT_GOODS , LandscapeTypes({
T,
A,
S })),
243 MR( 31047, 20, 15, 85, CT_GOODS , LandscapeTypes({
T,
A,
S })),
247 MR( 5479, 20, 15, 55, CT_WOOD , LandscapeTypes({
T,
A,
S })),
248 MR( 19724, 20, 15, 55, CT_WOOD , LandscapeTypes({
T,
A,
S })),
249 MR( 35430, 20, 15, 85, CT_WOOD , LandscapeTypes({
T,
A,
S })),
250 MR( 5479, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({
T })),
251 MR( 20820, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({
T })),
252 MR( 33238, 20, 15, 85, CT_IRON_ORE , LandscapeTypes({
T })),
253 MR( 5479, 20, 15, 55, CT_STEEL , LandscapeTypes({
T })),
254 MR( 21185, 20, 15, 55, CT_STEEL , LandscapeTypes({
T })),
255 MR( 31777, 20, 15, 85, CT_STEEL , LandscapeTypes({
T })),
259 MR( 5479, 20, 15, 55, CT_FOOD , LandscapeTypes({
A,
S })),
260 MR( 18628, 20, 15, 55, CT_FOOD , LandscapeTypes({
A,
S })),
261 MR( 30681, 20, 15, 85, CT_FOOD , LandscapeTypes({
A,
S })),
262 MR( 5479, 20, 15, 55, CT_PAPER , LandscapeTypes({
A })),
263 MR( 21185, 20, 15, 55, CT_PAPER , LandscapeTypes({
A })),
264 MR( 31777, 20, 15, 85, CT_PAPER , LandscapeTypes({
A })),
265 MR( 5479, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({
S })),
266 MR( 20820, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({
S })),
267 MR( 33238, 20, 15, 85, CT_COPPER_ORE , LandscapeTypes({
S })),
268 MR( 5479, 20, 15, 55, CT_WATER , LandscapeTypes({
S })),
269 MR( 20970, 20, 15, 55, CT_WATER , LandscapeTypes({
S })),
270 MR( 33388, 20, 15, 85, CT_WATER , LandscapeTypes({
S })),
271 MR( 5479, 20, 15, 55, CT_FRUIT , LandscapeTypes({
S })),
272 MR( 21335, 20, 15, 55, CT_FRUIT , LandscapeTypes({
S })),
273 MR( 33753, 20, 15, 85, CT_FRUIT , LandscapeTypes({
S })),
274 MR( 5479, 20, 15, 55, CT_RUBBER , LandscapeTypes({
S })),
275 MR( 20604, 20, 15, 55, CT_RUBBER , LandscapeTypes({
S })),
276 MR( 33023, 20, 15, 85, CT_RUBBER , LandscapeTypes({
S })),
277 MR( 5479, 20, 15, 55, CT_SUGAR , LandscapeTypes({
Y})),
278 MR( 19724, 20, 15, 55, CT_SUGAR , LandscapeTypes({
Y})),
279 MR( 33238, 20, 15, 85, CT_SUGAR , LandscapeTypes({
Y})),
280 MR( 5479, 20, 15, 55, CT_COLA , LandscapeTypes({
Y})),
281 MR( 20089, 20, 15, 55, CT_COLA , LandscapeTypes({
Y})),
282 MR( 33603, 20, 15, 85, CT_COLA , LandscapeTypes({
Y})),
283 MR( 5479, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({
Y})),
284 MR( 20454, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({
Y})),
285 MR( 33969, 20, 15, 85, CT_COTTON_CANDY, LandscapeTypes({
Y})),
286 MR( 5479, 20, 15, 55, CT_TOFFEE , LandscapeTypes({
Y})),
287 MR( 20820, 20, 15, 55, CT_TOFFEE , LandscapeTypes({
Y})),
288 MR( 34334, 20, 15, 85, CT_TOFFEE , LandscapeTypes({
Y})),
289 MR( 5479, 20, 15, 55, CT_TOYS , LandscapeTypes({
Y})),
290 MR( 21185, 20, 15, 55, CT_TOYS , LandscapeTypes({
Y})),
291 MR( 34699, 20, 15, 85, CT_TOYS , LandscapeTypes({
Y})),
292 MR( 5479, 20, 15, 55, CT_CANDY , LandscapeTypes({
Y})),
293 MR( 21550, 20, 15, 55, CT_CANDY , LandscapeTypes({
Y})),
294 MR( 35064, 20, 15, 85, CT_CANDY , LandscapeTypes({
Y})),
295 MR( 5479, 20, 15, 55, CT_BATTERIES , LandscapeTypes({
Y})),
296 MR( 19874, 20, 15, 55, CT_BATTERIES , LandscapeTypes({
Y})),
297 MR( 35430, 20, 15, 85, CT_BATTERIES , LandscapeTypes({
Y})),
298 MR( 5479, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
299 MR( 20239, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
300 MR( 35795, 20, 15, 85, CT_FIZZY_DRINKS, LandscapeTypes({
Y})),
301 MR( 5479, 20, 15, 55, CT_PLASTIC , LandscapeTypes({
Y})),
302 MR( 20604, 20, 15, 55, CT_PLASTIC , LandscapeTypes({
Y})),
303 MR( 32873, 20, 15, 85, CT_PLASTIC , LandscapeTypes({
Y})),
304 MR( 5479, 20, 15, 55, CT_BUBBLES , LandscapeTypes({
Y})),
305 MR( 20970, 20, 15, 55, CT_BUBBLES , LandscapeTypes({
Y})),
306 MR( 33023, 20, 15, 85, CT_BUBBLES , LandscapeTypes({
Y})),
307 MS( 2922, 5, 30, 50, CT_OIL , LandscapeTypes({
T,
A,
S })),
308 MS( 17167, 5, 30, 90, CT_OIL , LandscapeTypes({
T,
A,
S })),
314 MS( 2557, 5, 30, 55, CT_GOODS , LandscapeTypes({
T,
A,
S })),
315 MS( 19724, 5, 30, 98, CT_GOODS , LandscapeTypes({
T,
A,
S })),
316 MS( 9587, 5, 30, 45, CT_GOODS , LandscapeTypes({
Y})),
317 MS( 22371, 5, 30, 90, CT_GOODS , LandscapeTypes({
Y})),
318 MA( 2922, 20, 20, 20, LandscapeTypes({
T,
A,
S })),
319 MA( 9922, 20, 24, 20, LandscapeTypes({
T,
A,
S })),
320 MA( 12659, 20, 18, 20, LandscapeTypes({
T,
A,
S })),
321 MA( 17652, 20, 25, 35, LandscapeTypes({
T,
A,
S })),
322 MA( 4929, 20, 30, 30, LandscapeTypes({
T,
A,
S })),
323 MA( 13695, 20, 23, 25, LandscapeTypes({
T,
A,
S })),
324 MA( 16341, 20, 26, 30, LandscapeTypes({
T,
A,
S })),
325 MA( 21395, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
326 MA( 18263, 20, 20, 30, LandscapeTypes({
T,
A,
S })),
327 MA( 25233, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
328 MA( 15371, 20, 22, 25, LandscapeTypes({
T,
A,
S })),
329 MA( 15461, 20, 25, 25, LandscapeTypes({
T,
A,
S })),
330 MA( 16952, 20, 22, 25, LandscapeTypes({
T,
A,
S })),
331 MA( 17227, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
332 MA( 22371, 20, 25, 35, LandscapeTypes({
T,
A,
S })),
333 MA( 22341, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
334 MA( 27209, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
335 MA( 17988, 20, 20, 30, LandscapeTypes({
T,
A,
S })),
336 MA( 18993, 20, 24, 35, LandscapeTypes({
T,
A,
S })),
337 MA( 22401, 20, 24, 30, LandscapeTypes({
T,
A,
S })),
338 MA( 24472, 20, 24, 30, LandscapeTypes({
T,
A,
S })),
339 MA( 26724, 20, 24, 30, LandscapeTypes({
T,
A,
S })),
340 MA( 22005, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
341 MA( 24107, 20, 20, 35, LandscapeTypes({
T,
A,
S })),
342 MA( 29310, 20, 25, 60, LandscapeTypes({
T,
A,
S })),
343 MA( 35520, 20, 22, 30, LandscapeTypes({
T,
A,
S })),
344 MA( 36981, 20, 22, 30, LandscapeTypes({
T,
A,
S })),
345 MA( 38807, 20, 22, 50, LandscapeTypes({
T,
A,
S })),
346 MA( 42094, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
347 MA( 44651, 20, 23, 30, LandscapeTypes({
T,
A,
S })),
348 MA( 40268, 20, 25, 30, LandscapeTypes({
T,
A,
S })),
349 MA( 33693, 20, 25, 50, LandscapeTypes({
T,
A,
S })),
350 MA( 32963, 20, 20, 60, LandscapeTypes({
T,
A,
S })),
351 MA( 9222, 20, 20, 35, LandscapeTypes({
Y})),
352 MA( 12874, 20, 20, 35, LandscapeTypes({
Y})),
353 MA( 16892, 20, 20, 35, LandscapeTypes({
Y})),
354 MA( 21275, 20, 20, 99, LandscapeTypes({
Y})),
355 MA( 23832, 20, 20, 99, LandscapeTypes({
Y})),
356 MA( 13575, 20, 20, 40, LandscapeTypes({
T,
A,
S })),
357 MA( 28215, 20, 20, 30, LandscapeTypes({
T,
A,
S })),
358 MA( 13575, 20, 20, 99, LandscapeTypes({
Y})),
387#define RVI(a, b, c, d, e, f, g, h, i, j, k) { a, b, c, j, j, 0, d, e, f, g, h, k, i, 0, 0, VE_DEFAULT, 0, 76, 0, 0, 0 }
388#define M RAILVEH_MULTIHEAD
389#define W RAILVEH_WAGON
390#define G RAILVEH_SINGLEHEAD
399#define R RAILTYPE_RAIL
400#define C RAILTYPE_ELECTRIC
401#define O RAILTYPE_MONO
402#define L RAILTYPE_MAGLEV
404#define RC_S Price::RunningTrainSteam
405#define RC_D Price::RunningTrainDiesel
406#define RC_E Price::RunningTrainElectric
407#define RC_W Price::Invalid
416 RVI( 2, G, 7, 64, 300, 47, 50, RC_S, 0, R,
S),
417 RVI(19, G, 8, 80, 600, 65, 65, RC_D, 0, R, D),
418 RVI( 2, G, 10, 72, 400, 85, 90, RC_S, 0, R,
S),
419 RVI( 0, G, 15, 96, 900, 130, 130, RC_S, 0, R,
S),
420 RVI( 1, G, 19, 112, 1000, 140, 145, RC_S, 0, R,
S),
421 RVI(12, G, 16, 120, 1400, 95, 125, RC_D, 0, R, D),
422 RVI(14, G, 20, 152, 2000, 120, 135, RC_D, 0, R, D),
423 RVI( 3, G, 14, 88, 1100, 145, 130, RC_S, 0, R,
S),
424 RVI( 0, G, 13, 112, 1000, 131, 120, RC_S, 0, R,
S),
425 RVI( 1, G, 19, 128, 1200, 162, 140, RC_S, 0, R,
S),
426 RVI( 0, G, 22, 144, 1600, 170, 130, RC_S, 0, R,
S),
427 RVI( 8,
M, 11, 112, 600, 32, 85, RC_D, 38, R, D),
428 RVI(10,
M, 14, 120, 700, 38, 70, RC_D, 40, R, D),
429 RVI( 4, G, 15, 128, 1250, 72, 95, RC_D, 0, R, D),
430 RVI( 5, G, 17, 144, 1750, 101, 120, RC_D, 0, R, D),
431 RVI( 4, G, 18, 160, 2580, 112, 140, RC_D, 0, R, D),
432 RVI(14, G, 23, 96, 4000, 150, 135, RC_D, 0, R, D),
433 RVI(12, G, 16, 112, 2400, 120, 105, RC_D, 0, R, D),
434 RVI(13, G, 30, 112, 6600, 207, 155, RC_D, 0, R, D),
435 RVI(15, G, 18, 104, 1500, 110, 105, RC_D, 0, R, D),
436 RVI(16,
M, 35, 160, 3500, 95, 205, RC_D, 0, R, D),
437 RVI(18, G, 21, 104, 2200, 120, 145, RC_D, 0, R, D),
438 RVI( 6,
M, 20, 200, 4500, 70, 190, RC_D, 4, R, D),
439 RVI(20, G, 26, 160, 3600, 84, 180, RC_E, 0, C, E),
440 RVI(20, G, 30, 176, 5000, 82, 205, RC_E, 0, C, E),
441 RVI(21,
M, 40, 240, 7000, 90, 240, RC_E, 0, C, E),
442 RVI(23,
M, 43, 264, 8000, 95, 250, RC_E, 0, C, E),
443 RVI(33, W, 247, 0, 0, 25, 0, RC_W, 40, R,
A),
444 RVI(35, W, 228, 0, 0, 21, 0, RC_W, 30, R,
A),
445 RVI(34, W, 176, 0, 0, 18, 0, RC_W, 30, R,
A),
446 RVI(36, W, 200, 0, 0, 24, 0, RC_W, 30, R,
A),
447 RVI(37, W, 192, 0, 0, 20, 0, RC_W, 25, R,
A),
448 RVI(38, W, 190, 0, 0, 21, 0, RC_W, 25, R,
A),
449 RVI(39, W, 182, 0, 0, 19, 0, RC_W, 30, R,
A),
450 RVI(40, W, 181, 0, 0, 16, 0, RC_W, 30, R,
A),
451 RVI(41, W, 179, 0, 0, 19, 0, RC_W, 30, R,
A),
452 RVI(42, W, 196, 0, 0, 18, 0, RC_W, 20, R,
A),
453 RVI(43, W, 255, 0, 0, 30, 0, RC_W, 20, R,
A),
454 RVI(44, W, 191, 0, 0, 22, 0, RC_W, 25, R,
A),
455 RVI(45, W, 196, 0, 0, 18, 0, RC_W, 20, R,
A),
456 RVI(46, W, 179, 0, 0, 19, 0, RC_W, 30, R,
A),
457 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 25, R,
A),
458 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 25, R,
A),
459 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 21, R,
A),
460 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 30, R,
A),
461 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 30, R,
A),
462 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 30, R,
A),
463 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 20, R,
A),
464 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 25, R,
A),
465 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 25, R,
A),
466 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 20, R,
A),
467 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 22, R,
A),
468 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 25, R,
A),
469 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 30, R,
A),
471 RVI(25, G, 52, 304, 9000, 95, 230, RC_E, 0, O, N),
472 RVI(26,
M, 60, 336, 10000, 85, 240, RC_E, 25, O, N),
473 RVI(26, G, 53, 320, 5000, 95, 230, RC_E, 0, O, N),
474 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 45, O,
A),
475 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 35, O,
A),
476 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 35, O,
A),
477 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 35, O,
A),
478 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 30, O,
A),
479 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 30, O,
A),
480 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 35, O,
A),
481 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 35, O,
A),
482 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 35, O,
A),
483 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 25, O,
A),
484 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 25, O,
A),
485 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 30, O,
A),
486 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 25, O,
A),
487 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 35, O,
A),
488 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 30, O,
A),
489 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 30, O,
A),
490 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 26, O,
A),
491 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 35, O,
A),
492 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 35, O,
A),
493 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 35, O,
A),
494 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 25, O,
A),
495 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 30, O,
A),
496 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 30, O,
A),
497 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 25, O,
A),
498 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 27, O,
A),
499 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 30, O,
A),
500 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 35, O,
A),
502 RVI(28, G, 70, 400, 10000, 105, 250, RC_E, 0, L, V),
503 RVI(29, G, 74, 448, 12000, 120, 253, RC_E, 0, L, V),
504 RVI(30, G, 82, 480, 15000, 130, 254, RC_E, 0, L, V),
505 RVI(31,
M, 95, 640, 20000, 150, 255, RC_E, 0, L, V),
506 RVI(28, G, 70, 480, 10000, 120, 250, RC_E, 0, L, V),
507 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 47, L,
A),
508 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 37, L,
A),
509 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 37, L,
A),
510 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 37, L,
A),
511 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 32, L,
A),
512 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 32, L,
A),
513 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 37, L,
A),
514 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 37, L,
A),
515 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 37, L,
A),
516 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 27, L,
A),
517 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 27, L,
A),
518 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 32, L,
A),
519 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 27, L,
A),
520 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 37, L,
A),
521 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 32, L,
A),
522 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 32, L,
A),
523 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 28, L,
A),
524 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 37, L,
A),
525 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 37, L,
A),
526 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 37, L,
A),
527 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 27, L,
A),
528 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 32, L,
A),
529 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 32, L,
A),
530 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 27, L,
A),
531 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 29, L,
A),
532 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 32, L,
A),
533 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 37, L,
A),
565#define SVI(a, b, c, d, e, f, g, h) { a, b, f, c, d, e, g, h, VE_DEFAULT, 0, 0 }
598#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, (g * 128) / 10, f, h, i, 0 }
601#define J AIR_CTOL | AIR_FAST
669#define ROV(a, b, c, d, e, f, g, h) { a, b, c, Price::RunningRoadveh, d, e, f, g, h, 76, 0, VE_DEFAULT, 0, ROADTYPE_ROAD }
static constexpr CargoLabel CT_NONE
Dummy label for engines that carry no cargo; they actually carry 0 passengers.
@ MCT_GRAIN_WHEAT_MAIZE
Cargo can be grain, wheat or maize.
@ MCT_VALUABLES_GOLD_DIAMONDS
Cargo can be valuables, gold or diamonds.
static constexpr CargoLabel CT_PASSENGERS
Available types of cargo Labels may be re-used between different climates.
#define T
Climate temperate.
#define MA(a, b, c, d, e)
Writes the properties of an aeroplane into the EngineInfo struct.
#define MT(a, b, c, d, e, f)
Writes the properties of a train into the EngineInfo struct.
#define AVI(a, b, c, d, e, f, g, h, i)
Writes the properties of an aircraft into the AircraftVehicleInfo struct.
#define MS(a, b, c, d, e, f)
Writes the properties of a ship into the EngineInfo struct.
#define MR(a, b, c, d, e, f)
Writes the properties of a road vehicle into the EngineInfo struct.
#define SVI(a, b, c, d, e, f, g, h)
Writes the properties of a ship into the ShipVehicleInfo struct.
#define Y
Climate toyland.
#define ROV(a, b, c, d, e, f, g, h)
Writes the properties of a road vehicle into the RoadVehicleInfo struct.
#define MM(a, b, c, d, e, f)
Writes the properties of a multiple-unit train into the EngineInfo struct.
#define A
Climate sub-arctic.
#define RVI(a, b, c, d, e, f, g, h, i, j, k)
Writes the properties of a rail vehicle into the RailVehicleInfo struct.
#define MW(a, b, c, d, e, f)
Writes the properties of a train carriage into the EngineInfo struct.
#define S
Climate sub-tropic.
#define M(x)
Helper for creating a bitset of slopes.
@ SND_1B_DEPARTURE_MODERN_BUS
25 == 0x19 Station departure: modern bus (non-toyland)
@ SND_08_TAKEOFF_PROPELLER
6 == 0x06 Takeoff: propeller plane (non-toyland)
@ SND_19_DEPARTURE_OLD_RV_1
23 == 0x17 Station departure: truck and old bus (1) (non-toyland)
@ SND_3F_DEPARTURE_TRUCK_TOYLAND_1
63 == 0x3F Station departure: truck (1) (toyland)
@ SND_40_DEPARTURE_TRUCK_TOYLAND_2
64 == 0x40 Station departure: truck (2) (toyland)
@ SND_1C_DEPARTURE_OLD_BUS
26 == 0x1A Station departure: old bus (non-toyland)
@ SND_3E_DEPARTURE_BUS_TOYLAND_2
62 == 0x3E Station departure: bus (2) (toyland)
@ SND_07_DEPARTURE_FERRY
5 == 0x05 Station departure: passenger ships
@ SND_45_TAKEOFF_PROPELLER_TOYLAND_1
69 == 0x45 Takeoff: propeller plane (1) (toyland)
@ SND_3B_TAKEOFF_JET_FAST
59 == 0x3B Takeoff: supersonic plane (fast)
@ SND_06_DEPARTURE_CARGO_SHIP
4 == 0x04 Station departure: cargo ships
@ SND_3C_DEPARTURE_BUS_TOYLAND_1
60 == 0x3C Station departure: bus (1) (toyland)
@ SND_46_TAKEOFF_PROPELLER_TOYLAND_2
70 == 0x46 Takeoff: propeller plane (2) (toyland)
@ SND_09_TAKEOFF_JET
7 == 0x07 Takeoff: regular jet plane
@ SND_3D_TAKEOFF_JET_BIG
61 == 0x3D Takeoff: huge jet plane (high capacity)
Information about a aircraft vehicle.
Information about a vehicle.
Information about a rail vehicle.
Information about a road vehicle.
Information about a ship vehicle.