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() }
95#define T LandscapeType::Temperate
96#define A LandscapeType::Arctic
97#define S LandscapeType::Tropic
98#define Y LandscapeType::Toyland
99static constexpr EngineInfo _orig_engine_info[] = {
104 MT( 1827, 20, 15, 30,
CT_NONE , LandscapeTypes({T })),
105 MT( 12784, 20, 22, 30,
CT_NONE , LandscapeTypes({ A,S })),
106 MT( 9497, 20, 20, 50,
CT_NONE , LandscapeTypes({ Y})),
107 MT( 11688, 20, 20, 30,
CT_NONE , LandscapeTypes({ Y})),
108 MT( 16802, 20, 20, 30,
CT_NONE , LandscapeTypes({ Y})),
109 MT( 18993, 20, 20, 30,
CT_NONE , LandscapeTypes({ Y})),
110 MT( 20820, 20, 20, 30,
CT_NONE , LandscapeTypes({ Y})),
111 MT( 8766, 20, 20, 30,
CT_NONE , LandscapeTypes({ A,S })),
112 MT( 5114, 20, 21, 30,
CT_NONE , LandscapeTypes({T })),
113 MT( 5479, 20, 20, 30,
CT_NONE , LandscapeTypes({T })),
114 MT( 12419, 20, 23, 25,
CT_NONE , LandscapeTypes({T })),
117 MT( 14976, 20, 18, 28,
CT_NONE , LandscapeTypes({T })),
118 MT( 14245, 20, 20, 30,
CT_NONE , LandscapeTypes({T })),
119 MT( 15341, 20, 22, 33,
CT_NONE , LandscapeTypes({T })),
120 MT( 14976, 20, 20, 25,
CT_NONE , LandscapeTypes({ A,S })),
121 MT( 16437, 20, 20, 30,
CT_NONE , LandscapeTypes({ A,S })),
122 MT( 18993, 20, 22, 30,
CT_NONE , LandscapeTypes({ A,S })),
123 MT( 13880, 20, 22, 30,
CT_NONE , LandscapeTypes({ A,S })),
124 MM( 20454, 20, 22, 30,
CT_NONE , LandscapeTypes({ A,S })),
125 MT( 16071, 20, 22, 30,
CT_NONE , LandscapeTypes({ A,S })),
126 MT( 20820, 20, 20, 25, CT_MAIL , LandscapeTypes({T })),
127 MT( 16437, 20, 23, 30,
CT_NONE , LandscapeTypes({T })),
128 MT( 19359, 20, 23, 80,
CT_NONE , LandscapeTypes({T })),
129 MM( 23376, 20, 25, 30,
CT_NONE , LandscapeTypes({T })),
130 MM( 26298, 20, 25, 50,
CT_NONE , LandscapeTypes({T })),
132 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})),
133 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })),
134 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })),
135 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })),
136 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })),
138 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })),
139 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })),
140 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })),
142 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })),
143 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })),
144 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })),
145 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })),
146 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })),
147 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })),
148 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})),
149 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})),
150 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})),
151 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})),
152 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})),
153 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})),
154 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})),
155 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})),
156 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
157 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})),
158 MT( 28490, 20, 20, 50,
CT_NONE , LandscapeTypes({T,A,S })),
160 MT( 28855, 20, 20, 50,
CT_NONE , LandscapeTypes({ Y})),
162 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})),
163 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })),
164 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })),
165 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })),
166 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })),
168 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })),
169 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })),
170 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })),
172 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })),
173 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })),
174 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })),
175 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })),
176 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })),
177 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })),
178 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})),
179 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})),
180 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})),
181 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})),
182 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})),
183 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})),
184 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})),
185 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})),
186 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
187 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})),
188 MT( 36525, 20, 20, 50,
CT_NONE , LandscapeTypes({T,A,S })),
189 MT( 39447, 20, 20, 50,
CT_NONE , LandscapeTypes({T,A,S })),
190 MT( 42004, 20, 20, 50,
CT_NONE , LandscapeTypes({T,A,S })),
191 MT( 42735, 20, 20, 50,
CT_NONE , LandscapeTypes({T,A,S })),
192 MT( 36891, 20, 20, 60,
CT_NONE , LandscapeTypes({ Y})),
194 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})),
195 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })),
196 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })),
197 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })),
198 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })),
200 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })),
201 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })),
202 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })),
204 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })),
205 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })),
206 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })),
207 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })),
208 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })),
209 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })),
210 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})),
211 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})),
212 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})),
213 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})),
214 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})),
215 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})),
216 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})),
217 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})),
218 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
219 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})),
227 MR( 5479, 20, 15, 55, CT_COAL , LandscapeTypes({T,A })),
228 MR( 20089, 20, 15, 55, CT_COAL , LandscapeTypes({T,A })),
229 MR( 33969, 20, 15, 85, CT_COAL , LandscapeTypes({T,A })),
230 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({T,A,S })),
231 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({T,A,S })),
232 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({T,A,S })),
233 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({ Y})),
234 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({ Y})),
235 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({ Y})),
236 MR( 5479, 20, 15, 55, CT_OIL , LandscapeTypes({T,A,S })),
237 MR( 19359, 20, 15, 55, CT_OIL , LandscapeTypes({T,A,S })),
238 MR( 31047, 20, 15, 85, CT_OIL , LandscapeTypes({T,A,S })),
239 MR( 5479, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({T,A })),
240 MR( 21915, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({T,A })),
241 MR( 37256, 20, 15, 85, CT_LIVESTOCK , LandscapeTypes({T,A })),
242 MR( 5479, 20, 15, 55, CT_GOODS , LandscapeTypes({T,A,S })),
243 MR( 19724, 20, 15, 55, CT_GOODS , LandscapeTypes({T,A,S })),
244 MR( 31047, 20, 15, 85, CT_GOODS , LandscapeTypes({T,A,S })),
248 MR( 5479, 20, 15, 55, CT_WOOD , LandscapeTypes({T,A,S })),
249 MR( 19724, 20, 15, 55, CT_WOOD , LandscapeTypes({T,A,S })),
250 MR( 35430, 20, 15, 85, CT_WOOD , LandscapeTypes({T,A,S })),
251 MR( 5479, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({T })),
252 MR( 20820, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({T })),
253 MR( 33238, 20, 15, 85, CT_IRON_ORE , LandscapeTypes({T })),
254 MR( 5479, 20, 15, 55, CT_STEEL , LandscapeTypes({T })),
255 MR( 21185, 20, 15, 55, CT_STEEL , LandscapeTypes({T })),
256 MR( 31777, 20, 15, 85, CT_STEEL , LandscapeTypes({T })),
260 MR( 5479, 20, 15, 55, CT_FOOD , LandscapeTypes({ A,S })),
261 MR( 18628, 20, 15, 55, CT_FOOD , LandscapeTypes({ A,S })),
262 MR( 30681, 20, 15, 85, CT_FOOD , LandscapeTypes({ A,S })),
263 MR( 5479, 20, 15, 55, CT_PAPER , LandscapeTypes({ A })),
264 MR( 21185, 20, 15, 55, CT_PAPER , LandscapeTypes({ A })),
265 MR( 31777, 20, 15, 85, CT_PAPER , LandscapeTypes({ A })),
266 MR( 5479, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({ S })),
267 MR( 20820, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({ S })),
268 MR( 33238, 20, 15, 85, CT_COPPER_ORE , LandscapeTypes({ S })),
269 MR( 5479, 20, 15, 55, CT_WATER , LandscapeTypes({ S })),
270 MR( 20970, 20, 15, 55, CT_WATER , LandscapeTypes({ S })),
271 MR( 33388, 20, 15, 85, CT_WATER , LandscapeTypes({ S })),
272 MR( 5479, 20, 15, 55, CT_FRUIT , LandscapeTypes({ S })),
273 MR( 21335, 20, 15, 55, CT_FRUIT , LandscapeTypes({ S })),
274 MR( 33753, 20, 15, 85, CT_FRUIT , LandscapeTypes({ S })),
275 MR( 5479, 20, 15, 55, CT_RUBBER , LandscapeTypes({ S })),
276 MR( 20604, 20, 15, 55, CT_RUBBER , LandscapeTypes({ S })),
277 MR( 33023, 20, 15, 85, CT_RUBBER , LandscapeTypes({ S })),
278 MR( 5479, 20, 15, 55, CT_SUGAR , LandscapeTypes({ Y})),
279 MR( 19724, 20, 15, 55, CT_SUGAR , LandscapeTypes({ Y})),
280 MR( 33238, 20, 15, 85, CT_SUGAR , LandscapeTypes({ Y})),
281 MR( 5479, 20, 15, 55, CT_COLA , LandscapeTypes({ Y})),
282 MR( 20089, 20, 15, 55, CT_COLA , LandscapeTypes({ Y})),
283 MR( 33603, 20, 15, 85, CT_COLA , LandscapeTypes({ Y})),
284 MR( 5479, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({ Y})),
285 MR( 20454, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({ Y})),
286 MR( 33969, 20, 15, 85, CT_COTTON_CANDY, LandscapeTypes({ Y})),
287 MR( 5479, 20, 15, 55, CT_TOFFEE , LandscapeTypes({ Y})),
288 MR( 20820, 20, 15, 55, CT_TOFFEE , LandscapeTypes({ Y})),
289 MR( 34334, 20, 15, 85, CT_TOFFEE , LandscapeTypes({ Y})),
290 MR( 5479, 20, 15, 55, CT_TOYS , LandscapeTypes({ Y})),
291 MR( 21185, 20, 15, 55, CT_TOYS , LandscapeTypes({ Y})),
292 MR( 34699, 20, 15, 85, CT_TOYS , LandscapeTypes({ Y})),
293 MR( 5479, 20, 15, 55, CT_CANDY , LandscapeTypes({ Y})),
294 MR( 21550, 20, 15, 55, CT_CANDY , LandscapeTypes({ Y})),
295 MR( 35064, 20, 15, 85, CT_CANDY , LandscapeTypes({ Y})),
296 MR( 5479, 20, 15, 55, CT_BATTERIES , LandscapeTypes({ Y})),
297 MR( 19874, 20, 15, 55, CT_BATTERIES , LandscapeTypes({ Y})),
298 MR( 35430, 20, 15, 85, CT_BATTERIES , LandscapeTypes({ Y})),
299 MR( 5479, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
300 MR( 20239, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
301 MR( 35795, 20, 15, 85, CT_FIZZY_DRINKS, LandscapeTypes({ Y})),
302 MR( 5479, 20, 15, 55, CT_PLASTIC , LandscapeTypes({ Y})),
303 MR( 20604, 20, 15, 55, CT_PLASTIC , LandscapeTypes({ Y})),
304 MR( 32873, 20, 15, 85, CT_PLASTIC , LandscapeTypes({ Y})),
305 MR( 5479, 20, 15, 55, CT_BUBBLES , LandscapeTypes({ Y})),
306 MR( 20970, 20, 15, 55, CT_BUBBLES , LandscapeTypes({ Y})),
307 MR( 33023, 20, 15, 85, CT_BUBBLES , LandscapeTypes({ Y})),
308 MS( 2922, 5, 30, 50, CT_OIL , LandscapeTypes({T,A,S })),
309 MS( 17167, 5, 30, 90, CT_OIL , LandscapeTypes({T,A,S })),
315 MS( 2557, 5, 30, 55, CT_GOODS , LandscapeTypes({T,A,S })),
316 MS( 19724, 5, 30, 98, CT_GOODS , LandscapeTypes({T,A,S })),
317 MS( 9587, 5, 30, 45, CT_GOODS , LandscapeTypes({ Y})),
318 MS( 22371, 5, 30, 90, CT_GOODS , LandscapeTypes({ Y})),
319 MA( 2922, 20, 20, 20, LandscapeTypes({T,A,S })),
320 MA( 9922, 20, 24, 20, LandscapeTypes({T,A,S })),
321 MA( 12659, 20, 18, 20, LandscapeTypes({T,A,S })),
322 MA( 17652, 20, 25, 35, LandscapeTypes({T,A,S })),
323 MA( 4929, 20, 30, 30, LandscapeTypes({T,A,S })),
324 MA( 13695, 20, 23, 25, LandscapeTypes({T,A,S })),
325 MA( 16341, 20, 26, 30, LandscapeTypes({T,A,S })),
326 MA( 21395, 20, 25, 30, LandscapeTypes({T,A,S })),
327 MA( 18263, 20, 20, 30, LandscapeTypes({T,A,S })),
328 MA( 25233, 20, 25, 30, LandscapeTypes({T,A,S })),
329 MA( 15371, 20, 22, 25, LandscapeTypes({T,A,S })),
330 MA( 15461, 20, 25, 25, LandscapeTypes({T,A,S })),
331 MA( 16952, 20, 22, 25, LandscapeTypes({T,A,S })),
332 MA( 17227, 20, 25, 30, LandscapeTypes({T,A,S })),
333 MA( 22371, 20, 25, 35, LandscapeTypes({T,A,S })),
334 MA( 22341, 20, 25, 30, LandscapeTypes({T,A,S })),
335 MA( 27209, 20, 25, 30, LandscapeTypes({T,A,S })),
336 MA( 17988, 20, 20, 30, LandscapeTypes({T,A,S })),
337 MA( 18993, 20, 24, 35, LandscapeTypes({T,A,S })),
338 MA( 22401, 20, 24, 30, LandscapeTypes({T,A,S })),
339 MA( 24472, 20, 24, 30, LandscapeTypes({T,A,S })),
340 MA( 26724, 20, 24, 30, LandscapeTypes({T,A,S })),
341 MA( 22005, 20, 25, 30, LandscapeTypes({T,A,S })),
342 MA( 24107, 20, 20, 35, LandscapeTypes({T,A,S })),
343 MA( 29310, 20, 25, 60, LandscapeTypes({T,A,S })),
344 MA( 35520, 20, 22, 30, LandscapeTypes({T,A,S })),
345 MA( 36981, 20, 22, 30, LandscapeTypes({T,A,S })),
346 MA( 38807, 20, 22, 50, LandscapeTypes({T,A,S })),
347 MA( 42094, 20, 25, 30, LandscapeTypes({T,A,S })),
348 MA( 44651, 20, 23, 30, LandscapeTypes({T,A,S })),
349 MA( 40268, 20, 25, 30, LandscapeTypes({T,A,S })),
350 MA( 33693, 20, 25, 50, LandscapeTypes({T,A,S })),
351 MA( 32963, 20, 20, 60, LandscapeTypes({T,A,S })),
352 MA( 9222, 20, 20, 35, LandscapeTypes({ Y})),
353 MA( 12874, 20, 20, 35, LandscapeTypes({ Y})),
354 MA( 16892, 20, 20, 35, LandscapeTypes({ Y})),
355 MA( 21275, 20, 20, 99, LandscapeTypes({ Y})),
356 MA( 23832, 20, 20, 99, LandscapeTypes({ Y})),
357 MA( 13575, 20, 20, 40, LandscapeTypes({T,A,S })),
358 MA( 28215, 20, 20, 30, LandscapeTypes({T,A,S })),
359 MA( 13575, 20, 20, 99, LandscapeTypes({ Y})),
388#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 }
389#define M RAILVEH_MULTIHEAD
390#define W RAILVEH_WAGON
391#define G RAILVEH_SINGLEHEAD
400#define R RAILTYPE_RAIL
401#define C RAILTYPE_ELECTRIC
402#define O RAILTYPE_MONO
403#define L RAILTYPE_MAGLEV
405#define RC_S Price::RunningTrainSteam
406#define RC_D Price::RunningTrainDiesel
407#define RC_E Price::RunningTrainElectric
408#define RC_W Price::Invalid
417 RVI( 2, G, 7, 64, 300, 47, 50, RC_S, 0, R, S),
418 RVI(19, G, 8, 80, 600, 65, 65, RC_D, 0, R, D),
419 RVI( 2, G, 10, 72, 400, 85, 90, RC_S, 0, R, S),
420 RVI( 0, G, 15, 96, 900, 130, 130, RC_S, 0, R, S),
421 RVI( 1, G, 19, 112, 1000, 140, 145, RC_S, 0, R, S),
422 RVI(12, G, 16, 120, 1400, 95, 125, RC_D, 0, R, D),
423 RVI(14, G, 20, 152, 2000, 120, 135, RC_D, 0, R, D),
424 RVI( 3, G, 14, 88, 1100, 145, 130, RC_S, 0, R, S),
425 RVI( 0, G, 13, 112, 1000, 131, 120, RC_S, 0, R, S),
426 RVI( 1, G, 19, 128, 1200, 162, 140, RC_S, 0, R, S),
427 RVI( 0, G, 22, 144, 1600, 170, 130, RC_S, 0, R, S),
428 RVI( 8,
M, 11, 112, 600, 32, 85, RC_D, 38, R, D),
429 RVI(10,
M, 14, 120, 700, 38, 70, RC_D, 40, R, D),
430 RVI( 4, G, 15, 128, 1250, 72, 95, RC_D, 0, R, D),
431 RVI( 5, G, 17, 144, 1750, 101, 120, RC_D, 0, R, D),
432 RVI( 4, G, 18, 160, 2580, 112, 140, RC_D, 0, R, D),
433 RVI(14, G, 23, 96, 4000, 150, 135, RC_D, 0, R, D),
434 RVI(12, G, 16, 112, 2400, 120, 105, RC_D, 0, R, D),
435 RVI(13, G, 30, 112, 6600, 207, 155, RC_D, 0, R, D),
436 RVI(15, G, 18, 104, 1500, 110, 105, RC_D, 0, R, D),
437 RVI(16,
M, 35, 160, 3500, 95, 205, RC_D, 0, R, D),
438 RVI(18, G, 21, 104, 2200, 120, 145, RC_D, 0, R, D),
439 RVI( 6,
M, 20, 200, 4500, 70, 190, RC_D, 4, R, D),
440 RVI(20, G, 26, 160, 3600, 84, 180, RC_E, 0, C, E),
441 RVI(20, G, 30, 176, 5000, 82, 205, RC_E, 0, C, E),
442 RVI(21,
M, 40, 240, 7000, 90, 240, RC_E, 0, C, E),
443 RVI(23,
M, 43, 264, 8000, 95, 250, RC_E, 0, C, E),
444 RVI(33, W, 247, 0, 0, 25, 0, RC_W, 40, R, A),
445 RVI(35, W, 228, 0, 0, 21, 0, RC_W, 30, R, A),
446 RVI(34, W, 176, 0, 0, 18, 0, RC_W, 30, R, A),
447 RVI(36, W, 200, 0, 0, 24, 0, RC_W, 30, R, A),
448 RVI(37, W, 192, 0, 0, 20, 0, RC_W, 25, R, A),
449 RVI(38, W, 190, 0, 0, 21, 0, RC_W, 25, R, A),
450 RVI(39, W, 182, 0, 0, 19, 0, RC_W, 30, R, A),
451 RVI(40, W, 181, 0, 0, 16, 0, RC_W, 30, R, A),
452 RVI(41, W, 179, 0, 0, 19, 0, RC_W, 30, R, A),
453 RVI(42, W, 196, 0, 0, 18, 0, RC_W, 20, R, A),
454 RVI(43, W, 255, 0, 0, 30, 0, RC_W, 20, R, A),
455 RVI(44, W, 191, 0, 0, 22, 0, RC_W, 25, R, A),
456 RVI(45, W, 196, 0, 0, 18, 0, RC_W, 20, R, A),
457 RVI(46, W, 179, 0, 0, 19, 0, RC_W, 30, R, A),
458 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 25, R, A),
459 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 25, R, A),
460 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 21, R, A),
461 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 30, R, A),
462 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 30, R, A),
463 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 30, R, A),
464 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 20, R, A),
465 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 25, R, A),
466 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 25, R, A),
467 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 20, R, A),
468 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 22, R, A),
469 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 25, R, A),
470 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 30, R, A),
472 RVI(25, G, 52, 304, 9000, 95, 230, RC_E, 0, O, N),
473 RVI(26,
M, 60, 336, 10000, 85, 240, RC_E, 25, O, N),
474 RVI(26, G, 53, 320, 5000, 95, 230, RC_E, 0, O, N),
475 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 45, O, A),
476 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 35, O, A),
477 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 35, O, A),
478 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 35, O, A),
479 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 30, O, A),
480 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 30, O, A),
481 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 35, O, A),
482 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 35, O, A),
483 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 35, O, A),
484 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 25, O, A),
485 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 25, O, A),
486 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 30, O, A),
487 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 25, O, A),
488 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 35, O, A),
489 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 30, O, A),
490 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 30, O, A),
491 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 26, O, A),
492 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 35, O, A),
493 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 35, O, A),
494 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 35, O, A),
495 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 25, O, A),
496 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 30, O, A),
497 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 30, O, A),
498 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 25, O, A),
499 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 27, O, A),
500 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 30, O, A),
501 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 35, O, A),
503 RVI(28, G, 70, 400, 10000, 105, 250, RC_E, 0, L, V),
504 RVI(29, G, 74, 448, 12000, 120, 253, RC_E, 0, L, V),
505 RVI(30, G, 82, 480, 15000, 130, 254, RC_E, 0, L, V),
506 RVI(31,
M, 95, 640, 20000, 150, 255, RC_E, 0, L, V),
507 RVI(28, G, 70, 480, 10000, 120, 250, RC_E, 0, L, V),
508 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 47, L, A),
509 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 37, L, A),
510 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 37, L, A),
511 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 37, L, A),
512 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 32, L, A),
513 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 32, L, A),
514 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 37, L, A),
515 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 37, L, A),
516 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 37, L, A),
517 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 27, L, A),
518 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 27, L, A),
519 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 32, L, A),
520 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 27, L, A),
521 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 37, L, A),
522 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 32, L, A),
523 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 32, L, A),
524 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 28, L, A),
525 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 37, L, A),
526 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 37, L, A),
527 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 37, L, A),
528 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 27, L, A),
529 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 32, L, A),
530 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 32, L, A),
531 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 27, L, A),
532 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 29, L, A),
533 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 32, L, A),
534 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 37, L, A),
566#define SVI(a, b, c, d, e, f, g, h) { a, b, f, c, d, e, g, h, VE_DEFAULT, 0, 0 }
599#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, (g * 128) / 10, f, h, i, 0 }
602#define J AIR_CTOL | AIR_FAST
670#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 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 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 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 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.