OpenTTD Source 20260109-master-g241b5fcdfe
engines.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
10#ifndef ENGINES_H
11#define ENGINES_H
12
13#include "table/strings.h"
14
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() }
27
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() }
40
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() }
53
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() }
66
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() }
78
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() }
89
90/* Climates
91 * T = Temperate
92 * A = Sub-Arctic
93 * S = Sub-Tropic
94 * Y = Toyland */
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[] = {
100 /* base_intro base_life
101 * | decay_speed cargo_type
102 * | | lifelength | climates
103 * | | | | | | */
104 MT( 1827, 20, 15, 30, CT_NONE , LandscapeTypes({T })), // 0 Kirby Paul Tank (Steam)
105 MT( 12784, 20, 22, 30, CT_NONE , LandscapeTypes({ A,S })), // 1 MJS 250 (Diesel)
106 MT( 9497, 20, 20, 50, CT_NONE , LandscapeTypes({ Y})), // 2 Ploddyphut Choo-Choo
107 MT( 11688, 20, 20, 30, CT_NONE , LandscapeTypes({ Y})), // 3 Powernaut Choo-Choo
108 MT( 16802, 20, 20, 30, CT_NONE , LandscapeTypes({ Y})), // 4 Mightymover Choo-Choo
109 MT( 18993, 20, 20, 30, CT_NONE , LandscapeTypes({ Y})), // 5 Ploddyphut Diesel
110 MT( 20820, 20, 20, 30, CT_NONE , LandscapeTypes({ Y})), // 6 Powernaut Diesel
111 MT( 8766, 20, 20, 30, CT_NONE , LandscapeTypes({ A,S })), // 7 Wills 2-8-0 (Steam)
112 MT( 5114, 20, 21, 30, CT_NONE , LandscapeTypes({T })), // 8 Chaney 'Jubilee' (Steam)
113 MT( 5479, 20, 20, 30, CT_NONE , LandscapeTypes({T })), // 9 Ginzu 'A4' (Steam)
114 MT( 12419, 20, 23, 25, CT_NONE , LandscapeTypes({T })), // 10 SH '8P' (Steam)
115 MM( 13149, 20, 12, 30, CT_PASSENGERS , LandscapeTypes({T })), // 11 Manley-Morel DMU (Diesel)
116 MM( 23376, 20, 15, 35, CT_PASSENGERS , LandscapeTypes({T })), // 12 'Dash' (Diesel)
117 MT( 14976, 20, 18, 28, CT_NONE , LandscapeTypes({T })), // 13 SH/Hendry '25' (Diesel)
118 MT( 14245, 20, 20, 30, CT_NONE , LandscapeTypes({T })), // 14 UU '37' (Diesel)
119 MT( 15341, 20, 22, 33, CT_NONE , LandscapeTypes({T })), // 15 Floss '47' (Diesel)
120 MT( 14976, 20, 20, 25, CT_NONE , LandscapeTypes({ A,S })), // 16 CS 4000 (Diesel)
121 MT( 16437, 20, 20, 30, CT_NONE , LandscapeTypes({ A,S })), // 17 CS 2400 (Diesel)
122 MT( 18993, 20, 22, 30, CT_NONE , LandscapeTypes({ A,S })), // 18 Centennial (Diesel)
123 MT( 13880, 20, 22, 30, CT_NONE , LandscapeTypes({ A,S })), // 19 Kelling 3100 (Diesel)
124 MM( 20454, 20, 22, 30, CT_NONE , LandscapeTypes({ A,S })), // 20 Turner Turbo (Diesel)
125 MT( 16071, 20, 22, 30, CT_NONE , LandscapeTypes({ A,S })), // 21 MJS 1000 (Diesel)
126 MT( 20820, 20, 20, 25, CT_MAIL , LandscapeTypes({T })), // 22 SH '125' (Diesel)
127 MT( 16437, 20, 23, 30, CT_NONE , LandscapeTypes({T })), // 23 SH '30' (Electric)
128 MT( 19359, 20, 23, 80, CT_NONE , LandscapeTypes({T })), // 24 SH '40' (Electric)
129 MM( 23376, 20, 25, 30, CT_NONE , LandscapeTypes({T })), // 25 'T.I.M.' (Electric)
130 MM( 26298, 20, 25, 50, CT_NONE , LandscapeTypes({T })), // 26 'AsiaStar' (Electric)
131 MW( 1827, 20, 20, 50, CT_PASSENGERS , LandscapeTypes({T,A,S,Y})), // 27 Passenger Carriage
132 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})), // 28 Mail Van
133 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })), // 29 Coal Truck
134 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })), // 30 Oil Tanker
135 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })), // 31 Livestock Van
136 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })), // 32 Goods Van
137 MW( 1827, 20, 20, 50, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 33 Grain Hopper
138 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })), // 34 Wood Truck
139 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })), // 35 Iron Ore Hopper
140 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })), // 36 Steel Truck
141 MW( 1827, 20, 20, 50, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 37 Armoured Van
142 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })), // 38 Food Van
143 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })), // 39 Paper Truck
144 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })), // 40 Copper Ore Hopper
145 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })), // 41 Water Tanker
146 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })), // 42 Fruit Truck
147 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })), // 43 Rubber Truck
148 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})), // 44 Sugar Truck
149 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 45 Candyfloss Hopper
150 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})), // 46 Toffee Hopper
151 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})), // 47 Bubble Van
152 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})), // 48 Cola Tanker
153 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})), // 49 Sweet Van
154 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})), // 50 Toy Van
155 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})), // 51 Battery Truck
156 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 52 Fizzy Drink Truck
157 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})), // 53 Plastic Truck
158 MT( 28490, 20, 20, 50, CT_NONE , LandscapeTypes({T,A,S })), // 54 'X2001' (Electric)
159 MT( 31047, 20, 20, 50, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 55 'Millennium Z1' (Electric)
160 MT( 28855, 20, 20, 50, CT_NONE , LandscapeTypes({ Y})), // 56 Wizzowow Z99
161 MW( 1827, 20, 20, 50, CT_PASSENGERS , LandscapeTypes({T,A,S,Y})), // 57 Passenger Carriage
162 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})), // 58 Mail Van
163 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })), // 59 Coal Truck
164 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })), // 60 Oil Tanker
165 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })), // 61 Livestock Van
166 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })), // 62 Goods Van
167 MW( 1827, 20, 20, 50, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 63 Grain Hopper
168 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })), // 64 Wood Truck
169 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })), // 65 Iron Ore Hopper
170 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })), // 66 Steel Truck
171 MW( 1827, 20, 20, 50, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 67 Armoured Van
172 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })), // 68 Food Van
173 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })), // 69 Paper Truck
174 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })), // 70 Copper Ore Hopper
175 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })), // 71 Water Tanker
176 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })), // 72 Fruit Truck
177 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })), // 73 Rubber Truck
178 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})), // 74 Sugar Truck
179 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 75 Candyfloss Hopper
180 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})), // 76 Toffee Hopper
181 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})), // 77 Bubble Van
182 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})), // 78 Cola Tanker
183 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})), // 79 Sweet Van
184 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})), // 80 Toy Van
185 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})), // 81 Battery Truck
186 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 82 Fizzy Drink Truck
187 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})), // 83 Plastic Truck
188 MT( 36525, 20, 20, 50, CT_NONE , LandscapeTypes({T,A,S })), // 84 Lev1 'Leviathan' (Electric)
189 MT( 39447, 20, 20, 50, CT_NONE , LandscapeTypes({T,A,S })), // 85 Lev2 'Cyclops' (Electric)
190 MT( 42004, 20, 20, 50, CT_NONE , LandscapeTypes({T,A,S })), // 86 Lev3 'Pegasus' (Electric)
191 MT( 42735, 20, 20, 50, CT_NONE , LandscapeTypes({T,A,S })), // 87 Lev4 'Chimaera' (Electric)
192 MT( 36891, 20, 20, 60, CT_NONE , LandscapeTypes({ Y})), // 88 Wizzowow Rocketeer
193 MW( 1827, 20, 20, 50, CT_PASSENGERS , LandscapeTypes({T,A,S,Y})), // 89 Passenger Carriage
194 MW( 1827, 20, 20, 50, CT_MAIL , LandscapeTypes({T,A,S,Y})), // 90 Mail Van
195 MW( 1827, 20, 20, 50, CT_COAL , LandscapeTypes({T,A })), // 91 Coal Truck
196 MW( 1827, 20, 20, 50, CT_OIL , LandscapeTypes({T,A,S })), // 92 Oil Tanker
197 MW( 1827, 20, 20, 50, CT_LIVESTOCK , LandscapeTypes({T,A })), // 93 Livestock Van
198 MW( 1827, 20, 20, 50, CT_GOODS , LandscapeTypes({T,A,S })), // 94 Goods Van
199 MW( 1827, 20, 20, 50, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 95 Grain Hopper
200 MW( 1827, 20, 20, 50, CT_WOOD , LandscapeTypes({T,A,S })), // 96 Wood Truck
201 MW( 1827, 20, 20, 50, CT_IRON_ORE , LandscapeTypes({T })), // 97 Iron Ore Hopper
202 MW( 1827, 20, 20, 50, CT_STEEL , LandscapeTypes({T })), // 98 Steel Truck
203 MW( 1827, 20, 20, 50, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 99 Armoured Van
204 MW( 1827, 20, 20, 50, CT_FOOD , LandscapeTypes({ A,S })), // 100 Food Van
205 MW( 1827, 20, 20, 50, CT_PAPER , LandscapeTypes({ A })), // 101 Paper Truck
206 MW( 1827, 20, 20, 50, CT_COPPER_ORE , LandscapeTypes({ S })), // 102 Copper Ore Hopper
207 MW( 1827, 20, 20, 50, CT_WATER , LandscapeTypes({ S })), // 103 Water Tanker
208 MW( 1827, 20, 20, 50, CT_FRUIT , LandscapeTypes({ S })), // 104 Fruit Truck
209 MW( 1827, 20, 20, 50, CT_RUBBER , LandscapeTypes({ S })), // 105 Rubber Truck
210 MW( 1827, 20, 20, 50, CT_SUGAR , LandscapeTypes({ Y})), // 106 Sugar Truck
211 MW( 1827, 20, 20, 50, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 107 Candyfloss Hopper
212 MW( 1827, 20, 20, 50, CT_TOFFEE , LandscapeTypes({ Y})), // 108 Toffee Hopper
213 MW( 1827, 20, 20, 50, CT_BUBBLES , LandscapeTypes({ Y})), // 109 Bubble Van
214 MW( 1827, 20, 20, 50, CT_COLA , LandscapeTypes({ Y})), // 110 Cola Tanker
215 MW( 1827, 20, 20, 50, CT_CANDY , LandscapeTypes({ Y})), // 111 Sweet Van
216 MW( 1827, 20, 20, 50, CT_TOYS , LandscapeTypes({ Y})), // 112 Toy Van
217 MW( 1827, 20, 20, 50, CT_BATTERIES , LandscapeTypes({ Y})), // 113 Battery Truck
218 MW( 1827, 20, 20, 50, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 114 Fizzy Drink Truck
219 MW( 1827, 20, 20, 50, CT_PLASTIC , LandscapeTypes({ Y})), // 115 Plastic Truck
220 MR( 3378, 20, 12, 40, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 116 MPS Regal Bus
221 MR( 16071, 20, 15, 30, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 117 Hereford Leopard Bus
222 MR( 24107, 20, 15, 40, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 118 Foster Bus
223 MR( 32142, 20, 15, 80, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 119 Foster MkII Superbus
224 MR( 9132, 20, 15, 40, CT_PASSENGERS , LandscapeTypes({ Y})), // 120 Ploddyphut MkI Bus
225 MR( 18993, 20, 15, 40, CT_PASSENGERS , LandscapeTypes({ Y})), // 121 Ploddyphut MkII Bus
226 MR( 32873, 20, 15, 80, CT_PASSENGERS , LandscapeTypes({ Y})), // 122 Ploddyphut MkIII Bus
227 MR( 5479, 20, 15, 55, CT_COAL , LandscapeTypes({T,A })), // 123 Balogh Coal Truck
228 MR( 20089, 20, 15, 55, CT_COAL , LandscapeTypes({T,A })), // 124 Uhl Coal Truck
229 MR( 33969, 20, 15, 85, CT_COAL , LandscapeTypes({T,A })), // 125 DW Coal Truck
230 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({T,A,S })), // 126 MPS Mail Truck
231 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({T,A,S })), // 127 Reynard Mail Truck
232 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({T,A,S })), // 128 Perry Mail Truck
233 MR( 5479, 20, 15, 55, CT_MAIL , LandscapeTypes({ Y})), // 129 MightyMover Mail Truck
234 MR( 21550, 20, 15, 55, CT_MAIL , LandscapeTypes({ Y})), // 130 Powernaught Mail Truck
235 MR( 35795, 20, 15, 85, CT_MAIL , LandscapeTypes({ Y})), // 131 Wizzowow Mail Truck
236 MR( 5479, 20, 15, 55, CT_OIL , LandscapeTypes({T,A,S })), // 132 Witcombe Oil Tanker
237 MR( 19359, 20, 15, 55, CT_OIL , LandscapeTypes({T,A,S })), // 133 Foster Oil Tanker
238 MR( 31047, 20, 15, 85, CT_OIL , LandscapeTypes({T,A,S })), // 134 Perry Oil Tanker
239 MR( 5479, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({T,A })), // 135 Talbott Livestock Van
240 MR( 21915, 20, 15, 55, CT_LIVESTOCK , LandscapeTypes({T,A })), // 136 Uhl Livestock Van
241 MR( 37256, 20, 15, 85, CT_LIVESTOCK , LandscapeTypes({T,A })), // 137 Foster Livestock Van
242 MR( 5479, 20, 15, 55, CT_GOODS , LandscapeTypes({T,A,S })), // 138 Balogh Goods Truck
243 MR( 19724, 20, 15, 55, CT_GOODS , LandscapeTypes({T,A,S })), // 139 Craighead Goods Truck
244 MR( 31047, 20, 15, 85, CT_GOODS , LandscapeTypes({T,A,S })), // 140 Goss Goods Truck
245 MR( 5479, 20, 15, 55, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 141 Hereford Grain Truck
246 MR( 21185, 20, 15, 55, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 142 Thomas Grain Truck
247 MR( 32873, 20, 15, 85, MCT_GRAIN_WHEAT_MAIZE, LandscapeTypes({T,A,S })), // 143 Goss Grain Truck
248 MR( 5479, 20, 15, 55, CT_WOOD , LandscapeTypes({T,A,S })), // 144 Witcombe Wood Truck
249 MR( 19724, 20, 15, 55, CT_WOOD , LandscapeTypes({T,A,S })), // 145 Foster Wood Truck
250 MR( 35430, 20, 15, 85, CT_WOOD , LandscapeTypes({T,A,S })), // 146 Moreland Wood Truck
251 MR( 5479, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({T })), // 147 MPS Iron Ore Truck
252 MR( 20820, 20, 15, 55, CT_IRON_ORE , LandscapeTypes({T })), // 148 Uhl Iron Ore Truck
253 MR( 33238, 20, 15, 85, CT_IRON_ORE , LandscapeTypes({T })), // 149 Chippy Iron Ore Truck
254 MR( 5479, 20, 15, 55, CT_STEEL , LandscapeTypes({T })), // 150 Balogh Steel Truck
255 MR( 21185, 20, 15, 55, CT_STEEL , LandscapeTypes({T })), // 151 Uhl Steel Truck
256 MR( 31777, 20, 15, 85, CT_STEEL , LandscapeTypes({T })), // 152 Kelling Steel Truck
257 MR( 5479, 20, 15, 55, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 153 Balogh Armoured Truck
258 MR( 22281, 20, 15, 55, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 154 Uhl Armoured Truck
259 MR( 33603, 20, 15, 85, MCT_VALUABLES_GOLD_DIAMONDS, LandscapeTypes({T,A,S })), // 155 Foster Armoured Truck
260 MR( 5479, 20, 15, 55, CT_FOOD , LandscapeTypes({ A,S })), // 156 Foster Food Van
261 MR( 18628, 20, 15, 55, CT_FOOD , LandscapeTypes({ A,S })), // 157 Perry Food Van
262 MR( 30681, 20, 15, 85, CT_FOOD , LandscapeTypes({ A,S })), // 158 Chippy Food Van
263 MR( 5479, 20, 15, 55, CT_PAPER , LandscapeTypes({ A })), // 159 Uhl Paper Truck
264 MR( 21185, 20, 15, 55, CT_PAPER , LandscapeTypes({ A })), // 160 Balogh Paper Truck
265 MR( 31777, 20, 15, 85, CT_PAPER , LandscapeTypes({ A })), // 161 MPS Paper Truck
266 MR( 5479, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({ S })), // 162 MPS Copper Ore Truck
267 MR( 20820, 20, 15, 55, CT_COPPER_ORE , LandscapeTypes({ S })), // 163 Uhl Copper Ore Truck
268 MR( 33238, 20, 15, 85, CT_COPPER_ORE , LandscapeTypes({ S })), // 164 Goss Copper Ore Truck
269 MR( 5479, 20, 15, 55, CT_WATER , LandscapeTypes({ S })), // 165 Uhl Water Tanker
270 MR( 20970, 20, 15, 55, CT_WATER , LandscapeTypes({ S })), // 166 Balogh Water Tanker
271 MR( 33388, 20, 15, 85, CT_WATER , LandscapeTypes({ S })), // 167 MPS Water Tanker
272 MR( 5479, 20, 15, 55, CT_FRUIT , LandscapeTypes({ S })), // 168 Balogh Fruit Truck
273 MR( 21335, 20, 15, 55, CT_FRUIT , LandscapeTypes({ S })), // 169 Uhl Fruit Truck
274 MR( 33753, 20, 15, 85, CT_FRUIT , LandscapeTypes({ S })), // 170 Kelling Fruit Truck
275 MR( 5479, 20, 15, 55, CT_RUBBER , LandscapeTypes({ S })), // 171 Balogh Rubber Truck
276 MR( 20604, 20, 15, 55, CT_RUBBER , LandscapeTypes({ S })), // 172 Uhl Rubber Truck
277 MR( 33023, 20, 15, 85, CT_RUBBER , LandscapeTypes({ S })), // 173 RMT Rubber Truck
278 MR( 5479, 20, 15, 55, CT_SUGAR , LandscapeTypes({ Y})), // 174 MightyMover Sugar Truck
279 MR( 19724, 20, 15, 55, CT_SUGAR , LandscapeTypes({ Y})), // 175 Powernaught Sugar Truck
280 MR( 33238, 20, 15, 85, CT_SUGAR , LandscapeTypes({ Y})), // 176 Wizzowow Sugar Truck
281 MR( 5479, 20, 15, 55, CT_COLA , LandscapeTypes({ Y})), // 177 MightyMover Cola Truck
282 MR( 20089, 20, 15, 55, CT_COLA , LandscapeTypes({ Y})), // 178 Powernaught Cola Truck
283 MR( 33603, 20, 15, 85, CT_COLA , LandscapeTypes({ Y})), // 179 Wizzowow Cola Truck
284 MR( 5479, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 180 MightyMover Candyfloss Truck
285 MR( 20454, 20, 15, 55, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 181 Powernaught Candyfloss Truck
286 MR( 33969, 20, 15, 85, CT_COTTON_CANDY, LandscapeTypes({ Y})), // 182 Wizzowow Candyfloss Truck
287 MR( 5479, 20, 15, 55, CT_TOFFEE , LandscapeTypes({ Y})), // 183 MightyMover Toffee Truck
288 MR( 20820, 20, 15, 55, CT_TOFFEE , LandscapeTypes({ Y})), // 184 Powernaught Toffee Truck
289 MR( 34334, 20, 15, 85, CT_TOFFEE , LandscapeTypes({ Y})), // 185 Wizzowow Toffee Truck
290 MR( 5479, 20, 15, 55, CT_TOYS , LandscapeTypes({ Y})), // 186 MightyMover Toy Van
291 MR( 21185, 20, 15, 55, CT_TOYS , LandscapeTypes({ Y})), // 187 Powernaught Toy Van
292 MR( 34699, 20, 15, 85, CT_TOYS , LandscapeTypes({ Y})), // 188 Wizzowow Toy Van
293 MR( 5479, 20, 15, 55, CT_CANDY , LandscapeTypes({ Y})), // 189 MightyMover Sweet Truck
294 MR( 21550, 20, 15, 55, CT_CANDY , LandscapeTypes({ Y})), // 190 Powernaught Sweet Truck
295 MR( 35064, 20, 15, 85, CT_CANDY , LandscapeTypes({ Y})), // 191 Wizzowow Sweet Truck
296 MR( 5479, 20, 15, 55, CT_BATTERIES , LandscapeTypes({ Y})), // 192 MightyMover Battery Truck
297 MR( 19874, 20, 15, 55, CT_BATTERIES , LandscapeTypes({ Y})), // 193 Powernaught Battery Truck
298 MR( 35430, 20, 15, 85, CT_BATTERIES , LandscapeTypes({ Y})), // 194 Wizzowow Battery Truck
299 MR( 5479, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 195 MightyMover Fizzy Drink Truck
300 MR( 20239, 20, 15, 55, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 196 Powernaught Fizzy Drink Truck
301 MR( 35795, 20, 15, 85, CT_FIZZY_DRINKS, LandscapeTypes({ Y})), // 197 Wizzowow Fizzy Drink Truck
302 MR( 5479, 20, 15, 55, CT_PLASTIC , LandscapeTypes({ Y})), // 198 MightyMover Plastic Truck
303 MR( 20604, 20, 15, 55, CT_PLASTIC , LandscapeTypes({ Y})), // 199 Powernaught Plastic Truck
304 MR( 32873, 20, 15, 85, CT_PLASTIC , LandscapeTypes({ Y})), // 200 Wizzowow Plastic Truck
305 MR( 5479, 20, 15, 55, CT_BUBBLES , LandscapeTypes({ Y})), // 201 MightyMover Bubble Truck
306 MR( 20970, 20, 15, 55, CT_BUBBLES , LandscapeTypes({ Y})), // 202 Powernaught Bubble Truck
307 MR( 33023, 20, 15, 85, CT_BUBBLES , LandscapeTypes({ Y})), // 203 Wizzowow Bubble Truck
308 MS( 2922, 5, 30, 50, CT_OIL , LandscapeTypes({T,A,S })), // 204 MPS Oil Tanker
309 MS( 17167, 5, 30, 90, CT_OIL , LandscapeTypes({T,A,S })), // 205 CS-Inc. Oil Tanker
310 MS( 2192, 5, 30, 55, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 206 MPS Passenger Ferry
311 MS( 18628, 5, 30, 90, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 207 FFP Passenger Ferry
312 MS( 17257, 10, 25, 90, CT_PASSENGERS , LandscapeTypes({T,A,S })), // 208 Bakewell 300 Hovercraft
313 MS( 9587, 5, 30, 40, CT_PASSENGERS , LandscapeTypes({ Y})), // 209 Chugger-Chug Passenger Ferry
314 MS( 20544, 5, 30, 90, CT_PASSENGERS , LandscapeTypes({ Y})), // 210 Shivershake Passenger Ferry
315 MS( 2557, 5, 30, 55, CT_GOODS , LandscapeTypes({T,A,S })), // 211 Yate Cargo ship
316 MS( 19724, 5, 30, 98, CT_GOODS , LandscapeTypes({T,A,S })), // 212 Bakewell Cargo ship
317 MS( 9587, 5, 30, 45, CT_GOODS , LandscapeTypes({ Y})), // 213 Mightymover Cargo ship
318 MS( 22371, 5, 30, 90, CT_GOODS , LandscapeTypes({ Y})), // 214 Powernaut Cargo ship
319 MA( 2922, 20, 20, 20, LandscapeTypes({T,A,S })), // 215 Sampson U52
320 MA( 9922, 20, 24, 20, LandscapeTypes({T,A,S })), // 216 Coleman Count
321 MA( 12659, 20, 18, 20, LandscapeTypes({T,A,S })), // 217 FFP Dart
322 MA( 17652, 20, 25, 35, LandscapeTypes({T,A,S })), // 218 Yate Haugan
323 MA( 4929, 20, 30, 30, LandscapeTypes({T,A,S })), // 219 Bakewell Cotswald LB-3
324 MA( 13695, 20, 23, 25, LandscapeTypes({T,A,S })), // 220 Bakewell Luckett LB-8
325 MA( 16341, 20, 26, 30, LandscapeTypes({T,A,S })), // 221 Bakewell Luckett LB-9
326 MA( 21395, 20, 25, 30, LandscapeTypes({T,A,S })), // 222 Bakewell Luckett LB80
327 MA( 18263, 20, 20, 30, LandscapeTypes({T,A,S })), // 223 Bakewell Luckett LB-10
328 MA( 25233, 20, 25, 30, LandscapeTypes({T,A,S })), // 224 Bakewell Luckett LB-11
329 MA( 15371, 20, 22, 25, LandscapeTypes({T,A,S })), // 225 Yate Aerospace YAC 1-11
330 MA( 15461, 20, 25, 25, LandscapeTypes({T,A,S })), // 226 Darwin 100
331 MA( 16952, 20, 22, 25, LandscapeTypes({T,A,S })), // 227 Darwin 200
332 MA( 17227, 20, 25, 30, LandscapeTypes({T,A,S })), // 228 Darwin 300
333 MA( 22371, 20, 25, 35, LandscapeTypes({T,A,S })), // 229 Darwin 400
334 MA( 22341, 20, 25, 30, LandscapeTypes({T,A,S })), // 230 Darwin 500
335 MA( 27209, 20, 25, 30, LandscapeTypes({T,A,S })), // 231 Darwin 600
336 MA( 17988, 20, 20, 30, LandscapeTypes({T,A,S })), // 232 Guru Galaxy
337 MA( 18993, 20, 24, 35, LandscapeTypes({T,A,S })), // 233 Airtaxi A21
338 MA( 22401, 20, 24, 30, LandscapeTypes({T,A,S })), // 234 Airtaxi A31
339 MA( 24472, 20, 24, 30, LandscapeTypes({T,A,S })), // 235 Airtaxi A32
340 MA( 26724, 20, 24, 30, LandscapeTypes({T,A,S })), // 236 Airtaxi A33
341 MA( 22005, 20, 25, 30, LandscapeTypes({T,A,S })), // 237 Yate Aerospace YAe46
342 MA( 24107, 20, 20, 35, LandscapeTypes({T,A,S })), // 238 Dinger 100
343 MA( 29310, 20, 25, 60, LandscapeTypes({T,A,S })), // 239 AirTaxi A34-1000
344 MA( 35520, 20, 22, 30, LandscapeTypes({T,A,S })), // 240 Yate Z-Shuttle
345 MA( 36981, 20, 22, 30, LandscapeTypes({T,A,S })), // 241 Kelling K1
346 MA( 38807, 20, 22, 50, LandscapeTypes({T,A,S })), // 242 Kelling K6
347 MA( 42094, 20, 25, 30, LandscapeTypes({T,A,S })), // 243 Kelling K7
348 MA( 44651, 20, 23, 30, LandscapeTypes({T,A,S })), // 244 Darwin 700
349 MA( 40268, 20, 25, 30, LandscapeTypes({T,A,S })), // 245 FFP Hyperdart 2
350 MA( 33693, 20, 25, 50, LandscapeTypes({T,A,S })), // 246 Dinger 200
351 MA( 32963, 20, 20, 60, LandscapeTypes({T,A,S })), // 247 Dinger 1000
352 MA( 9222, 20, 20, 35, LandscapeTypes({ Y})), // 248 Ploddyphut 100
353 MA( 12874, 20, 20, 35, LandscapeTypes({ Y})), // 249 Ploddyphut 500
354 MA( 16892, 20, 20, 35, LandscapeTypes({ Y})), // 250 Flashbang X1
355 MA( 21275, 20, 20, 99, LandscapeTypes({ Y})), // 251 Juggerplane M1
356 MA( 23832, 20, 20, 99, LandscapeTypes({ Y})), // 252 Flashbang Wizzer
357 MA( 13575, 20, 20, 40, LandscapeTypes({T,A,S })), // 253 Tricario Helicopter
358 MA( 28215, 20, 20, 30, LandscapeTypes({T,A,S })), // 254 Guru X2 Helicopter
359 MA( 13575, 20, 20, 99, LandscapeTypes({ Y})), // 255 Powernaut Helicopter
360};
361#undef Y
362#undef S
363#undef A
364#undef T
365#undef MT
366#undef MW
367#undef MR
368#undef MS
369#undef MA
370
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
392#define S EC_STEAM
393#define D EC_DIESEL
394#define E EC_ELECTRIC
395#define N EC_MONORAIL
396#define V EC_MAGLEV
397/* Wagons always have engine type 0, i.e. steam. */
398#define A EC_STEAM
399
400#define R RAILTYPE_RAIL
401#define C RAILTYPE_ELECTRIC
402#define O RAILTYPE_MONO
403#define L RAILTYPE_MAGLEV
404
405#define RC_S PR_RUNNING_TRAIN_STEAM
406#define RC_D PR_RUNNING_TRAIN_DIESEL
407#define RC_E PR_RUNNING_TRAIN_ELECTRIC
408#define RC_W INVALID_PRICE
409
410static constexpr RailVehicleInfo _orig_rail_vehicle_info[] = {
411 /* image_index max_speed running_cost engclass
412 * | type | power | running_cost_class
413 * | | cost_factor | weight | | capacity
414 * | | | | | | | | | railtype
415 * | | | | | | | | | | | */
416 /* Rail */
417 RVI( 2, G, 7, 64, 300, 47, 50, RC_S, 0, R, S), // 0 Kirby Paul Tank (Steam)
418 RVI(19, G, 8, 80, 600, 65, 65, RC_D, 0, R, D), // 1 MJS 250 (Diesel)
419 RVI( 2, G, 10, 72, 400, 85, 90, RC_S, 0, R, S), // 2 Ploddyphut Choo-Choo
420 RVI( 0, G, 15, 96, 900, 130, 130, RC_S, 0, R, S), // 3 Powernaut Choo-Choo
421 RVI( 1, G, 19, 112, 1000, 140, 145, RC_S, 0, R, S), // 4 Mightymover Choo-Choo
422 RVI(12, G, 16, 120, 1400, 95, 125, RC_D, 0, R, D), // 5 Ploddyphut Diesel
423 RVI(14, G, 20, 152, 2000, 120, 135, RC_D, 0, R, D), // 6 Powernaut Diesel
424 RVI( 3, G, 14, 88, 1100, 145, 130, RC_S, 0, R, S), // 7 Wills 2-8-0 (Steam)
425 RVI( 0, G, 13, 112, 1000, 131, 120, RC_S, 0, R, S), // 8 Chaney 'Jubilee' (Steam)
426 RVI( 1, G, 19, 128, 1200, 162, 140, RC_S, 0, R, S), // 9 Ginzu 'A4' (Steam)
427 RVI( 0, G, 22, 144, 1600, 170, 130, RC_S, 0, R, S), // 10 SH '8P' (Steam)
428 RVI( 8, M, 11, 112, 600, 32, 85, RC_D, 38, R, D), // 11 Manley-Morel DMU (Diesel)
429 RVI(10, M, 14, 120, 700, 38, 70, RC_D, 40, R, D), // 12 'Dash' (Diesel)
430 RVI( 4, G, 15, 128, 1250, 72, 95, RC_D, 0, R, D), // 13 SH/Hendry '25' (Diesel)
431 RVI( 5, G, 17, 144, 1750, 101, 120, RC_D, 0, R, D), // 14 UU '37' (Diesel)
432 RVI( 4, G, 18, 160, 2580, 112, 140, RC_D, 0, R, D), // 15 Floss '47' (Diesel)
433 RVI(14, G, 23, 96, 4000, 150, 135, RC_D, 0, R, D), // 16 CS 4000 (Diesel)
434 RVI(12, G, 16, 112, 2400, 120, 105, RC_D, 0, R, D), // 17 CS 2400 (Diesel)
435 RVI(13, G, 30, 112, 6600, 207, 155, RC_D, 0, R, D), // 18 Centennial (Diesel)
436 RVI(15, G, 18, 104, 1500, 110, 105, RC_D, 0, R, D), // 19 Kelling 3100 (Diesel)
437 RVI(16, M, 35, 160, 3500, 95, 205, RC_D, 0, R, D), // 20 Turner Turbo (Diesel)
438 RVI(18, G, 21, 104, 2200, 120, 145, RC_D, 0, R, D), // 21 MJS 1000 (Diesel)
439 RVI( 6, M, 20, 200, 4500, 70, 190, RC_D, 4, R, D), // 22 SH '125' (Diesel)
440 RVI(20, G, 26, 160, 3600, 84, 180, RC_E, 0, C, E), // 23 SH '30' (Electric)
441 RVI(20, G, 30, 176, 5000, 82, 205, RC_E, 0, C, E), // 24 SH '40' (Electric)
442 RVI(21, M, 40, 240, 7000, 90, 240, RC_E, 0, C, E), // 25 'T.I.M.' (Electric)
443 RVI(23, M, 43, 264, 8000, 95, 250, RC_E, 0, C, E), // 26 'AsiaStar' (Electric)
444 RVI(33, W, 247, 0, 0, 25, 0, RC_W, 40, R, A), // 27 Passenger Carriage
445 RVI(35, W, 228, 0, 0, 21, 0, RC_W, 30, R, A), // 28 Mail Van
446 RVI(34, W, 176, 0, 0, 18, 0, RC_W, 30, R, A), // 29 Coal Truck
447 RVI(36, W, 200, 0, 0, 24, 0, RC_W, 30, R, A), // 30 Oil Tanker
448 RVI(37, W, 192, 0, 0, 20, 0, RC_W, 25, R, A), // 31 Livestock Van
449 RVI(38, W, 190, 0, 0, 21, 0, RC_W, 25, R, A), // 32 Goods Van
450 RVI(39, W, 182, 0, 0, 19, 0, RC_W, 30, R, A), // 33 Grain Hopper
451 RVI(40, W, 181, 0, 0, 16, 0, RC_W, 30, R, A), // 34 Wood Truck
452 RVI(41, W, 179, 0, 0, 19, 0, RC_W, 30, R, A), // 35 Iron Ore Hopper
453 RVI(42, W, 196, 0, 0, 18, 0, RC_W, 20, R, A), // 36 Steel Truck
454 RVI(43, W, 255, 0, 0, 30, 0, RC_W, 20, R, A), // 37 Armoured Van
455 RVI(44, W, 191, 0, 0, 22, 0, RC_W, 25, R, A), // 38 Food Van
456 RVI(45, W, 196, 0, 0, 18, 0, RC_W, 20, R, A), // 39 Paper Truck
457 RVI(46, W, 179, 0, 0, 19, 0, RC_W, 30, R, A), // 40 Copper Ore Hopper
458 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 25, R, A), // 41 Water Tanker
459 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 25, R, A), // 42 Fruit Truck
460 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 21, R, A), // 43 Rubber Truck
461 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 30, R, A), // 44 Sugar Truck
462 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 30, R, A), // 45 Candyfloss Hopper
463 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 30, R, A), // 46 Toffee Hopper
464 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 20, R, A), // 47 Bubble Van
465 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 25, R, A), // 48 Cola Tanker
466 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 25, R, A), // 49 Sweet Van
467 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 20, R, A), // 50 Toy Van
468 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 22, R, A), // 51 Battery Truck
469 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 25, R, A), // 52 Fizzy Drink Truck
470 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 30, R, A), // 53 Plastic Truck
471 /* Monorail */
472 RVI(25, G, 52, 304, 9000, 95, 230, RC_E, 0, O, N), // 54 'X2001' (Electric)
473 RVI(26, M, 60, 336, 10000, 85, 240, RC_E, 25, O, N), // 55 'Millennium Z1' (Electric)
474 RVI(26, G, 53, 320, 5000, 95, 230, RC_E, 0, O, N), // 56 Wizzowow Z99
475 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 45, O, A), // 57 Passenger Carriage
476 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 35, O, A), // 58 Mail Van
477 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 35, O, A), // 59 Coal Truck
478 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 35, O, A), // 60 Oil Tanker
479 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 30, O, A), // 61 Livestock Van
480 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 30, O, A), // 62 Goods Van
481 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 35, O, A), // 63 Grain Hopper
482 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 35, O, A), // 64 Wood Truck
483 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 35, O, A), // 65 Iron Ore Hopper
484 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 25, O, A), // 66 Steel Truck
485 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 25, O, A), // 67 Armoured Van
486 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 30, O, A), // 68 Food Van
487 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 25, O, A), // 69 Paper Truck
488 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 35, O, A), // 70 Copper Ore Hopper
489 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 30, O, A), // 71 Water Tanker
490 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 30, O, A), // 72 Fruit Truck
491 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 26, O, A), // 73 Rubber Truck
492 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 35, O, A), // 74 Sugar Truck
493 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 35, O, A), // 75 Candyfloss Hopper
494 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 35, O, A), // 76 Toffee Hopper
495 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 25, O, A), // 77 Bubble Van
496 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 30, O, A), // 78 Cola Tanker
497 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 30, O, A), // 79 Sweet Van
498 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 25, O, A), // 80 Toy Van
499 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 27, O, A), // 81 Battery Truck
500 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 30, O, A), // 82 Fizzy Drink Truck
501 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 35, O, A), // 83 Plastic Truck
502 /* Maglev */
503 RVI(28, G, 70, 400, 10000, 105, 250, RC_E, 0, L, V), // 84 Lev1 'Leviathan' (Electric)
504 RVI(29, G, 74, 448, 12000, 120, 253, RC_E, 0, L, V), // 85 Lev2 'Cyclops' (Electric)
505 RVI(30, G, 82, 480, 15000, 130, 254, RC_E, 0, L, V), // 86 Lev3 'Pegasus' (Electric)
506 RVI(31, M, 95, 640, 20000, 150, 255, RC_E, 0, L, V), // 87 Lev4 'Chimaera' (Electric)
507 RVI(28, G, 70, 480, 10000, 120, 250, RC_E, 0, L, V), // 88 Wizzowow Rocketeer
508 RVI(60, W, 247, 0, 0, 25, 0, RC_W, 47, L, A), // 89 Passenger Carriage
509 RVI(62, W, 228, 0, 0, 21, 0, RC_W, 37, L, A), // 90 Mail Van
510 RVI(61, W, 176, 0, 0, 18, 0, RC_W, 37, L, A), // 91 Coal Truck
511 RVI(63, W, 200, 0, 0, 24, 0, RC_W, 37, L, A), // 92 Oil Tanker
512 RVI(64, W, 192, 0, 0, 20, 0, RC_W, 32, L, A), // 93 Livestock Van
513 RVI(65, W, 190, 0, 0, 21, 0, RC_W, 32, L, A), // 94 Goods Van
514 RVI(66, W, 182, 0, 0, 19, 0, RC_W, 37, L, A), // 95 Grain Hopper
515 RVI(67, W, 181, 0, 0, 16, 0, RC_W, 37, L, A), // 96 Wood Truck
516 RVI(68, W, 179, 0, 0, 19, 0, RC_W, 37, L, A), // 97 Iron Ore Hopper
517 RVI(69, W, 196, 0, 0, 18, 0, RC_W, 27, L, A), // 98 Steel Truck
518 RVI(70, W, 255, 0, 0, 30, 0, RC_W, 27, L, A), // 99 Armoured Van
519 RVI(71, W, 191, 0, 0, 22, 0, RC_W, 32, L, A), // 100 Food Van
520 RVI(72, W, 196, 0, 0, 18, 0, RC_W, 27, L, A), // 101 Paper Truck
521 RVI(73, W, 179, 0, 0, 19, 0, RC_W, 37, L, A), // 102 Copper Ore Hopper
522 RVI(47, W, 199, 0, 0, 25, 0, RC_W, 32, L, A), // 103 Water Tanker
523 RVI(48, W, 182, 0, 0, 18, 0, RC_W, 32, L, A), // 104 Fruit Truck
524 RVI(49, W, 185, 0, 0, 19, 0, RC_W, 28, L, A), // 105 Rubber Truck
525 RVI(50, W, 176, 0, 0, 19, 0, RC_W, 37, L, A), // 106 Sugar Truck
526 RVI(51, W, 178, 0, 0, 20, 0, RC_W, 37, L, A), // 107 Candyfloss Hopper
527 RVI(52, W, 192, 0, 0, 20, 0, RC_W, 37, L, A), // 108 Toffee Hopper
528 RVI(53, W, 190, 0, 0, 21, 0, RC_W, 27, L, A), // 109 Bubble Van
529 RVI(54, W, 182, 0, 0, 24, 0, RC_W, 32, L, A), // 110 Cola Tanker
530 RVI(55, W, 181, 0, 0, 21, 0, RC_W, 32, L, A), // 111 Sweet Van
531 RVI(56, W, 183, 0, 0, 21, 0, RC_W, 27, L, A), // 112 Toy Van
532 RVI(57, W, 196, 0, 0, 18, 0, RC_W, 29, L, A), // 113 Battery Truck
533 RVI(58, W, 193, 0, 0, 18, 0, RC_W, 32, L, A), // 114 Fizzy Drink Truck
534 RVI(59, W, 191, 0, 0, 18, 0, RC_W, 37, L, A), // 115 Plastic Truck
535};
536#undef RC_W
537#undef RC_E
538#undef RC_D
539#undef RC_S
540#undef L
541#undef O
542#undef C
543#undef R
544#undef V
545#undef N
546#undef E
547#undef D
548#undef S
549#undef G
550#undef W
551#undef M
552#undef RVI
553
566#define SVI(a, b, c, d, e, f, g, h) { a, b, f, c, d, e, g, h, VE_DEFAULT, 0, 0 }
567static constexpr ShipVehicleInfo _orig_ship_vehicle_info[] = {
568 /* image_index max_speed sfx refittable
569 * | cost_factor capacity | |
570 * | | acceleration running_cost |
571 * | | | | | | | | */
572 SVI( 1, 160, 1, 48, 220, 140, SND_06_DEPARTURE_CARGO_SHIP, 0 ), // 0 MPS Oil Tanker
573 SVI( 1, 176, 1, 80, 350, 125, SND_06_DEPARTURE_CARGO_SHIP, 0 ), // 1 CS-Inc. Oil Tanker
574 SVI( 2, 96, 1, 64, 100, 90, SND_07_DEPARTURE_FERRY, 0 ), // 2 MPS Passenger Ferry
575 SVI( 2, 112, 1, 128, 130, 80, SND_07_DEPARTURE_FERRY, 0 ), // 3 FFP Passenger Ferry
576 SVI( 3, 148, 1, 224, 100, 190, SND_07_DEPARTURE_FERRY, 0 ), // 4 Bakewell 300 Hovercraft
577 SVI( 2, 96, 1, 64, 100, 90, SND_07_DEPARTURE_FERRY, 0 ), // 5 Chugger-Chug Passenger Ferry
578 SVI( 2, 112, 1, 128, 130, 80, SND_07_DEPARTURE_FERRY, 0 ), // 6 Shivershake Passenger Ferry
579 SVI( 0, 128, 1, 48, 160, 150, SND_06_DEPARTURE_CARGO_SHIP, 1 ), // 7 Yate Cargo ship
580 SVI( 0, 144, 1, 80, 190, 113, SND_06_DEPARTURE_CARGO_SHIP, 1 ), // 8 Bakewell Cargo ship
581 SVI( 0, 128, 1, 48, 160, 150, SND_06_DEPARTURE_CARGO_SHIP, 1 ), // 9 Mightymover Cargo ship
582 SVI( 0, 144, 1, 80, 190, 113, SND_06_DEPARTURE_CARGO_SHIP, 1 ), // 10 Powernaut Cargo ship
583};
584#undef SVI
585
599#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, (g * 128) / 10, f, h, i, 0 }
600#define H AIR_HELI
601#define P AIR_CTOL
602#define J AIR_CTOL | AIR_FAST
603static constexpr AircraftVehicleInfo _orig_aircraft_vehicle_info[] = {
604 /* image_index sfx acceleration
605 * | cost_factor | | max_speed
606 * | | running_cost | | mail_capacity
607 * | | | subtype | | | | passenger_capacity
608 * | | | | | | | | | */
609 AVI( 1, 14, 85, P, SND_08_TAKEOFF_PROPELLER, 18, 37, 4, 25 ), // 0 Sampson U52
610 AVI( 0, 15, 100, P, SND_08_TAKEOFF_PROPELLER, 20, 37, 8, 65 ), // 1 Coleman Count
611 AVI( 2, 16, 130, J, SND_09_TAKEOFF_JET, 35, 74, 10, 90 ), // 2 FFP Dart
612 AVI( 8, 75, 250, J, SND_3B_TAKEOFF_JET_FAST, 50, 181, 20, 100 ), // 3 Yate Haugan
613 AVI( 5, 15, 98, P, SND_08_TAKEOFF_PROPELLER, 20, 37, 6, 30 ), // 4 Bakewell Cotswald LB-3
614 AVI( 6, 18, 240, J, SND_09_TAKEOFF_JET, 40, 74, 30, 200 ), // 5 Bakewell Luckett LB-8
615 AVI( 2, 17, 150, P, SND_09_TAKEOFF_JET, 35, 74, 15, 100 ), // 6 Bakewell Luckett LB-9
616 AVI( 2, 18, 245, J, SND_09_TAKEOFF_JET, 40, 74, 30, 150 ), // 7 Bakewell Luckett LB80
617 AVI( 3, 19, 192, J, SND_09_TAKEOFF_JET, 40, 74, 40, 220 ), // 8 Bakewell Luckett LB-10
618 AVI( 3, 20, 190, J, SND_09_TAKEOFF_JET, 40, 74, 25, 230 ), // 9 Bakewell Luckett LB-11
619 AVI( 2, 16, 135, J, SND_09_TAKEOFF_JET, 35, 74, 10, 95 ), // 10 Yate Aerospace YAC 1-11
620 AVI( 2, 18, 240, J, SND_09_TAKEOFF_JET, 40, 74, 35, 170 ), // 11 Darwin 100
621 AVI( 4, 17, 155, J, SND_09_TAKEOFF_JET, 40, 74, 15, 110 ), // 12 Darwin 200
622 AVI( 7, 30, 253, J, SND_3D_TAKEOFF_JET_BIG, 40, 74, 50, 300 ), // 13 Darwin 300
623 AVI( 4, 18, 210, J, SND_09_TAKEOFF_JET, 40, 74, 25, 200 ), // 14 Darwin 400
624 AVI( 4, 19, 220, J, SND_09_TAKEOFF_JET, 40, 74, 25, 240 ), // 15 Darwin 500
625 AVI( 4, 27, 230, J, SND_09_TAKEOFF_JET, 40, 74, 40, 260 ), // 16 Darwin 600
626 AVI( 3, 25, 225, J, SND_09_TAKEOFF_JET, 40, 74, 35, 240 ), // 17 Guru Galaxy
627 AVI( 4, 20, 235, J, SND_09_TAKEOFF_JET, 40, 74, 30, 260 ), // 18 Airtaxi A21
628 AVI( 4, 19, 220, J, SND_09_TAKEOFF_JET, 40, 74, 25, 210 ), // 19 Airtaxi A31
629 AVI( 4, 18, 170, J, SND_09_TAKEOFF_JET, 40, 74, 20, 160 ), // 20 Airtaxi A32
630 AVI( 4, 26, 210, J, SND_09_TAKEOFF_JET, 40, 74, 20, 220 ), // 21 Airtaxi A33
631 AVI( 6, 16, 125, P, SND_09_TAKEOFF_JET, 50, 74, 10, 80 ), // 22 Yate Aerospace YAe46
632 AVI( 2, 17, 145, P, SND_09_TAKEOFF_JET, 40, 74, 10, 85 ), // 23 Dinger 100
633 AVI( 11, 16, 130, P, SND_09_TAKEOFF_JET, 40, 74, 10, 75 ), // 24 AirTaxi A34-1000
634 AVI( 10, 16, 149, P, SND_09_TAKEOFF_JET, 40, 74, 10, 85 ), // 25 Yate Z-Shuttle
635 AVI( 15, 17, 170, P, SND_09_TAKEOFF_JET, 40, 74, 18, 65 ), // 26 Kelling K1
636 AVI( 12, 18, 210, J, SND_09_TAKEOFF_JET, 40, 74, 25, 110 ), // 27 Kelling K6
637 AVI( 13, 20, 230, J, SND_09_TAKEOFF_JET, 40, 74, 60, 180 ), // 28 Kelling K7
638 AVI( 14, 21, 220, J, SND_09_TAKEOFF_JET, 40, 74, 65, 150 ), // 29 Darwin 700
639 AVI( 16, 19, 160, J, SND_09_TAKEOFF_JET, 40, 181, 45, 85 ), // 30 FFP Hyperdart 2
640 AVI( 17, 24, 248, J, SND_3D_TAKEOFF_JET_BIG, 40, 74, 80, 400 ), // 31 Dinger 200
641 AVI( 18, 80, 251, J, SND_3B_TAKEOFF_JET_FAST, 50, 181, 45, 130 ), // 32 Dinger 1000
642 AVI( 20, 13, 85, P, SND_45_TAKEOFF_PROPELLER_TOYLAND_1, 18, 37, 5, 25 ), // 33 Ploddyphut 100
643 AVI( 21, 18, 100, P, SND_46_TAKEOFF_PROPELLER_TOYLAND_2, 20, 37, 9, 60 ), // 34 Ploddyphut 500
644 AVI( 22, 25, 140, P, SND_09_TAKEOFF_JET, 40, 74, 12, 90 ), // 35 Flashbang X1
645 AVI( 23, 32, 220, J, SND_3D_TAKEOFF_JET_BIG, 40, 74, 40, 200 ), // 36 Juggerplane M1
646 AVI( 24, 80, 255, J, SND_3B_TAKEOFF_JET_FAST, 50, 181, 30, 100 ), // 37 Flashbang Wizzer
647 AVI( 9, 15, 81, H, SND_09_TAKEOFF_JET, 20, 25, 15, 40 ), // 38 Tricario Helicopter
648 AVI( 19, 17, 77, H, SND_09_TAKEOFF_JET, 20, 40, 20, 55 ), // 39 Guru X2 Helicopter
649 AVI( 25, 15, 80, H, SND_09_TAKEOFF_JET, 20, 25, 10, 40 ), // 40 Powernaut Helicopter
650};
651#undef J
652#undef P
653#undef H
654#undef AVI
655
670#define ROV(a, b, c, d, e, f, g, h) { a, b, c, PR_RUNNING_ROADVEH, d, e, f, g, h, 76, 0, VE_DEFAULT, 0, ROADTYPE_ROAD }
671static constexpr RoadVehicleInfo _orig_road_vehicle_info[] = {
672 /* image_index sfx max_speed power
673 * | cost_factor | | capacity |
674 * | | running_cost | | weight
675 * | | | | | | | |*/
676 ROV( 0, 120, 91, SND_19_DEPARTURE_OLD_RV_1, 112, 31, 42, 9), // 0 MPS Regal Bus
677 ROV( 17, 140, 128, SND_1C_DEPARTURE_OLD_BUS, 176, 35, 60, 12), // 1 Hereford Leopard Bus
678 ROV( 17, 150, 178, SND_1B_DEPARTURE_MODERN_BUS, 224, 37, 70, 15), // 2 Foster Bus
679 ROV( 34, 160, 240, SND_1B_DEPARTURE_MODERN_BUS, 255, 40, 100, 25), // 3 Foster MkII Superbus
680 ROV( 51, 120, 91, SND_3C_DEPARTURE_BUS_TOYLAND_1, 112, 30, 42, 9), // 4 Ploddyphut MkI Bus
681 ROV( 51, 140, 171, SND_3E_DEPARTURE_BUS_TOYLAND_2, 192, 35, 60, 15), // 5 Ploddyphut MkII Bus
682 ROV( 51, 160, 240, SND_3C_DEPARTURE_BUS_TOYLAND_1, 240, 38, 90, 25), // 6 Ploddyphut MkIII Bus
683 ROV( 1, 108, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 20, 38, 12), // 7 Balogh Coal Truck
684 ROV( 18, 128, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 8 Uhl Coal Truck
685 ROV( 35, 138, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 28, 69, 45), // 9 DW Coal Truck
686 ROV( 2, 115, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 22, 38, 12), // 10 MPS Mail Truck
687 ROV( 19, 135, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 28, 48, 22), // 11 Reynard Mail Truck
688 ROV( 36, 145, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 30, 69, 45), // 12 Perry Mail Truck
689 ROV( 57, 115, 90, SND_3E_DEPARTURE_BUS_TOYLAND_2, 96, 22, 38, 12), // 13 MightyMover Mail Truck
690 ROV( 57, 135, 168, SND_3C_DEPARTURE_BUS_TOYLAND_1, 176, 28, 48, 22), // 14 Powernaught Mail Truck
691 ROV( 57, 145, 240, SND_3E_DEPARTURE_BUS_TOYLAND_2, 224, 30, 69, 45), // 15 Wizzowow Mail Truck
692 ROV( 3, 110, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 21, 38, 12), // 16 Witcombe Oil Tanker
693 ROV( 20, 140, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 17 Foster Oil Tanker
694 ROV( 37, 150, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 27, 69, 45), // 18 Perry Oil Tanker
695 ROV( 4, 105, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 14, 38, 12), // 19 Talbott Livestock Van
696 ROV( 21, 130, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 16, 48, 22), // 20 Uhl Livestock Van
697 ROV( 38, 140, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 18, 69, 45), // 21 Foster Livestock Van
698 ROV( 5, 107, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 14, 38, 12), // 22 Balogh Goods Truck
699 ROV( 22, 130, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 16, 48, 22), // 23 Craighead Goods Truck
700 ROV( 39, 140, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 18, 69, 45), // 24 Goss Goods Truck
701 ROV( 6, 114, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 20, 38, 12), // 25 Hereford Grain Truck
702 ROV( 23, 133, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 26 Thomas Grain Truck
703 ROV( 40, 143, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 30, 69, 45), // 27 Goss Grain Truck
704 ROV( 7, 118, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 20, 38, 12), // 28 Witcombe Wood Truck
705 ROV( 24, 137, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 22, 48, 22), // 29 Foster Wood Truck
706 ROV( 41, 147, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 24, 69, 45), // 30 Moreland Wood Truck
707 ROV( 8, 121, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 22, 38, 12), // 31 MPS Iron Ore Truck
708 ROV( 25, 140, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 32 Uhl Iron Ore Truck
709 ROV( 42, 150, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 27, 69, 45), // 33 Chippy Iron Ore Truck
710 ROV( 9, 112, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 15, 38, 12), // 34 Balogh Steel Truck
711 ROV( 26, 135, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 18, 48, 22), // 35 Uhl Steel Truck
712 ROV( 43, 145, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 20, 69, 45), // 36 Kelling Steel Truck
713 ROV( 10, 145, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 12, 38, 12), // 37 Balogh Armoured Truck
714 ROV( 27, 170, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 15, 48, 22), // 38 Uhl Armoured Truck
715 ROV( 44, 180, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 16, 69, 45), // 39 Foster Armoured Truck
716 ROV( 11, 112, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 17, 38, 12), // 40 Foster Food Van
717 ROV( 28, 134, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 20, 48, 22), // 41 Perry Food Van
718 ROV( 45, 144, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 22, 69, 45), // 42 Chippy Food Van
719 ROV( 12, 112, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 15, 38, 12), // 43 Uhl Paper Truck
720 ROV( 29, 135, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 18, 48, 22), // 44 Balogh Paper Truck
721 ROV( 46, 145, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 20, 69, 45), // 45 MPS Paper Truck
722 ROV( 13, 121, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 22, 38, 12), // 46 MPS Copper Ore Truck
723 ROV( 30, 140, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 47 Uhl Copper Ore Truck
724 ROV( 47, 150, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 27, 69, 45), // 48 Goss Copper Ore Truck
725 ROV( 14, 111, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 21, 38, 12), // 49 Uhl Water Tanker
726 ROV( 31, 141, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 25, 48, 22), // 50 Balogh Water Tanker
727 ROV( 48, 151, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 27, 69, 45), // 51 MPS Water Tanker
728 ROV( 15, 118, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 18, 38, 12), // 52 Balogh Fruit Truck
729 ROV( 32, 148, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 20, 48, 22), // 53 Uhl Fruit Truck
730 ROV( 49, 158, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 23, 69, 45), // 54 Kelling Fruit Truck
731 ROV( 16, 117, 90, SND_19_DEPARTURE_OLD_RV_1, 96, 17, 38, 12), // 55 Balogh Rubber Truck
732 ROV( 33, 147, 168, SND_19_DEPARTURE_OLD_RV_1, 176, 19, 48, 22), // 56 Uhl Rubber Truck
733 ROV( 50, 157, 240, SND_19_DEPARTURE_OLD_RV_1, 224, 22, 69, 45), // 57 RMT Rubber Truck
734 ROV( 52, 117, 90, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 96, 17, 38, 12), // 58 MightyMover Sugar Truck
735 ROV( 52, 147, 168, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 176, 19, 48, 22), // 59 Powernaught Sugar Truck
736 ROV( 52, 157, 240, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 224, 22, 69, 45), // 60 Wizzowow Sugar Truck
737 ROV( 53, 117, 90, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 96, 17, 38, 12), // 61 MightyMover Cola Truck
738 ROV( 53, 147, 168, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 176, 19, 48, 22), // 62 Powernaught Cola Truck
739 ROV( 53, 157, 240, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 224, 22, 69, 45), // 63 Wizzowow Cola Truck
740 ROV( 54, 117, 90, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 96, 17, 38, 12), // 64 MightyMover Candyfloss Truck
741 ROV( 54, 147, 168, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 176, 19, 48, 22), // 65 Powernaught Candyfloss Truck
742 ROV( 54, 157, 240, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 224, 22, 69, 45), // 66 Wizzowow Candyfloss Truck
743 ROV( 55, 117, 90, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 96, 17, 38, 12), // 67 MightyMover Toffee Truck
744 ROV( 55, 147, 168, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 176, 19, 48, 22), // 68 Powernaught Toffee Truck
745 ROV( 55, 157, 240, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 224, 22, 69, 45), // 69 Wizzowow Toffee Truck
746 ROV( 56, 117, 90, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 96, 17, 38, 12), // 70 MightyMover Toy Van
747 ROV( 56, 147, 168, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 176, 19, 48, 22), // 71 Powernaught Toy Van
748 ROV( 56, 157, 240, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 224, 22, 69, 45), // 72 Wizzowow Toy Van
749 ROV( 58, 117, 90, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 96, 17, 38, 12), // 73 MightyMover Sweet Truck
750 ROV( 58, 147, 168, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 176, 19, 48, 22), // 74 Powernaught Sweet Truck
751 ROV( 58, 157, 240, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 224, 22, 69, 45), // 75 Wizzowow Sweet Truck
752 ROV( 59, 117, 90, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 96, 17, 38, 12), // 76 MightyMover Battery Truck
753 ROV( 59, 147, 168, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 176, 19, 48, 22), // 77 Powernaught Battery Truck
754 ROV( 59, 157, 240, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 224, 22, 69, 45), // 78 Wizzowow Battery Truck
755 ROV( 60, 117, 90, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 96, 17, 38, 12), // 79 MightyMover Fizzy Drink Truck
756 ROV( 60, 147, 168, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 176, 19, 48, 22), // 80 Powernaught Fizzy Drink Truck
757 ROV( 60, 157, 240, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 224, 22, 69, 45), // 81 Wizzowow Fizzy Drink Truck
758 ROV( 61, 117, 90, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 96, 17, 38, 12), // 82 MightyMover Plastic Truck
759 ROV( 61, 147, 168, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 176, 19, 48, 22), // 83 Powernaught Plastic Truck
760 ROV( 61, 157, 240, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 224, 22, 69, 45), // 84 Wizzowow Plastic Truck
761 ROV( 62, 117, 90, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 96, 17, 38, 12), // 85 MightyMover Bubble Truck
762 ROV( 62, 147, 168, SND_3F_DEPARTURE_TRUCK_TOYLAND_1, 176, 19, 48, 22), // 86 Powernaught Bubble Truck
763 ROV( 62, 157, 240, SND_40_DEPARTURE_TRUCK_TOYLAND_2, 224, 22, 69, 45), // 87 Wizzowow Bubble Truck
764};
765#undef ROV
766
767#endif /* ENGINES_H */
static constexpr CargoLabel CT_NONE
Dummy label for engines that carry no cargo; they actually carry 0 passengers.
Definition cargo_type.h:68
@ MCT_GRAIN_WHEAT_MAIZE
Cargo can be grain, wheat or maize.
Definition cargo_type.h:84
@ MCT_VALUABLES_GOLD_DIAMONDS
Cargo can be valuables, gold or diamonds.
Definition cargo_type.h:85
static constexpr CargoLabel CT_PASSENGERS
Available types of cargo Labels may be re-used between different climates.
Definition cargo_type.h:29
#define MA(a, b, c, d, e)
Writes the properties of an aeroplane into the EngineInfo struct.
Definition engines.h:88
#define MT(a, b, c, d, e, f)
Writes the properties of a train into the EngineInfo struct.
Definition engines.h:26
#define AVI(a, b, c, d, e, f, g, h, i)
Writes the properties of an aircraft into the AircraftVehicleInfo struct.
Definition engines.h:599
#define MS(a, b, c, d, e, f)
Writes the properties of a ship into the EngineInfo struct.
Definition engines.h:77
#define MR(a, b, c, d, e, f)
Writes the properties of a road vehicle into the EngineInfo struct.
Definition engines.h:65
#define SVI(a, b, c, d, e, f, g, h)
Writes the properties of a ship into the ShipVehicleInfo struct.
Definition engines.h:566
#define ROV(a, b, c, d, e, f, g, h)
Writes the properties of a road vehicle into the RoadVehicleInfo struct.
Definition engines.h:670
#define MM(a, b, c, d, e, f)
Writes the properties of a multiple-unit train into the EngineInfo struct.
Definition engines.h:39
#define RVI(a, b, c, d, e, f, g, h, i, j, k)
Writes the properties of a rail vehicle into the RailVehicleInfo struct.
Definition engines.h:388
#define MW(a, b, c, d, e, f)
Writes the properties of a train carriage into the EngineInfo struct.
Definition engines.h:52
#define M(x)
Helper for creating a bitset of slopes.
Definition slope_type.h:83
@ SND_1B_DEPARTURE_MODERN_BUS
25 == 0x19 Station departure: modern bus (non-toyland)
Definition sound_type.h:72
@ SND_08_TAKEOFF_PROPELLER
6 == 0x06 Takeoff: propeller plane (non-toyland)
Definition sound_type.h:53
@ SND_19_DEPARTURE_OLD_RV_1
23 == 0x17 Station departure: truck and old bus (1) (non-toyland)
Definition sound_type.h:70
@ SND_3F_DEPARTURE_TRUCK_TOYLAND_1
63 == 0x3F Station departure: truck (1) (toyland)
Definition sound_type.h:110
@ SND_40_DEPARTURE_TRUCK_TOYLAND_2
64 == 0x40 Station departure: truck (2) (toyland)
Definition sound_type.h:111
@ SND_1C_DEPARTURE_OLD_BUS
26 == 0x1A Station departure: old bus (non-toyland)
Definition sound_type.h:73
@ SND_3E_DEPARTURE_BUS_TOYLAND_2
62 == 0x3E Station departure: bus (2) (toyland)
Definition sound_type.h:109
@ SND_07_DEPARTURE_FERRY
5 == 0x05 Station departure: passenger ships
Definition sound_type.h:52
@ SND_45_TAKEOFF_PROPELLER_TOYLAND_1
69 == 0x45 Takeoff: propeller plane (1) (toyland)
Definition sound_type.h:116
@ SND_3B_TAKEOFF_JET_FAST
59 == 0x3B Takeoff: supersonic plane (fast)
Definition sound_type.h:106
@ SND_06_DEPARTURE_CARGO_SHIP
4 == 0x04 Station departure: cargo ships
Definition sound_type.h:51
@ SND_3C_DEPARTURE_BUS_TOYLAND_1
60 == 0x3C Station departure: bus (1) (toyland)
Definition sound_type.h:107
@ SND_46_TAKEOFF_PROPELLER_TOYLAND_2
70 == 0x46 Takeoff: propeller plane (2) (toyland)
Definition sound_type.h:117
@ SND_09_TAKEOFF_JET
7 == 0x07 Takeoff: regular jet plane
Definition sound_type.h:54
@ SND_3D_TAKEOFF_JET_BIG
61 == 0x3D Takeoff: huge jet plane (high capacity)
Definition sound_type.h:108
Information about a aircraft vehicle.
Information about a vehicle.
Information about a rail vehicle.
Definition engine_type.h:74
Information about a road vehicle.
Information about a ship vehicle.
Definition engine_type.h:99