OpenTTD/src/table/engines.h

720 lines
44 KiB
C

/* $Id$ */
/** @file table/engines.h
* This file contains all the data for vehicles
*/
#ifndef ENGINES_H
#define ENGINES_H
enum {
RC_W = 0xFF, ///< Running cost price index (out of range) of wagons
RC_S = 0x2A, ///< Running cost price index of steam
RC_D = 0x2B, ///< Running cost price index of diesel
RC_E = 0x2C, ///< Running cost price index of electric
RC_R = 0x2E, ///< Running cost price index of road vehicles
};
/** Writes the properties of a train or road vehicle into the EngineInfo struct.
* @see EngineInfo
* @param a Introduction date
* @param b decay speed
* @param c life length
* @param d base life
* @param e Bitmask of the climates
* @note the 0x80 in parameter b sets the "is carriage bit"
* @note the 5 between d and e is the load amount
*/
#define MK(a, b, c, d, e) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, c, d, b, 5, e, 0, 8, 0, 0, 0, STR_EMPTY }
/** Writes the properties of a train carriage into the EngineInfo struct.
* @param a Introduction date
* @param b decay speed
* @param c life length
* @param d base life
* @param e Bitmask of the climates
* @see MK
* @note the 5 between d and e is the load amount
*/
#define MW(a, b, c, d, e) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, c, d, b, 5, e, 0, 8, 0, 0, 0, STR_EMPTY }
/** Writes the properties of a ship into the EngineInfo struct.
* @param a Introduction date
* @param b decay speed
* @param c life length
* @param d base life
* @param e Bitmask of the climates
* @see MK
* @note the 10 between d and e is the load amount
*/
#define MS(a, b, c, d, e) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, c, d, b, 10, e, 0, 8, 0, 0, 0, STR_EMPTY }
/** Writes the properties of an aeroplane into the EngineInfo struct.
* @param a Introduction date
* @param b decay speed
* @param c life length
* @param d base life
* @param e Bitmask of the climates
* @see MK
* @note the 20 between d and e is the load amount
*/
#define MA(a, b, c, d, e) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, c, d, b, 20, e, 0, 8, 0, 0, 0, STR_EMPTY }
/* Climates
* T = Temperate
* A = Arctic
* S = Sub-Tropic
* Y = Toyland */
#define T 1
#define A 2
#define S 4
#define Y 8
static const EngineInfo _orig_engine_info[] = {
MK( 1827, 20, 15, 30, T ), // 0 Kirby Paul Tank (Steam)
MK( 12784, 20, 22, 30, A|S ), // 1 MJS 250 (Diesel)
MK( 9497, 20, 20, 50, Y), // 2 Ploddyphut Choo-Choo
MK( 11688, 20, 20, 30, Y), // 3 Powernaut Choo-Choo
MK( 16802, 20, 20, 30, Y), // 4 Mightymover Choo-Choo
MK( 18993, 20, 20, 30, Y), // 5 Ploddyphut Diesel
MK( 20820, 20, 20, 30, Y), // 6 Powernaut Diesel
MK( 8766, 20, 20, 30, A|S ), // 7 Wills 2-8-0 (Steam)
MK( 5114, 20, 21, 30, T ), // 8 Chaney 'Jubilee' (Steam)
MK( 5479, 20, 20, 30, T ), // 9 Ginzu 'A4' (Steam)
MK( 12419, 20, 23, 25, T ), // 10 SH '8P' (Steam)
MK( 13149, 20, 12, 30, T ), // 11 Manley-Morel DMU (Diesel)
MK( 23376, 20, 15, 35, T ), // 12 'Dash' (Diesel)
MK( 14976, 20, 18, 28, T ), // 13 SH/Hendry '25' (Diesel)
MK( 14245, 20, 20, 30, T ), // 14 UU '37' (Diesel)
MK( 15341, 20, 22, 33, T ), // 15 Floss '47' (Diesel)
MK( 14976, 20, 20, 25, A|S ), // 16 CS 4000 (Diesel)
MK( 16437, 20, 20, 30, A|S ), // 17 CS 2400 (Diesel)
MK( 18993, 20, 22, 30, A|S ), // 18 Centennial (Diesel)
MK( 13880, 20, 22, 30, A|S ), // 19 Kelling 3100 (Diesel)
MK( 20454, 20, 22, 30, A|S ), // 20 Turner Turbo (Diesel)
MK( 16071, 20, 22, 30, A|S ), // 21 MJS 1000 (Diesel)
MK( 20820, 20, 20, 25, T ), // 22 SH '125' (Diesel)
MK( 16437, 20, 23, 30, T ), // 23 SH '30' (Electric)
MK( 19359, 20, 23, 80, T ), // 24 SH '40' (Electric)
MK( 23376, 20, 25, 30, T ), // 25 'T.I.M.' (Electric)
MK( 26298, 20, 25, 50, T ), // 26 'AsiaStar' (Electric)
MW( 1827, 20, 20, 50, T|A|S|Y), // 27 Passenger Carriage
MW( 1827, 20, 20, 50, T|A|S|Y), // 28 Mail Van
MW( 1827, 20, 20, 50, T|A ), // 29 Coal Truck
MW( 1827, 20, 20, 50, T|A|S ), // 30 Oil Tanker
MW( 1827, 20, 20, 50, T|A ), // 31 Livestock Van
MW( 1827, 20, 20, 50, T|A|S ), // 32 Goods Van
MW( 1827, 20, 20, 50, T|A|S ), // 33 Grain Hopper
MW( 1827, 20, 20, 50, T|A|S ), // 34 Wood Truck
MW( 1827, 20, 20, 50, T ), // 35 Iron Ore Hopper
MW( 1827, 20, 20, 50, T ), // 36 Steel Truck
MW( 1827, 20, 20, 50, T|A|S ), // 37 Armoured Van
MW( 1827, 20, 20, 50, A|S ), // 38 Food Van
MW( 1827, 20, 20, 50, A ), // 39 Paper Truck
MW( 1827, 20, 20, 50, S ), // 40 Copper Ore Hopper
MW( 1827, 20, 20, 50, S ), // 41 Water Tanker
MW( 1827, 20, 20, 50, S ), // 42 Fruit Truck
MW( 1827, 20, 20, 50, S ), // 43 Rubber Truck
MW( 1827, 20, 20, 50, Y), // 44 Sugar Truck
MW( 1827, 20, 20, 50, Y), // 45 Candyfloss Hopper
MW( 1827, 20, 20, 50, Y), // 46 Toffee Hopper
MW( 1827, 20, 20, 50, Y), // 47 Bubble Van
MW( 1827, 20, 20, 50, Y), // 48 Cola Tanker
MW( 1827, 20, 20, 50, Y), // 49 Sweet Van
MW( 1827, 20, 20, 50, Y), // 50 Toy Van
MW( 1827, 20, 20, 50, Y), // 51 Battery Truck
MW( 1827, 20, 20, 50, Y), // 52 Fizzy Drink Truck
MW( 1827, 20, 20, 50, Y), // 53 Plastic Truck
MK( 28490, 20, 20, 50, T|A|S ), // 54 'X2001' (Electric)
MK( 31047, 20, 20, 50, T|A|S ), // 55 'Millennium Z1' (Electric)
MK( 28855, 20, 20, 50, Y), // 56 Wizzowow Z99
MW( 1827, 20, 20, 50, T|A|S|Y), // 57 Passenger Carriage
MW( 1827, 20, 20, 50, T|A|S|Y), // 58 Mail Van
MW( 1827, 20, 20, 50, T|A ), // 59 Coal Truck
MW( 1827, 20, 20, 50, T|A|S ), // 60 Oil Tanker
MW( 1827, 20, 20, 50, T|A ), // 61 Livestock Van
MW( 1827, 20, 20, 50, T|A|S ), // 62 Goods Van
MW( 1827, 20, 20, 50, T|A|S ), // 63 Grain Hopper
MW( 1827, 20, 20, 50, T|A|S ), // 64 Wood Truck
MW( 1827, 20, 20, 50, T ), // 65 Iron Ore Hopper
MW( 1827, 20, 20, 50, T ), // 66 Steel Truck
MW( 1827, 20, 20, 50, T|A|S ), // 67 Armoured Van
MW( 1827, 20, 20, 50, A|S ), // 68 Food Van
MW( 1827, 20, 20, 50, A ), // 69 Paper Truck
MW( 1827, 20, 20, 50, S ), // 70 Copper Ore Hopper
MW( 1827, 20, 20, 50, S ), // 71 Water Tanker
MW( 1827, 20, 20, 50, S ), // 72 Fruit Truck
MW( 1827, 20, 20, 50, S ), // 73 Rubber Truck
MW( 1827, 20, 20, 50, Y), // 74 Sugar Truck
MW( 1827, 20, 20, 50, Y), // 75 Candyfloss Hopper
MW( 1827, 20, 20, 50, Y), // 76 Toffee Hopper
MW( 1827, 20, 20, 50, Y), // 77 Bubble Van
MW( 1827, 20, 20, 50, Y), // 78 Cola Tanker
MW( 1827, 20, 20, 50, Y), // 79 Sweet Van
MW( 1827, 20, 20, 50, Y), // 80 Toy Van
MW( 1827, 20, 20, 50, Y), // 81 Battery Truck
MW( 1827, 20, 20, 50, Y), // 82 Fizzy Drink Truck
MW( 1827, 20, 20, 50, Y), // 83 Plastic Truck
MK( 36525, 20, 20, 50, T|A|S ), // 84 Lev1 'Leviathan' (Electric)
MK( 39447, 20, 20, 50, T|A|S ), // 85 Lev2 'Cyclops' (Electric)
MK( 42004, 20, 20, 50, T|A|S ), // 86 Lev3 'Pegasus' (Electric)
MK( 42735, 20, 20, 50, T|A|S ), // 87 Lev4 'Chimaera' (Electric)
MK( 36891, 20, 20, 60, Y), // 88 Wizzowow Rocketeer
MW( 1827, 20, 20, 50, T|A|S|Y), // 89 Passenger Carriage
MW( 1827, 20, 20, 50, T|A|S|Y), // 90 Mail Van
MW( 1827, 20, 20, 50, T|A ), // 91 Coal Truck
MW( 1827, 20, 20, 50, T|A|S ), // 92 Oil Tanker
MW( 1827, 20, 20, 50, T|A ), // 93 Livestock Van
MW( 1827, 20, 20, 50, T|A|S ), // 94 Goods Van
MW( 1827, 20, 20, 50, T|A|S ), // 95 Grain Hopper
MW( 1827, 20, 20, 50, T|A|S ), // 96 Wood Truck
MW( 1827, 20, 20, 50, T ), // 97 Iron Ore Hopper
MW( 1827, 20, 20, 50, T ), // 98 Steel Truck
MW( 1827, 20, 20, 50, T|A|S ), // 99 Armoured Van
MW( 1827, 20, 20, 50, A|S ), // 100 Food Van
MW( 1827, 20, 20, 50, A ), // 101 Paper Truck
MW( 1827, 20, 20, 50, S ), // 102 Copper Ore Hopper
MW( 1827, 20, 20, 50, S ), // 103 Water Tanker
MW( 1827, 20, 20, 50, S ), // 104 Fruit Truck
MW( 1827, 20, 20, 50, S ), // 105 Rubber Truck
MW( 1827, 20, 20, 50, Y), // 106 Sugar Truck
MW( 1827, 20, 20, 50, Y), // 107 Candyfloss Hopper
MW( 1827, 20, 20, 50, Y), // 108 Toffee Hopper
MW( 1827, 20, 20, 50, Y), // 109 Bubble Van
MW( 1827, 20, 20, 50, Y), // 110 Cola Tanker
MW( 1827, 20, 20, 50, Y), // 111 Sweet Van
MW( 1827, 20, 20, 50, Y), // 112 Toy Van
MW( 1827, 20, 20, 50, Y), // 113 Battery Truck
MW( 1827, 20, 20, 50, Y), // 114 Fizzy Drink Truck
MW( 1827, 20, 20, 50, Y), // 115 Plastic Truck
MK( 3378, 20, 12, 40, T|A|S ), // 116 MPS Regal Bus
MK( 16071, 20, 15, 30, T|A|S ), // 117 Hereford Leopard Bus
MK( 24107, 20, 15, 40, T|A|S ), // 118 Foster Bus
MK( 32142, 20, 15, 80, T|A|S ), // 119 Foster MkII Superbus
MK( 9132, 20, 15, 40, Y), // 120 Ploddyphut MkI Bus
MK( 18993, 20, 15, 40, Y), // 121 Ploddyphut MkII Bus
MK( 32873, 20, 15, 80, Y), // 122 Ploddyphut MkIII Bus
MK( 5479, 20, 15, 55, T|A ), // 123 Balogh Coal Truck
MK( 20089, 20, 15, 55, T|A ), // 124 Uhl Coal Truck
MK( 33969, 20, 15, 85, T|A ), // 125 DW Coal Truck
MK( 5479, 20, 15, 55, T|A|S ), // 126 MPS Mail Truck
MK( 21550, 20, 15, 55, T|A|S ), // 127 Reynard Mail Truck
MK( 35795, 20, 15, 85, T|A|S ), // 128 Perry Mail Truck
MK( 5479, 20, 15, 55, Y), // 129 MightyMover Mail Truck
MK( 21550, 20, 15, 55, Y), // 130 Powernaught Mail Truck
MK( 35795, 20, 15, 85, Y), // 131 Wizzowow Mail Truck
MK( 5479, 20, 15, 55, T|A|S ), // 132 Witcombe Oil Tanker
MK( 19359, 20, 15, 55, T|A|S ), // 133 Foster Oil Tanker
MK( 31047, 20, 15, 85, T|A|S ), // 134 Perry Oil Tanker
MK( 5479, 20, 15, 55, T|A ), // 135 Talbott Livestock Van
MK( 21915, 20, 15, 55, T|A ), // 136 Uhl Livestock Van
MK( 37256, 20, 15, 85, T|A ), // 137 Foster Livestock Van
MK( 5479, 20, 15, 55, T|A|S ), // 138 Balogh Goods Truck
MK( 19724, 20, 15, 55, T|A|S ), // 139 Craighead Goods Truck
MK( 31047, 20, 15, 85, T|A|S ), // 140 Goss Goods Truck
MK( 5479, 20, 15, 55, T|A|S ), // 141 Hereford Grain Truck
MK( 21185, 20, 15, 55, T|A|S ), // 142 Thomas Grain Truck
MK( 32873, 20, 15, 85, T|A|S ), // 143 Goss Grain Truck
MK( 5479, 20, 15, 55, T|A|S ), // 144 Witcombe Wood Truck
MK( 19724, 20, 15, 55, T|A|S ), // 145 Foster Wood Truck
MK( 35430, 20, 15, 85, T|A|S ), // 146 Moreland Wood Truck
MK( 5479, 20, 15, 55, T ), // 147 MPS Iron Ore Truck
MK( 20820, 20, 15, 55, T ), // 148 Uhl Iron Ore Truck
MK( 33238, 20, 15, 85, T ), // 149 Chippy Iron Ore Truck
MK( 5479, 20, 15, 55, T ), // 150 Balogh Steel Truck
MK( 21185, 20, 15, 55, T ), // 151 Uhl Steel Truck
MK( 31777, 20, 15, 85, T ), // 152 Kelling Steel Truck
MK( 5479, 20, 15, 55, T|A|S ), // 153 Balogh Armoured Truck
MK( 22281, 20, 15, 55, T|A|S ), // 154 Uhl Armoured Truck
MK( 33603, 20, 15, 85, T|A|S ), // 155 Foster Armoured Truck
MK( 5479, 20, 15, 55, A|S ), // 156 Foster Food Van
MK( 18628, 20, 15, 55, A|S ), // 157 Perry Food Van
MK( 30681, 20, 15, 85, A|S ), // 158 Chippy Food Van
MK( 5479, 20, 15, 55, A ), // 159 Uhl Paper Truck
MK( 21185, 20, 15, 55, A ), // 160 Balogh Paper Truck
MK( 31777, 20, 15, 85, A ), // 161 MPS Paper Truck
MK( 5479, 20, 15, 55, S ), // 162 MPS Copper Ore Truck
MK( 20820, 20, 15, 55, S ), // 163 Uhl Copper Ore Truck
MK( 33238, 20, 15, 85, S ), // 164 Goss Copper Ore Truck
MK( 5479, 20, 15, 55, S ), // 165 Uhl Water Tanker
MK( 20970, 20, 15, 55, S ), // 166 Balogh Water Tanker
MK( 33388, 20, 15, 85, S ), // 167 MPS Water Tanker
MK( 5479, 20, 15, 55, S ), // 168 Balogh Fruit Truck
MK( 21335, 20, 15, 55, S ), // 169 Uhl Fruit Truck
MK( 33753, 20, 15, 85, S ), // 170 Kelling Fruit Truck
MK( 5479, 20, 15, 55, S ), // 171 Balogh Rubber Truck
MK( 20604, 20, 15, 55, S ), // 172 Uhl Rubber Truck
MK( 33023, 20, 15, 85, S ), // 173 RMT Rubber Truck
MK( 5479, 20, 15, 55, Y), // 174 MightyMover Sugar Truck
MK( 19724, 20, 15, 55, Y), // 175 Powernaught Sugar Truck
MK( 33238, 20, 15, 85, Y), // 176 Wizzowow Sugar Truck
MK( 5479, 20, 15, 55, Y), // 177 MightyMover Cola Truck
MK( 20089, 20, 15, 55, Y), // 178 Powernaught Cola Truck
MK( 33603, 20, 15, 85, Y), // 179 Wizzowow Cola Truck
MK( 5479, 20, 15, 55, Y), // 180 MightyMover Candyfloss Truck
MK( 20454, 20, 15, 55, Y), // 181 Powernaught Candyfloss Truck
MK( 33969, 20, 15, 85, Y), // 182 Wizzowow Candyfloss Truck
MK( 5479, 20, 15, 55, Y), // 183 MightyMover Toffee Truck
MK( 20820, 20, 15, 55, Y), // 184 Powernaught Toffee Truck
MK( 34334, 20, 15, 85, Y), // 185 Wizzowow Toffee Truck
MK( 5479, 20, 15, 55, Y), // 186 MightyMover Toy Van
MK( 21185, 20, 15, 55, Y), // 187 Powernaught Toy Van
MK( 34699, 20, 15, 85, Y), // 188 Wizzowow Toy Van
MK( 5479, 20, 15, 55, Y), // 189 MightyMover Sweet Truck
MK( 21550, 20, 15, 55, Y), // 190 Powernaught Sweet Truck
MK( 35064, 20, 15, 85, Y), // 191 Wizzowow Sweet Truck
MK( 5479, 20, 15, 55, Y), // 192 MightyMover Battery Truck
MK( 19874, 20, 15, 55, Y), // 193 Powernaught Battery Truck
MK( 35430, 20, 15, 85, Y), // 194 Wizzowow Battery Truck
MK( 5479, 20, 15, 55, Y), // 195 MightyMover Fizzy Drink Truck
MK( 20239, 20, 15, 55, Y), // 196 Powernaught Fizzy Drink Truck
MK( 35795, 20, 15, 85, Y), // 197 Wizzowow Fizzy Drink Truck
MK( 5479, 20, 15, 55, Y), // 198 MightyMover Plastic Truck
MK( 20604, 20, 15, 55, Y), // 199 Powernaught Plastic Truck
MK( 32873, 20, 15, 85, Y), // 200 Wizzowow Plastic Truck
MK( 5479, 20, 15, 55, Y), // 201 MightyMover Bubble Truck
MK( 20970, 20, 15, 55, Y), // 202 Powernaught Bubble Truck
MK( 33023, 20, 15, 85, Y), // 203 Wizzowow Bubble Truck
MS( 2922, 5, 30, 50, T|A|S ), // 204 MPS Oil Tanker
MS( 17167, 5, 30, 90, T|A|S ), // 205 CS-Inc. Oil Tanker
MS( 2192, 5, 30, 55, T|A|S ), // 206 MPS Passenger Ferry
MS( 18628, 5, 30, 90, T|A|S ), // 207 FFP Passenger Ferry
MS( 17257, 10, 25, 90, T|A|S ), // 208 Bakewell 300 Hovercraft
MS( 9587, 5, 30, 40, Y), // 209 Chugger-Chug Passenger Ferry
MS( 20544, 5, 30, 90, Y), // 210 Shivershake Passenger Ferry
MS( 2557, 5, 30, 55, T|A|S ), // 211 Yate Cargo ship
MS( 19724, 5, 30, 98, T|A|S ), // 212 Bakewell Cargo ship
MS( 9587, 5, 30, 45, Y), // 213 Mightymover Cargo ship
MS( 22371, 5, 30, 90, Y), // 214 Powernaut Cargo ship
MA( 2922, 20, 20, 20, T|A|S ), // 215 Sampson U52
MA( 9922, 20, 24, 20, T|A|S ), // 216 Coleman Count
MA( 12659, 20, 18, 20, T|A|S ), // 217 FFP Dart
MA( 17652, 20, 25, 35, T|A|S ), // 218 Yate Haugan
MA( 4929, 20, 30, 30, T|A|S ), // 219 Bakewell Cotswald LB-3
MA( 13695, 20, 23, 25, T|A|S ), // 220 Bakewell Luckett LB-8
MA( 16341, 20, 26, 30, T|A|S ), // 221 Bakewell Luckett LB-9
MA( 21395, 20, 25, 30, T|A|S ), // 222 Bakewell Luckett LB80
MA( 18263, 20, 20, 30, T|A|S ), // 223 Bakewell Luckett LB-10
MA( 25233, 20, 25, 30, T|A|S ), // 224 Bakewell Luckett LB-11
MA( 15371, 20, 22, 25, T|A|S ), // 225 Yate Aerospace YAC 1-11
MA( 15461, 20, 25, 25, T|A|S ), // 226 Darwin 100
MA( 16952, 20, 22, 25, T|A|S ), // 227 Darwin 200
MA( 17227, 20, 25, 30, T|A|S ), // 228 Darwin 300
MA( 22371, 20, 25, 35, T|A|S ), // 229 Darwin 400
MA( 22341, 20, 25, 30, T|A|S ), // 230 Darwin 500
MA( 27209, 20, 25, 30, T|A|S ), // 231 Darwin 600
MA( 17988, 20, 20, 30, T|A|S ), // 232 Guru Galaxy
MA( 18993, 20, 24, 35, T|A|S ), // 233 Airtaxi A21
MA( 22401, 20, 24, 30, T|A|S ), // 234 Airtaxi A31
MA( 24472, 20, 24, 30, T|A|S ), // 235 Airtaxi A32
MA( 26724, 20, 24, 30, T|A|S ), // 236 Airtaxi A33
MA( 22005, 20, 25, 30, T|A|S ), // 237 Yate Aerospace YAe46
MA( 24107, 20, 20, 35, T|A|S ), // 238 Dinger 100
MA( 29310, 20, 25, 60, T|A|S ), // 239 AirTaxi A34-1000
MA( 35520, 20, 22, 30, T|A|S ), // 240 Yate Z-Shuttle
MA( 36981, 20, 22, 30, T|A|S ), // 241 Kelling K1
MA( 38807, 20, 22, 50, T|A|S ), // 242 Kelling K6
MA( 42094, 20, 25, 30, T|A|S ), // 243 Kelling K7
MA( 44651, 20, 23, 30, T|A|S ), // 244 Darwin 700
MA( 40268, 20, 25, 30, T|A|S ), // 245 FFP Hyperdart 2
MA( 33693, 20, 25, 50, T|A|S ), // 246 Dinger 200
MA( 32963, 20, 20, 60, T|A|S ), // 247 Dinger 1000
MA( 9222, 20, 20, 35, Y), // 248 Ploddyphut 100
MA( 12874, 20, 20, 35, Y), // 249 Ploddyphut 500
MA( 16892, 20, 20, 35, Y), // 250 Flashbang X1
MA( 21275, 20, 20, 99, Y), // 251 Juggerplane M1
MA( 23832, 20, 20, 99, Y), // 252 Flashbang Wizzer
MA( 13575, 20, 20, 40, T|A|S ), // 253 Tricario Helicopter
MA( 28215, 20, 20, 30, T|A|S ), // 254 Guru X2 Helicopter
MK( 13575, 20, 20, 99, Y), // 255
};
#undef Y
#undef S
#undef A
#undef T
#undef MK
#undef MW
#undef MS
#undef MA
/** Writes the properties of a rail vehicle into the RailVehicleInfo struct.
* @see RailVehicleInfo
* @param a image_index
* @param b flags
* @param c base_cost
* @param d max_speed (kph)
* @param e power (hp)
* @param f weight
* @param g running_cost
* @param h running_cost_class
* @param i capacity
* @param j cargo_type
* @param k ai_rank
* @param l railtype
* @param m engclass
* Tractive effort coefficient by default is the same as TTDPatch, 0.30*256=76
*/
#define RVI(a, b, c, d, e, f, g, h, i, j, k, l, m) { a, b, c, {l}, d, e, f, g, h, m, i, j, k, 0, 0, 0, 0, 0, 76, 0 }
#define M RAILVEH_MULTIHEAD
#define W RAILVEH_WAGON
#define G RAILVEH_SINGLEHEAD
#define S EC_STEAM
#define D EC_DIESEL
#define E EC_ELECTRIC
#define N EC_MONORAIL
#define V EC_MAGLEV
/* Wagons always have engine type 0, i.e. steam. */
#define A EC_STEAM
#define R RAILTYPE_RAIL
#define C RAILTYPE_ELECTRIC
#define O RAILTYPE_MONO
#define L RAILTYPE_MAGLEV
static const RailVehicleInfo _orig_rail_vehicle_info[] = {
/* image_index max_speed (kph) running_cost ai_rank
* | flags | power (hp) | running_cost_class | railtype
* | | base_cost | weight | | capacity | |
* | | | | | | | | | cargo_type | | engclass
* | | | | | | | | | | | | | */
RVI( 2, G, 7, 64, 300, 47, 50, RC_S, 0, 0 , 1, R, S), // 0
RVI(19, G, 8, 80, 600, 65, 65, RC_D, 0, 0 , 4, R, D), // 1
RVI( 2, G, 10, 72, 400, 85, 90, RC_S, 0, 0 , 7, R, S), // 2
RVI( 0, G, 15, 96, 900, 130, 130, RC_S, 0, 0 , 19, R, S), // 3
RVI( 1, G, 19, 112, 1000, 140, 145, RC_S, 0, 0 , 20, R, S), // 4
RVI(12, G, 16, 120, 1400, 95, 125, RC_D, 0, 0 , 30, R, D), // 5
RVI(14, G, 20, 152, 2000, 120, 135, RC_D, 0, 0 , 31, R, D), // 6
RVI( 3, G, 14, 88, 1100, 145, 130, RC_S, 0, 0 , 19, R, S), // 7
RVI( 0, G, 13, 112, 1000, 131, 120, RC_S, 0, 0 , 20, R, S), // 8
RVI( 1, G, 19, 128, 1200, 162, 140, RC_S, 0, 0 , 21, R, S), // 9
RVI( 0, G, 22, 144, 1600, 170, 130, RC_S, 0, 0 , 22, R, S), // 10
RVI( 8, M, 11, 112, 600, 32, 85, RC_D, 38, CT_PASSENGERS , 10, R, D), // 11
RVI(10, M, 14, 120, 700, 38, 70, RC_D, 40, CT_PASSENGERS , 11, R, D), // 12
RVI( 4, G, 15, 128, 1250, 72, 95, RC_D, 0, 0 , 30, R, D), // 13
RVI( 5, G, 17, 144, 1750, 101, 120, RC_D, 0, 0 , 31, R, D), // 14
RVI( 4, G, 18, 160, 2580, 112, 140, RC_D, 0, 0 , 32, R, D), // 15
RVI(14, G, 23, 96, 4000, 150, 135, RC_D, 0, 0 , 33, R, D), // 16
RVI(12, G, 16, 112, 2400, 120, 105, RC_D, 0, 0 , 34, R, D), // 17
RVI(13, G, 30, 112, 6600, 207, 155, RC_D, 0, 0 , 35, R, D), // 18
RVI(15, G, 18, 104, 1500, 110, 105, RC_D, 0, 0 , 29, R, D), // 19
RVI(16, M, 35, 160, 3500, 95, 205, RC_D, 0, 0 , 45, R, D), // 20
RVI(18, G, 21, 104, 2200, 120, 145, RC_D, 0, 0 , 32, R, D), // 21
RVI( 6, M, 20, 200, 4500, 70, 190, RC_D, 4, CT_MAIL , 50, R, D), // 22
RVI(20, G, 26, 160, 3600, 84, 180, RC_E, 0, 0 , 40, C, E), // 23
RVI(20, G, 30, 176, 5000, 82, 205, RC_E, 0, 0 , 41, C, E), // 24
RVI(21, M, 40, 240, 7000, 90, 240, RC_E, 0, 0 , 51, C, E), // 25
RVI(23, M, 43, 264, 8000, 95, 250, RC_E, 0, 0 , 52, C, E), // 26
RVI(33, W, 247, 0, 0, 25, 0, RC_W, 40, CT_PASSENGERS , 0, R, A), // 27
RVI(35, W, 228, 0, 0, 21, 0, RC_W, 30, CT_MAIL , 0, R, A), // 28
RVI(34, W, 176, 0, 0, 18, 0, RC_W, 30, CT_COAL , 0, R, A), // 29
RVI(36, W, 200, 0, 0, 24, 0, RC_W, 30, CT_OIL , 0, R, A), // 30
RVI(37, W, 192, 0, 0, 20, 0, RC_W, 25, CT_LIVESTOCK , 0, R, A), // 31
RVI(38, W, 190, 0, 0, 21, 0, RC_W, 25, CT_GOODS , 0, R, A), // 32
RVI(39, W, 182, 0, 0, 19, 0, RC_W, 30, CT_GRAIN , 0, R, A), // 33
RVI(40, W, 181, 0, 0, 16, 0, RC_W, 30, CT_WOOD , 0, R, A), // 34
RVI(41, W, 179, 0, 0, 19, 0, RC_W, 30, CT_IRON_ORE , 0, R, A), // 35
RVI(42, W, 196, 0, 0, 18, 0, RC_W, 20, CT_STEEL , 0, R, A), // 36
RVI(43, W, 255, 0, 0, 30, 0, RC_W, 20, CT_VALUABLES , 0, R, A), // 37
RVI(44, W, 191, 0, 0, 22, 0, RC_W, 25, CT_FOOD , 0, R, A), // 38
RVI(45, W, 196, 0, 0, 18, 0, RC_W, 20, CT_PAPER , 0, R, A), // 39
RVI(46, W, 179, 0, 0, 19, 0, RC_W, 30, CT_COPPER_ORE , 0, R, A), // 40
RVI(47, W, 199, 0, 0, 25, 0, RC_W, 25, CT_WATER , 0, R, A), // 41
RVI(48, W, 182, 0, 0, 18, 0, RC_W, 25, CT_FRUIT , 0, R, A), // 42
RVI(49, W, 185, 0, 0, 19, 0, RC_W, 21, CT_RUBBER , 0, R, A), // 43
RVI(50, W, 176, 0, 0, 19, 0, RC_W, 30, CT_SUGAR , 0, R, A), // 44
RVI(51, W, 178, 0, 0, 20, 0, RC_W, 30, CT_COTTON_CANDY, 0, R, A), // 45
RVI(52, W, 192, 0, 0, 20, 0, RC_W, 30, CT_TOFFEE , 0, R, A), // 46
RVI(53, W, 190, 0, 0, 21, 0, RC_W, 20, CT_BUBBLES , 0, R, A), // 47
RVI(54, W, 182, 0, 0, 24, 0, RC_W, 25, CT_COLA , 0, R, A), // 48
RVI(55, W, 181, 0, 0, 21, 0, RC_W, 25, CT_CANDY , 0, R, A), // 49
RVI(56, W, 183, 0, 0, 21, 0, RC_W, 20, CT_TOYS , 0, R, A), // 50
RVI(57, W, 196, 0, 0, 18, 0, RC_W, 22, CT_BATTERIES , 0, R, A), // 51
RVI(58, W, 193, 0, 0, 18, 0, RC_W, 25, CT_FIZZY_DRINKS, 0, R, A), // 52
RVI(59, W, 191, 0, 0, 18, 0, RC_W, 30, CT_PLASTIC , 0, R, A), // 53
RVI(25, G, 52, 304, 9000, 95, 230, RC_E, 0, 0 , 60, O, N), // 54
RVI(26, M, 60, 336, 10000, 85, 240, RC_E, 25, CT_PASSENGERS , 62, O, N), // 55
RVI(26, G, 53, 320, 5000, 95, 230, RC_E, 0, 0 , 63, O, N), // 56
RVI(60, W, 247, 0, 0, 25, 0, RC_W, 45, CT_PASSENGERS , 0, O, A), // 57
RVI(62, W, 228, 0, 0, 21, 0, RC_W, 35, CT_MAIL , 0, O, A), // 58
RVI(61, W, 176, 0, 0, 18, 0, RC_W, 35, CT_COAL , 0, O, A), // 59
RVI(63, W, 200, 0, 0, 24, 0, RC_W, 35, CT_OIL , 0, O, A), // 60
RVI(64, W, 192, 0, 0, 20, 0, RC_W, 30, CT_LIVESTOCK , 0, O, A), // 61
RVI(65, W, 190, 0, 0, 21, 0, RC_W, 30, CT_GOODS , 0, O, A), // 62
RVI(66, W, 182, 0, 0, 19, 0, RC_W, 35, CT_GRAIN , 0, O, A), // 63
RVI(67, W, 181, 0, 0, 16, 0, RC_W, 35, CT_WOOD , 0, O, A), // 64
RVI(68, W, 179, 0, 0, 19, 0, RC_W, 35, CT_IRON_ORE , 0, O, A), // 65
RVI(69, W, 196, 0, 0, 18, 0, RC_W, 25, CT_STEEL , 0, O, A), // 66
RVI(70, W, 255, 0, 0, 30, 0, RC_W, 25, CT_VALUABLES , 0, O, A), // 67
RVI(71, W, 191, 0, 0, 22, 0, RC_W, 30, CT_FOOD , 0, O, A), // 68
RVI(72, W, 196, 0, 0, 18, 0, RC_W, 25, CT_PAPER , 0, O, A), // 69
RVI(73, W, 179, 0, 0, 19, 0, RC_W, 35, CT_COPPER_ORE , 0, O, A), // 70
RVI(47, W, 199, 0, 0, 25, 0, RC_W, 30, CT_WATER , 0, O, A), // 71
RVI(48, W, 182, 0, 0, 18, 0, RC_W, 30, CT_FRUIT , 0, O, A), // 72
RVI(49, W, 185, 0, 0, 19, 0, RC_W, 26, CT_RUBBER , 0, O, A), // 73
RVI(50, W, 176, 0, 0, 19, 0, RC_W, 35, CT_SUGAR , 0, O, A), // 74
RVI(51, W, 178, 0, 0, 20, 0, RC_W, 35, CT_COTTON_CANDY, 0, O, A), // 75
RVI(52, W, 192, 0, 0, 20, 0, RC_W, 35, CT_TOFFEE , 0, O, A), // 76
RVI(53, W, 190, 0, 0, 21, 0, RC_W, 25, CT_BUBBLES , 0, O, A), // 77
RVI(54, W, 182, 0, 0, 24, 0, RC_W, 30, CT_COLA , 0, O, A), // 78
RVI(55, W, 181, 0, 0, 21, 0, RC_W, 30, CT_CANDY , 0, O, A), // 79
RVI(56, W, 183, 0, 0, 21, 0, RC_W, 25, CT_TOYS , 0, O, A), // 80
RVI(57, W, 196, 0, 0, 18, 0, RC_W, 27, CT_BATTERIES , 0, O, A), // 81
RVI(58, W, 193, 0, 0, 18, 0, RC_W, 30, CT_FIZZY_DRINKS, 0, O, A), // 82
RVI(59, W, 191, 0, 0, 18, 0, RC_W, 35, CT_PLASTIC , 0, O, A), // 83
RVI(28, G, 70, 400, 10000, 105, 250, RC_E, 0, 0 , 70, L, V), // 84
RVI(29, G, 74, 448, 12000, 120, 253, RC_E, 0, 0 , 71, L, V), // 85
RVI(30, G, 82, 480, 15000, 130, 254, RC_E, 0, 0 , 72, L, V), // 86
RVI(31, M, 95, 640, 20000, 150, 255, RC_E, 0, 0 , 73, L, V), // 87
RVI(28, G, 70, 480, 10000, 120, 250, RC_E, 0, 0 , 74, L, V), // 88
RVI(60, W, 247, 0, 0, 25, 0, RC_W, 47, CT_PASSENGERS , 0, L, A), // 89
RVI(62, W, 228, 0, 0, 21, 0, RC_W, 37, CT_MAIL , 0, L, A), // 90
RVI(61, W, 176, 0, 0, 18, 0, RC_W, 37, CT_COAL , 0, L, A), // 91
RVI(63, W, 200, 0, 0, 24, 0, RC_W, 37, CT_OIL , 0, L, A), // 92
RVI(64, W, 192, 0, 0, 20, 0, RC_W, 32, CT_LIVESTOCK , 0, L, A), // 93
RVI(65, W, 190, 0, 0, 21, 0, RC_W, 32, CT_GOODS , 0, L, A), // 94
RVI(66, W, 182, 0, 0, 19, 0, RC_W, 37, CT_GRAIN , 0, L, A), // 95
RVI(67, W, 181, 0, 0, 16, 0, RC_W, 37, CT_WOOD , 0, L, A), // 96
RVI(68, W, 179, 0, 0, 19, 0, RC_W, 37, CT_IRON_ORE , 0, L, A), // 97
RVI(69, W, 196, 0, 0, 18, 0, RC_W, 27, CT_STEEL , 0, L, A), // 98
RVI(70, W, 255, 0, 0, 30, 0, RC_W, 27, CT_VALUABLES , 0, L, A), // 99
RVI(71, W, 191, 0, 0, 22, 0, RC_W, 32, CT_FOOD , 0, L, A), // 100
RVI(72, W, 196, 0, 0, 18, 0, RC_W, 27, CT_PAPER , 0, L, A), // 101
RVI(73, W, 179, 0, 0, 19, 0, RC_W, 37, CT_COPPER_ORE , 0, L, A), // 102
RVI(47, W, 199, 0, 0, 25, 0, RC_W, 32, CT_WATER , 0, L, A), // 103
RVI(48, W, 182, 0, 0, 18, 0, RC_W, 32, CT_FRUIT , 0, L, A), // 104
RVI(49, W, 185, 0, 0, 19, 0, RC_W, 28, CT_RUBBER , 0, L, A), // 105
RVI(50, W, 176, 0, 0, 19, 0, RC_W, 37, CT_SUGAR , 0, L, A), // 106
RVI(51, W, 178, 0, 0, 20, 0, RC_W, 37, CT_COTTON_CANDY, 0, L, A), // 107
RVI(52, W, 192, 0, 0, 20, 0, RC_W, 37, CT_TOFFEE , 0, L, A), // 108
RVI(53, W, 190, 0, 0, 21, 0, RC_W, 27, CT_BUBBLES , 0, L, A), // 109
RVI(54, W, 182, 0, 0, 24, 0, RC_W, 32, CT_COLA , 0, L, A), // 110
RVI(55, W, 181, 0, 0, 21, 0, RC_W, 32, CT_CANDY , 0, L, A), // 111
RVI(56, W, 183, 0, 0, 21, 0, RC_W, 27, CT_TOYS , 0, L, A), // 112
RVI(57, W, 196, 0, 0, 18, 0, RC_W, 29, CT_BATTERIES , 0, L, A), // 113
RVI(58, W, 193, 0, 0, 18, 0, RC_W, 32, CT_FIZZY_DRINKS, 0, L, A), // 114
RVI(59, W, 191, 0, 0, 18, 0, RC_W, 37, CT_PLASTIC , 0, L, A), // 115
};
#undef L
#undef O
#undef C
#undef R
#undef V
#undef N
#undef E
#undef D
#undef S
#undef G
#undef W
#undef M
#undef RVI
/** Writes the properties of a ship into the ShipVehicleInfo struct.
* @see ShipVehicleInfo
* @param a image_index
* @param b base_cost
* @param c max_speed
* @param d cargo_type
* @param e cargo_amount
* @param f running_cost
* @param g sound effect
* @param h refittable
*/
#define SVI(a, b, c, d, e, f, g, h) { a, b, c, d, e, f, g, h }
static const ShipVehicleInfo _orig_ship_vehicle_info[] = {
/* image_index cargo_type cargo_amount refittable
* | base_cost | | running_cost |
* | | max_speed | | sfx |
* | | | | | | | | */
SVI( 1, 160, 48, CT_OIL, 220, 140, SND_06_SHIP_HORN, 0 ), // 0
SVI( 1, 176, 80, CT_OIL, 350, 125, SND_06_SHIP_HORN, 0 ), // 1
SVI( 2, 96, 64, CT_PASSENGERS, 100, 90, SND_07_FERRY_HORN, 0 ), // 2
SVI( 2, 112, 128, CT_PASSENGERS, 130, 80, SND_07_FERRY_HORN, 0 ), // 3
SVI( 3, 148, 224, CT_PASSENGERS, 100, 190, SND_07_FERRY_HORN, 0 ), // 4
SVI( 2, 96, 64, CT_PASSENGERS, 100, 90, SND_07_FERRY_HORN, 0 ), // 5
SVI( 2, 112, 128, CT_PASSENGERS, 130, 80, SND_07_FERRY_HORN, 0 ), // 6
SVI( 0, 128, 48, CT_GOODS, 160, 150, SND_06_SHIP_HORN, 1 ), // 7
SVI( 0, 144, 80, CT_GOODS, 190, 113, SND_06_SHIP_HORN, 1 ), // 8
SVI( 0, 128, 48, CT_GOODS, 160, 150, SND_06_SHIP_HORN, 1 ), // 9
SVI( 0, 144, 80, CT_GOODS, 190, 113, SND_06_SHIP_HORN, 1 ), // 10
};
#undef SVI
/** Writes the properties of an aircraft into the AircraftVehicleInfo struct.
* @see AircraftVehicleInfo
* @param a image_index
* @param b base_cost
* @param c running_Cost
* @param d subtype (bit 0 - plane, bit 1 - large plane)
* @param e sound effect
* @param f acceleration
* @param g max_speed
* @param h mail_capacity
* @param i passenger_capacity
*/
#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, f, (g * 129) / 10, h, i }
#define H AIR_HELI
#define P AIR_CTOL
#define J AIR_CTOL | AIR_FAST
static const AircraftVehicleInfo _orig_aircraft_vehicle_info[] = {
/* image_index sfx acceleration
* | base_cost | | max_speed
* | | running_cost | | mail_capacity
* | | | subtype | | | | passenger_capacity
* | | | | | | | | | */
AVI( 1, 14, 85, P, SND_08_PLANE_TAKE_OFF, 18, 37, 4, 25 ), // 0
AVI( 0, 15, 100, P, SND_08_PLANE_TAKE_OFF, 20, 37, 8, 65 ), // 1
AVI( 2, 16, 130, J, SND_09_JET, 35, 74, 10, 90 ), // 2
AVI( 8, 75, 250, J, SND_3B_JET_OVERHEAD, 50, 181, 20, 100 ), // 3
AVI( 5, 15, 98, P, SND_08_PLANE_TAKE_OFF, 20, 37, 6, 30 ), // 4
AVI( 6, 18, 240, J, SND_09_JET, 40, 74, 30, 200 ), // 5
AVI( 2, 17, 150, P, SND_09_JET, 35, 74, 15, 100 ), // 6
AVI( 2, 18, 245, J, SND_09_JET, 40, 74, 30, 150 ), // 7
AVI( 3, 19, 192, J, SND_09_JET, 40, 74, 40, 220 ), // 8
AVI( 3, 20, 190, J, SND_09_JET, 40, 74, 25, 230 ), // 9
AVI( 2, 16, 135, J, SND_09_JET, 35, 74, 10, 95 ), // 10
AVI( 2, 18, 240, J, SND_09_JET, 40, 74, 35, 170 ), // 11
AVI( 4, 17, 155, J, SND_09_JET, 40, 74, 15, 110 ), // 12
AVI( 7, 30, 253, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 50, 300 ), // 13
AVI( 4, 18, 210, J, SND_09_JET, 40, 74, 25, 200 ), // 14
AVI( 4, 19, 220, J, SND_09_JET, 40, 74, 25, 240 ), // 15
AVI( 4, 27, 230, J, SND_09_JET, 40, 74, 40, 260 ), // 16
AVI( 3, 25, 225, J, SND_09_JET, 40, 74, 35, 240 ), // 17
AVI( 4, 20, 235, J, SND_09_JET, 40, 74, 30, 260 ), // 18
AVI( 4, 19, 220, J, SND_09_JET, 40, 74, 25, 210 ), // 19
AVI( 4, 18, 170, J, SND_09_JET, 40, 74, 20, 160 ), // 20
AVI( 4, 26, 210, J, SND_09_JET, 40, 74, 20, 220 ), // 21
AVI( 6, 16, 125, P, SND_09_JET, 50, 74, 10, 80 ), // 22
AVI( 2, 17, 145, P, SND_09_JET, 40, 74, 10, 85 ), // 23
AVI( 11, 16, 130, P, SND_09_JET, 40, 74, 10, 75 ), // 24
AVI( 10, 16, 149, P, SND_09_JET, 40, 74, 10, 85 ), // 25
AVI( 15, 17, 170, P, SND_09_JET, 40, 74, 18, 65 ), // 26
AVI( 12, 18, 210, J, SND_09_JET, 40, 74, 25, 110 ), // 27
AVI( 13, 20, 230, J, SND_09_JET, 40, 74, 60, 180 ), // 28
AVI( 14, 21, 220, J, SND_09_JET, 40, 74, 65, 150 ), // 29
AVI( 16, 19, 160, J, SND_09_JET, 40, 181, 45, 85 ), // 30
AVI( 17, 24, 248, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 80, 400 ), // 31
AVI( 18, 80, 251, J, SND_3B_JET_OVERHEAD, 50, 181, 45, 130 ), // 32
AVI( 20, 13, 85, P, SND_45_PLANE_CRASHING, 18, 37, 5, 25 ), // 33
AVI( 21, 18, 100, P, SND_46_PLANE_ENGINE_SPUTTERING, 20, 37, 9, 60 ), // 34
AVI( 22, 25, 140, P, SND_09_JET, 40, 74, 12, 90 ), // 35
AVI( 23, 32, 220, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 40, 200 ), // 36
AVI( 24, 80, 255, J, SND_3B_JET_OVERHEAD, 50, 181, 30, 100 ), // 37
AVI( 9, 15, 81, H, SND_09_JET, 20, 25, 15, 40 ), // 38
AVI( 19, 17, 77, H, SND_09_JET, 20, 40, 20, 55 ), // 39
AVI( 25, 15, 80, H, SND_09_JET, 20, 25, 10, 40 ), // 40
};
#undef J
#undef P
#undef H
#undef AVI
/** Writes the properties of a road vehicle into the RoadVehicleInfo struct.
* @see RoadVehicleInfo
* @param a image_index
* @param b base_cost
* @param c running_cost
* @param d sound effect
* @param e max_speed
* @param f capacity
* @param g cargo_type
* @param h weight (1/4ton)
* @param i power (10hp)
*/
#define ROV(a, b, c, d, e, f, g, h, i) { a, b, c, RC_R, d, e, f, g, h, i, 76, 0 }
static const RoadVehicleInfo _orig_road_vehicle_info[] = {
/* image_index sfx max_speed
* | base_cost | | capacity
* | | running_cost | | cargo_type
* | | | | | | | */
ROV( 0, 120, 91, SND_19_BUS_START_PULL_AWAY, 112, 31, CT_PASSENGERS , 42, 9), // 0
ROV( 17, 140, 128, SND_1C_TRUCK_START_2, 176, 35, CT_PASSENGERS , 60, 12), // 1
ROV( 17, 150, 178, SND_1B_TRUCK_START, 224, 37, CT_PASSENGERS , 70, 15), // 2
ROV( 34, 160, 240, SND_1B_TRUCK_START, 255, 40, CT_PASSENGERS ,100, 25), // 3
ROV( 51, 120, 91, SND_3C_COMEDY_CAR, 112, 30, CT_PASSENGERS , 42, 9), // 4
ROV( 51, 140, 171, SND_3E_COMEDY_CAR_2, 192, 35, CT_PASSENGERS , 60, 15), // 5
ROV( 51, 160, 240, SND_3C_COMEDY_CAR, 240, 38, CT_PASSENGERS , 90, 25), // 6
ROV( 1, 108, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_COAL , 38, 12), // 7
ROV( 18, 128, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_COAL , 48, 22), // 8
ROV( 35, 138, 240, SND_19_BUS_START_PULL_AWAY, 224, 28, CT_COAL , 69, 45), // 9
ROV( 2, 115, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_MAIL , 38, 12), // 10
ROV( 19, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 28, CT_MAIL , 48, 22), // 11
ROV( 36, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 30, CT_MAIL , 69, 45), // 12
ROV( 57, 115, 90, SND_3E_COMEDY_CAR_2, 96, 22, CT_MAIL , 38, 12), // 13
ROV( 57, 135, 168, SND_3C_COMEDY_CAR, 176, 28, CT_MAIL , 48, 22), // 14
ROV( 57, 145, 240, SND_3E_COMEDY_CAR_2, 224, 30, CT_MAIL , 69, 45), // 15
ROV( 3, 110, 90, SND_19_BUS_START_PULL_AWAY, 96, 21, CT_OIL , 38, 12), // 16
ROV( 20, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_OIL , 48, 22), // 17
ROV( 37, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_OIL , 69, 45), // 18
ROV( 4, 105, 90, SND_19_BUS_START_PULL_AWAY, 96, 14, CT_LIVESTOCK , 38, 12), // 19
ROV( 21, 130, 168, SND_19_BUS_START_PULL_AWAY, 176, 16, CT_LIVESTOCK , 48, 22), // 20
ROV( 38, 140, 240, SND_19_BUS_START_PULL_AWAY, 224, 18, CT_LIVESTOCK , 69, 45), // 21
ROV( 5, 107, 90, SND_19_BUS_START_PULL_AWAY, 96, 14, CT_GOODS , 38, 12), // 22
ROV( 22, 130, 168, SND_19_BUS_START_PULL_AWAY, 176, 16, CT_GOODS , 48, 22), // 23
ROV( 39, 140, 240, SND_19_BUS_START_PULL_AWAY, 224, 18, CT_GOODS , 69, 45), // 24
ROV( 6, 114, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_GRAIN , 38, 12), // 25
ROV( 23, 133, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_GRAIN , 48, 22), // 26
ROV( 40, 143, 240, SND_19_BUS_START_PULL_AWAY, 224, 30, CT_GRAIN , 69, 45), // 27
ROV( 7, 118, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_WOOD , 38, 12), // 28
ROV( 24, 137, 168, SND_19_BUS_START_PULL_AWAY, 176, 22, CT_WOOD , 48, 22), // 29
ROV( 41, 147, 240, SND_19_BUS_START_PULL_AWAY, 224, 24, CT_WOOD , 69, 45), // 30
ROV( 8, 121, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_IRON_ORE , 38, 12), // 31
ROV( 25, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_IRON_ORE , 48, 22), // 32
ROV( 42, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_IRON_ORE , 69, 45), // 33
ROV( 9, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 15, CT_STEEL , 38, 12), // 34
ROV( 26, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 18, CT_STEEL , 48, 22), // 35
ROV( 43, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 20, CT_STEEL , 69, 45), // 36
ROV( 10, 145, 90, SND_19_BUS_START_PULL_AWAY, 96, 12, CT_VALUABLES , 38, 12), // 37
ROV( 27, 170, 168, SND_19_BUS_START_PULL_AWAY, 176, 15, CT_VALUABLES , 48, 22), // 38
ROV( 44, 180, 240, SND_19_BUS_START_PULL_AWAY, 224, 16, CT_VALUABLES , 69, 45), // 39
ROV( 11, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 17, CT_FOOD , 38, 12), // 40
ROV( 28, 134, 168, SND_19_BUS_START_PULL_AWAY, 176, 20, CT_FOOD , 48, 22), // 41
ROV( 45, 144, 240, SND_19_BUS_START_PULL_AWAY, 224, 22, CT_FOOD , 69, 45), // 42
ROV( 12, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 15, CT_PAPER , 38, 12), // 43
ROV( 29, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 18, CT_PAPER , 48, 22), // 44
ROV( 46, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 20, CT_PAPER , 69, 45), // 45
ROV( 13, 121, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_COPPER_ORE , 38, 12), // 46
ROV( 30, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_COPPER_ORE , 48, 22), // 47
ROV( 47, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_COPPER_ORE , 69, 45), // 48
ROV( 14, 111, 90, SND_19_BUS_START_PULL_AWAY, 96, 21, CT_WATER , 38, 12), // 49
ROV( 31, 141, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_WATER , 48, 22), // 50
ROV( 48, 151, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_WATER , 69, 45), // 51
ROV( 15, 118, 90, SND_19_BUS_START_PULL_AWAY, 96, 18, CT_FRUIT , 38, 12), // 52
ROV( 32, 148, 168, SND_19_BUS_START_PULL_AWAY, 176, 20, CT_FRUIT , 48, 22), // 53
ROV( 49, 158, 240, SND_19_BUS_START_PULL_AWAY, 224, 23, CT_FRUIT , 69, 45), // 54
ROV( 16, 117, 90, SND_19_BUS_START_PULL_AWAY, 96, 17, CT_RUBBER , 38, 12), // 55
ROV( 33, 147, 168, SND_19_BUS_START_PULL_AWAY, 176, 19, CT_RUBBER , 48, 22), // 56
ROV( 50, 157, 240, SND_19_BUS_START_PULL_AWAY, 224, 22, CT_RUBBER , 69, 45), // 57
ROV( 52, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_SUGAR , 38, 12), // 58
ROV( 52, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_SUGAR , 48, 22), // 59
ROV( 52, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_SUGAR , 69, 45), // 60
ROV( 53, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_COLA , 38, 12), // 61
ROV( 53, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_COLA , 48, 22), // 62
ROV( 53, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_COLA , 69, 45), // 63
ROV( 54, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_COTTON_CANDY , 38, 12), // 64
ROV( 54, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_COTTON_CANDY , 48, 22), // 65
ROV( 54, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_COTTON_CANDY , 69, 45), // 66
ROV( 55, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_TOFFEE , 38, 12), // 67
ROV( 55, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_TOFFEE , 48, 22), // 68
ROV( 55, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_TOFFEE , 69, 45), // 69
ROV( 56, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_TOYS , 38, 12), // 70
ROV( 56, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_TOYS , 48, 22), // 71
ROV( 56, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_TOYS , 69, 45), // 72
ROV( 58, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_CANDY , 38, 12), // 73
ROV( 58, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_CANDY , 48, 22), // 74
ROV( 58, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_CANDY , 69, 45), // 75
ROV( 59, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_BATTERIES , 38, 12), // 76
ROV( 59, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_BATTERIES , 48, 22), // 77
ROV( 59, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_BATTERIES , 69, 45), // 78
ROV( 60, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_FIZZY_DRINKS , 38, 12), // 79
ROV( 60, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_FIZZY_DRINKS , 48, 22), // 80
ROV( 60, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_FIZZY_DRINKS , 69, 45), // 81
ROV( 61, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_PLASTIC , 38, 12), // 82
ROV( 61, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_PLASTIC , 48, 22), // 83
ROV( 61, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_PLASTIC , 69, 45), // 84
ROV( 62, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_BUBBLES , 38, 12), // 85
ROV( 62, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_BUBBLES , 48, 22), // 86
ROV( 62, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_BUBBLES , 69, 45), // 87
};
#undef ROV
#endif /* ENGINES_H */