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