00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #ifndef AIRPORT_MOVEMENT_H
00013 #define AIRPORT_MOVEMENT_H
00014
00015
00016
00017
00018 struct AirportFTAbuildup {
00019 byte position;
00020 byte heading;
00021 uint64 block;
00022 byte next;
00023 };
00024
00027
00028 #define AMD(x, y, flags, dir) { x, y, flags, {dir} }
00029
00030 static const AirportMovingData _airport_moving_data_dummy[] = {
00031 AMD( 0, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00032 AMD( 0, 96, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00033 AMD( 96, 96, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00034 AMD( 96, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00035 };
00036
00037
00038 static const AirportMovingData _airport_moving_data_country[22] = {
00039 AMD( 53, 3, AMED_EXACTPOS, DIR_SE),
00040 AMD( 53, 27, 0, DIR_N ),
00041 AMD( 32, 23, AMED_EXACTPOS, DIR_NW),
00042 AMD( 10, 23, AMED_EXACTPOS, DIR_NW),
00043 AMD( 43, 37, 0, DIR_N ),
00044 AMD( 24, 37, 0, DIR_N ),
00045 AMD( 53, 37, 0, DIR_N ),
00046 AMD( 61, 40, AMED_EXACTPOS, DIR_NE),
00047 AMD( 3, 40, AMED_NOSPDCLAMP, DIR_N ),
00048 AMD( -79, 40, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00049 AMD( 177, 40, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00050 AMD( 56, 40, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00051 AMD( 3, 40, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00052 AMD( 7, 40, 0, DIR_N ),
00053 AMD( 53, 40, 0, DIR_N ),
00054 AMD( 1, 193, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00055 AMD( 1, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00056 AMD( 257, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00057 AMD( 273, 47, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00058 AMD( 44, 37, AMED_HELI_RAISE, DIR_N ),
00059 AMD( 44, 40, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00060 AMD( 44, 40, AMED_HELI_LOWER, DIR_N ),
00061 };
00062
00063
00064 static const AirportMovingData _airport_moving_data_commuter[37] = {
00065 AMD( 69, 3, AMED_EXACTPOS, DIR_SE),
00066 AMD( 72, 22, 0, DIR_N ),
00067 AMD( 8, 22, AMED_EXACTPOS, DIR_SW),
00068 AMD( 24, 36, AMED_EXACTPOS, DIR_SE),
00069 AMD( 40, 36, AMED_EXACTPOS, DIR_SE),
00070 AMD( 56, 36, AMED_EXACTPOS, DIR_SE),
00071 AMD( 40, 8, AMED_EXACTPOS, DIR_NE),
00072 AMD( 56, 8, AMED_EXACTPOS, DIR_NE),
00073 AMD( 24, 22, 0, DIR_SW),
00074 AMD( 40, 22, 0, DIR_SW),
00075 AMD( 56, 22, 0, DIR_SW),
00076 AMD( 72, 40, 0, DIR_SE),
00077 AMD( 72, 54, AMED_EXACTPOS, DIR_NE),
00078 AMD( 7, 54, AMED_NOSPDCLAMP, DIR_N ),
00079 AMD( 5, 54, AMED_NOSPDCLAMP, DIR_N ),
00080 AMD( -79, 54, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00081 AMD( 145, 54, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00082 AMD( 73, 54, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00083 AMD( 3, 54, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00084 AMD( 12, 54, AMED_SLOWTURN, DIR_NW),
00085 AMD( 8, 32, 0, DIR_NW),
00086 AMD( 1, 149, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00087 AMD( 1, 6, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00088 AMD( 193, 6, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00089 AMD( 225, 62, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00090
00091 AMD( 80, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00092 AMD( 80, 0, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00093 AMD( 32, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00094 AMD( 48, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00095 AMD( 32, 8, AMED_HELI_LOWER, DIR_N ),
00096 AMD( 48, 8, AMED_HELI_LOWER, DIR_N ),
00097 AMD( 32, 8, AMED_HELI_RAISE, DIR_N ),
00098 AMD( 48, 8, AMED_HELI_RAISE, DIR_N ),
00099 AMD( 64, 22, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00100 AMD( 64, 22, AMED_HELI_LOWER, DIR_N ),
00101 AMD( 40, 8, AMED_EXACTPOS, DIR_N ),
00102 AMD( 56, 8, AMED_EXACTPOS, DIR_N ),
00103 };
00104
00105
00106 static const AirportMovingData _airport_moving_data_town[] = {
00107 AMD( 85, 3, AMED_EXACTPOS, DIR_SE),
00108 AMD( 85, 22, 0, DIR_N ),
00109 AMD( 26, 41, AMED_EXACTPOS, DIR_SW),
00110 AMD( 56, 22, AMED_EXACTPOS, DIR_SE),
00111 AMD( 38, 8, AMED_EXACTPOS, DIR_SW),
00112 AMD( 65, 6, 0, DIR_N ),
00113 AMD( 80, 27, 0, DIR_N ),
00114 AMD( 44, 63, 0, DIR_N ),
00115 AMD( 58, 71, 0, DIR_N ),
00116 AMD( 72, 85, 0, DIR_N ),
00117 AMD( 89, 85, AMED_EXACTPOS, DIR_NE),
00118 AMD( 3, 85, AMED_NOSPDCLAMP, DIR_N ),
00119 AMD( -79, 85, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00120 AMD( 177, 87, AMED_HOLD | AMED_SLOWTURN, DIR_N ),
00121 AMD( 89, 87, AMED_HOLD | AMED_LAND, DIR_N ),
00122 AMD( 20, 87, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00123 AMD( 20, 87, 0, DIR_N ),
00124 AMD( 36, 71, 0, DIR_N ),
00125 AMD( 160, 87, AMED_HOLD | AMED_SLOWTURN, DIR_N ),
00126 AMD( 140, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00127 AMD( 257, 1, AMED_HOLD | AMED_SLOWTURN, DIR_N ),
00128 AMD( 273, 49, AMED_HOLD | AMED_SLOWTURN, DIR_N ),
00129 AMD( 44, 63, AMED_HELI_RAISE, DIR_N ),
00130 AMD( 28, 74, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00131 AMD( 28, 74, AMED_HELI_LOWER, DIR_N ),
00132 AMD( 145, 1, AMED_HOLD | AMED_SLOWTURN, DIR_N ),
00133 AMD( -32, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00134 AMD( 300, -48, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00135 AMD( 140, -48, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00136 AMD( -32, 120, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00137 };
00138
00139
00140 static const AirportMovingData _airport_moving_data_metropolitan[27] = {
00141 AMD( 85, 3, AMED_EXACTPOS, DIR_SE),
00142 AMD( 85, 22, 0, DIR_N ),
00143 AMD( 26, 41, AMED_EXACTPOS, DIR_SW),
00144 AMD( 56, 22, AMED_EXACTPOS, DIR_SE),
00145 AMD( 38, 8, AMED_EXACTPOS, DIR_SW),
00146 AMD( 65, 6, 0, DIR_N ),
00147 AMD( 80, 27, 0, DIR_N ),
00148 AMD( 49, 58, 0, DIR_N ),
00149 AMD( 72, 58, 0, DIR_N ),
00150 AMD( 72, 69, 0, DIR_N ),
00151 AMD( 89, 69, AMED_EXACTPOS, DIR_NE),
00152 AMD( 3, 69, AMED_NOSPDCLAMP, DIR_N ),
00153 AMD( -79, 69, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00154 AMD( 177, 85, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00155 AMD( 89, 85, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00156 AMD( 3, 85, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00157 AMD( 21, 85, 0, DIR_N ),
00158 AMD( 21, 69, 0, DIR_N ),
00159 AMD( 21, 58, AMED_EXACTPOS, DIR_SW),
00160 AMD( 1, 193, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00161 AMD( 1, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00162 AMD( 257, 1, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00163 AMD( 273, 49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00164 AMD( 44, 58, 0, DIR_N ),
00165 AMD( 44, 63, AMED_HELI_RAISE, DIR_N ),
00166 AMD( 15, 54, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00167 AMD( 15, 54, AMED_HELI_LOWER, DIR_N ),
00168 };
00169
00170
00171 static const AirportMovingData _airport_moving_data_international[51] = {
00172 AMD( 7, 55, AMED_EXACTPOS, DIR_SE),
00173 AMD( 100, 21, AMED_EXACTPOS, DIR_SE),
00174 AMD( 7, 70, 0, DIR_N ),
00175 AMD( 100, 36, 0, DIR_N ),
00176 AMD( 38, 70, AMED_EXACTPOS, DIR_SW),
00177 AMD( 38, 54, AMED_EXACTPOS, DIR_SW),
00178 AMD( 38, 38, AMED_EXACTPOS, DIR_SW),
00179 AMD( 70, 70, AMED_EXACTPOS, DIR_NE),
00180 AMD( 70, 54, AMED_EXACTPOS, DIR_NE),
00181 AMD( 70, 38, AMED_EXACTPOS, DIR_NE),
00182 AMD( 104, 71, AMED_EXACTPOS, DIR_NE),
00183 AMD( 104, 55, AMED_EXACTPOS, DIR_NE),
00184 AMD( 22, 87, 0, DIR_N ),
00185 AMD( 60, 87, 0, DIR_N ),
00186 AMD( 66, 87, 0, DIR_N ),
00187 AMD( 86, 87, AMED_EXACTPOS, DIR_NW),
00188 AMD( 86, 70, 0, DIR_N ),
00189 AMD( 86, 54, 0, DIR_N ),
00190 AMD( 86, 38, 0, DIR_N ),
00191 AMD( 86, 22, 0, DIR_N ),
00192 AMD( 66, 22, 0, DIR_N ),
00193 AMD( 60, 22, 0, DIR_N ),
00194 AMD( 38, 22, 0, DIR_N ),
00195 AMD( 22, 70, 0, DIR_N ),
00196 AMD( 22, 58, 0, DIR_N ),
00197 AMD( 22, 38, 0, DIR_N ),
00198 AMD( 22, 22, AMED_EXACTPOS, DIR_NW),
00199 AMD( 22, 6, 0, DIR_N ),
00200 AMD( 3, 6, AMED_EXACTPOS, DIR_SW),
00201 AMD( 60, 6, AMED_NOSPDCLAMP, DIR_N ),
00202 AMD( 105, 6, AMED_NOSPDCLAMP, DIR_N ),
00203 AMD( 190, 6, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00204 AMD( 193, 104, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00205 AMD( 105, 104, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00206 AMD( 3, 104, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00207 AMD( 12, 104, AMED_SLOWTURN, DIR_N ),
00208 AMD( 7, 84, 0, DIR_N ),
00209 AMD( 1, 209, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00210 AMD( 1, 6, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00211 AMD( 273, 6, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00212 AMD( 305, 81, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00213
00214 AMD( 128, 80, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00215 AMD( 128, 80, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00216 AMD( 96, 71, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00217 AMD( 96, 55, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00218 AMD( 96, 71, AMED_HELI_LOWER, DIR_N ),
00219 AMD( 96, 55, AMED_HELI_LOWER, DIR_N ),
00220 AMD( 104, 71, AMED_HELI_RAISE, DIR_N ),
00221 AMD( 104, 55, AMED_HELI_RAISE, DIR_N ),
00222 AMD( 104, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00223 AMD( 104, 32, AMED_HELI_LOWER, DIR_N ),
00224 };
00225
00226
00227 static const AirportMovingData _airport_moving_data_intercontinental[77] = {
00228 AMD( 8, 87, AMED_EXACTPOS, DIR_SE),
00229 AMD( 136, 72, AMED_EXACTPOS, DIR_SE),
00230 AMD( 8, 104, 0, DIR_N ),
00231 AMD( 136, 88, 0, DIR_N ),
00232 AMD( 56, 120, AMED_EXACTPOS, DIR_W ),
00233 AMD( 56, 104, AMED_EXACTPOS, DIR_SW),
00234 AMD( 56, 88, AMED_EXACTPOS, DIR_SW),
00235 AMD( 56, 72, AMED_EXACTPOS, DIR_SW),
00236 AMD( 88, 120, AMED_EXACTPOS, DIR_N ),
00237 AMD( 88, 104, AMED_EXACTPOS, DIR_NE),
00238 AMD( 88, 88, AMED_EXACTPOS, DIR_NE),
00239 AMD( 88, 72, AMED_EXACTPOS, DIR_NE),
00240 AMD( 88, 56, AMED_EXACTPOS, DIR_SE),
00241 AMD( 72, 56, AMED_EXACTPOS, DIR_NE),
00242 AMD( 40, 136, 0, DIR_N ),
00243 AMD( 56, 136, 0, DIR_N ),
00244 AMD( 88, 136, 0, DIR_N ),
00245 AMD( 104, 136, 0, DIR_N ),
00246 AMD( 104, 120, 0, DIR_N ),
00247 AMD( 104, 104, 0, DIR_N ),
00248 AMD( 104, 88, 0, DIR_N ),
00249 AMD( 104, 72, 0, DIR_N ),
00250 AMD( 104, 56, 0, DIR_N ),
00251 AMD( 104, 40, 0, DIR_N ),
00252 AMD( 56, 40, 0, DIR_N ),
00253 AMD( 40, 40, 0, DIR_N ),
00254 AMD( 40, 120, 0, DIR_N ),
00255 AMD( 40, 104, 0, DIR_N ),
00256 AMD( 40, 88, 0, DIR_N ),
00257 AMD( 40, 72, 0, DIR_N ),
00258 AMD( 18, 72, 0, DIR_NW),
00259 AMD( 8, 40, 0, DIR_NW),
00260 AMD( 8, 24, AMED_EXACTPOS, DIR_SW),
00261 AMD( 119, 24, AMED_NOSPDCLAMP, DIR_N ),
00262 AMD( 117, 24, AMED_NOSPDCLAMP, DIR_N ),
00263 AMD( 197, 24, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00264 AMD( 254, 84, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00265 AMD( 117, 168, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00266 AMD( 8, 168, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00267 AMD( 8, 168, 0, DIR_N ),
00268 AMD( 8, 144, 0, DIR_NW),
00269 AMD( 8, 128, 0, DIR_NW),
00270 AMD( 8, 120, AMED_EXACTPOS, DIR_NW),
00271 AMD( 56, 344, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00272 AMD( -200, 88, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00273 AMD( 56, -168, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00274 AMD( 312, 88, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00275
00276 AMD( 96, 40, AMED_NOSPDCLAMP, DIR_N ),
00277 AMD( 96, 40, AMED_NOSPDCLAMP, DIR_N ),
00278 AMD( 82, 54, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00279 AMD( 64, 56, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00280 AMD( 81, 55, AMED_HELI_LOWER, DIR_N ),
00281 AMD( 64, 56, AMED_HELI_LOWER, DIR_N ),
00282 AMD( 80, 56, AMED_HELI_RAISE, DIR_N ),
00283 AMD( 64, 56, AMED_HELI_RAISE, DIR_N ),
00284 AMD( 136, 96, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00285 AMD( 136, 96, AMED_HELI_LOWER, DIR_N ),
00286 AMD( 126, 104, 0, DIR_SE),
00287 AMD( 136, 136, 0, DIR_NE),
00288 AMD( 136, 152, AMED_EXACTPOS, DIR_NE),
00289 AMD( 16, 152, AMED_NOSPDCLAMP, DIR_N ),
00290 AMD( 20, 152, AMED_NOSPDCLAMP, DIR_N ),
00291 AMD( -56, 152, AMED_NOSPDCLAMP | AMED_TAKEOFF, DIR_N ),
00292 AMD( 24, 8, AMED_NOSPDCLAMP | AMED_LAND, DIR_N ),
00293 AMD( 136, 8, AMED_NOSPDCLAMP | AMED_BRAKE, DIR_N ),
00294 AMD( 136, 8, 0, DIR_N ),
00295 AMD( 136, 24, 0, DIR_SE),
00296 AMD( 136, 40, 0, DIR_SE),
00297 AMD( 136, 56, AMED_EXACTPOS, DIR_NE),
00298 AMD( -56, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00299 AMD( 88, 40, 0, DIR_N ),
00300 AMD( 72, 40, 0, DIR_N ),
00301 AMD( 88, 57, AMED_EXACTPOS, DIR_SE),
00302 AMD( 71, 56, AMED_EXACTPOS, DIR_NE),
00303 AMD( 8, 120, AMED_HELI_RAISE, DIR_N ),
00304 AMD( 136, 104, AMED_HELI_RAISE, DIR_N ),
00305 AMD( 197, 168, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00306 };
00307
00308
00309
00310 static const AirportMovingData _airport_moving_data_heliport[9] = {
00311 AMD( 5, 9, AMED_EXACTPOS, DIR_NE),
00312 AMD( 2, 9, AMED_HELI_RAISE, DIR_N ),
00313 AMD( -3, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00314 AMD( -3, 9, AMED_HELI_LOWER, DIR_N ),
00315 AMD( 2, 9, 0, DIR_N ),
00316 AMD( -31, 59, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00317 AMD( -31, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00318 AMD( 49, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00319 AMD( 70, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00320 };
00321
00322
00323 static const AirportMovingData _airport_moving_data_helidepot[18] = {
00324 AMD( 24, 4, AMED_EXACTPOS, DIR_NE),
00325 AMD( 24, 28, 0, DIR_N ),
00326 AMD( 5, 38, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00327 AMD( -15, -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00328 AMD( -15, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00329 AMD( 49, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00330 AMD( 49, -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00331 AMD( 8, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
00332 AMD( 8, 32, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
00333 AMD( 8, 16, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
00334 AMD( 8, 16, AMED_HELI_LOWER, DIR_NW),
00335 AMD( 8, 24, AMED_HELI_RAISE, DIR_N ),
00336 AMD( 32, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NW),
00337 AMD( 32, 24, AMED_HELI_LOWER, DIR_NW),
00338 AMD( 8, 24, AMED_EXACTPOS, DIR_NW),
00339 AMD( 24, 28, AMED_HELI_RAISE, DIR_N ),
00340 AMD( 8, 24, AMED_HELI_RAISE, DIR_SW),
00341 AMD( 8, 24, AMED_SLOWTURN | AMED_EXACTPOS, DIR_E ),
00342 };
00343
00344
00345 static const AirportMovingData _airport_moving_data_helistation[33] = {
00346 AMD( 8, 3, AMED_EXACTPOS, DIR_SE),
00347 AMD( 8, 22, 0, DIR_N ),
00348 AMD( 116, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00349 AMD( 14, 22, AMED_HELI_RAISE, DIR_N ),
00350 AMD( 24, 22, 0, DIR_N ),
00351 AMD( 40, 22, 0, DIR_N ),
00352 AMD( 40, 8, AMED_EXACTPOS, DIR_NE),
00353 AMD( 56, 8, AMED_EXACTPOS, DIR_NE),
00354 AMD( 56, 24, AMED_EXACTPOS, DIR_NE),
00355 AMD( 40, 8, AMED_EXACTPOS, DIR_N ),
00356 AMD( 56, 8, AMED_EXACTPOS, DIR_N ),
00357 AMD( 56, 24, AMED_EXACTPOS, DIR_N ),
00358 AMD( 32, 8, AMED_HELI_RAISE, DIR_N ),
00359 AMD( 48, 8, AMED_HELI_RAISE, DIR_N ),
00360 AMD( 48, 24, AMED_HELI_RAISE, DIR_N ),
00361 AMD( 84, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00362 AMD( 68, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00363 AMD( 32, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00364 AMD( 48, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00365 AMD( 48, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_NE),
00366 AMD( 40, 8, AMED_HELI_LOWER, DIR_N ),
00367 AMD( 48, 8, AMED_HELI_LOWER, DIR_N ),
00368 AMD( 48, 24, AMED_HELI_LOWER, DIR_N ),
00369 AMD( 0, 22, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00370 AMD( 0, 22, AMED_HELI_LOWER, DIR_N ),
00371 AMD( 148, -8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00372 AMD( 148, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00373 AMD( 132, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00374 AMD( 100, 24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00375 AMD( 84, 8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00376 AMD( 84, -8, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00377 AMD( 100, -24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00378 AMD( 132, -24, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00379 };
00380
00381
00382 static const AirportMovingData _airport_moving_data_oilrig[9] = {
00383 AMD( 31, 9, AMED_EXACTPOS, DIR_NE),
00384 AMD( 28, 9, AMED_HELI_RAISE, DIR_N ),
00385 AMD( 23, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00386 AMD( 23, 9, AMED_HELI_LOWER, DIR_N ),
00387 AMD( 28, 9, 0, DIR_N ),
00388 AMD( -31, 69, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00389 AMD( -31, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00390 AMD( 69, -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00391 AMD( 69, 9, AMED_NOSPDCLAMP | AMED_SLOWTURN, DIR_N ),
00392 };
00393
00394 #undef AMD
00395
00398 static const byte _airport_entries_dummy[] = {0, 1, 2, 3};
00399 static const AirportFTAbuildup _airport_fta_dummy[] = {
00400 { 0, 0, 0, 3},
00401 { 1, 0, 0, 0},
00402 { 2, 0, 0, 1},
00403 { 3, 0, 0, 2},
00404 { MAX_ELEMENTS, 0, 0, 0 }
00405 };
00406
00407
00408
00409 static const TileIndexDiffC _airport_depots_country[] = {{3, 0}};
00410 static const byte _airport_terminal_country[] = {1, 2};
00411 static const byte _airport_entries_country[] = {16, 15, 18, 17};
00412 static const AirportFTAbuildup _airport_fta_country[] = {
00413 { 0, HANGAR, NOTHING_block, 1 },
00414 { 1, 255, AIRPORT_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM1, TERM1_block, 2 }, { 1, TERM2, 0, 4 }, { 1, HELITAKEOFF, 0, 19 }, { 1, 0, 0, 6 },
00415 { 2, TERM1, TERM1_block, 1 },
00416 { 3, TERM2, TERM2_block, 5 },
00417 { 4, 255, AIRPORT_BUSY_block, 0 }, { 4, TERM2, 0, 5 }, { 4, HANGAR, 0, 1 }, { 4, TAKEOFF, 0, 6 }, { 4, HELITAKEOFF, 0, 1 },
00418 { 5, 255, AIRPORT_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, 0, 0, 4 },
00419 { 6, 0, AIRPORT_BUSY_block, 7 },
00420
00421 { 7, TAKEOFF, AIRPORT_BUSY_block, 8 },
00422 { 8, STARTTAKEOFF, NOTHING_block, 9 },
00423 { 9, ENDTAKEOFF, NOTHING_block, 0 },
00424
00425 { 10, FLYING, NOTHING_block, 15 }, { 10, LANDING, 0, 11 }, { 10, HELILANDING, 0, 20 },
00426 { 11, LANDING, AIRPORT_BUSY_block, 12 },
00427 { 12, 0, AIRPORT_BUSY_block, 13 },
00428 { 13, ENDLANDING, AIRPORT_BUSY_block, 14 }, { 13, TERM2, 0, 5 }, { 13, 0, 0, 14 },
00429 { 14, 0, AIRPORT_BUSY_block, 1 },
00430
00431 { 15, 0, NOTHING_block, 16 },
00432 { 16, 0, NOTHING_block, 17 },
00433 { 17, 0, NOTHING_block, 18 },
00434 { 18, 0, NOTHING_block, 10 },
00435 { 19, HELITAKEOFF, NOTHING_block, 0 },
00436 { 20, HELILANDING, AIRPORT_BUSY_block, 21 },
00437 { 21, HELIENDLANDING, AIRPORT_BUSY_block, 1 },
00438 { MAX_ELEMENTS, 0, 0, 0 }
00439 };
00440
00441 static const TileIndexDiffC _airport_depots_commuter[] = { { 4, 0 } };
00442 static const byte _airport_terminal_commuter[] = { 1, 3 };
00443 static const byte _airport_helipad_commuter[] = { 1, 2 };
00444 static const byte _airport_entries_commuter[] = {22, 21, 24, 23};
00445 static const AirportFTAbuildup _airport_fta_commuter[] = {
00446 { 0, HANGAR, NOTHING_block, 1 }, { 0, HELITAKEOFF, HELIPAD2_block, 1 }, { 0, 0, 0, 1 },
00447 { 1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TAKEOFF, 0, 11 }, { 1, TERM1, TAXIWAY_BUSY_block, 10 }, { 1, TERM2, TAXIWAY_BUSY_block, 10 }, { 1, TERM3, TAXIWAY_BUSY_block, 10 }, { 1, HELIPAD1, TAXIWAY_BUSY_block, 10 }, { 1, HELIPAD2, TAXIWAY_BUSY_block, 10 }, { 1, HELITAKEOFF, TAXIWAY_BUSY_block, 10 }, { 1, 0, 0, 0 },
00448 { 2, 255, AIRPORT_ENTRANCE_block, 2 }, { 2, HANGAR, 0, 8 }, { 2, TERM1, 0, 8 }, { 2, TERM2, 0, 8 }, { 2, TERM3, 0, 8 }, { 2, HELIPAD1, 0, 8 }, { 2, HELIPAD2, 0, 8 }, { 2, HELITAKEOFF, 0, 8 }, { 2, 0, 0, 2 },
00449 { 3, TERM1, TERM1_block, 8 }, { 3, HANGAR, 0, 8 }, { 3, TAKEOFF, 0, 8 }, { 3, 0, 0, 3 },
00450 { 4, TERM2, TERM2_block, 9 }, { 4, HANGAR, 0, 9 }, { 4, TAKEOFF, 0, 9 }, { 4, 0, 0, 4 },
00451 { 5, TERM3, TERM3_block, 10 }, { 5, HANGAR, 0, 10 }, { 5, TAKEOFF, 0, 10 }, { 5, 0, 0, 5 },
00452 { 6, HELIPAD1, HELIPAD1_block, 6 }, { 6, HANGAR, TAXIWAY_BUSY_block, 9 }, { 6, HELITAKEOFF, 0, 35 },
00453 { 7, HELIPAD2, HELIPAD2_block, 7 }, { 7, HANGAR, TAXIWAY_BUSY_block, 10 }, { 7, HELITAKEOFF, 0, 36 },
00454 { 8, 255, TAXIWAY_BUSY_block, 8 }, { 8, TAKEOFF, TAXIWAY_BUSY_block, 9 }, { 8, HANGAR, TAXIWAY_BUSY_block, 9 }, { 8, TERM1, TERM1_block, 3 }, { 8, 0, TAXIWAY_BUSY_block, 9 },
00455 { 9, 255, TAXIWAY_BUSY_block, 9 }, { 9, TAKEOFF, TAXIWAY_BUSY_block, 10 }, { 9, HANGAR, TAXIWAY_BUSY_block, 10 }, { 9, TERM2, TERM2_block, 4 }, { 9, HELIPAD1, HELIPAD1_block, 6 }, { 9, HELITAKEOFF, HELIPAD1_block, 6 }, { 9, TERM1, TAXIWAY_BUSY_block, 8 }, { 9, 0, TAXIWAY_BUSY_block, 10 },
00456 { 10, 255, TAXIWAY_BUSY_block, 10 }, { 10, TERM3, TERM3_block, 5 }, { 10, HELIPAD1, 0, 9 }, { 10, HELIPAD2, HELIPAD2_block, 7 }, { 10, HELITAKEOFF, HELIPAD2_block, 7 }, { 10, TAKEOFF, TAXIWAY_BUSY_block, 1 }, { 10, HANGAR, TAXIWAY_BUSY_block, 1 }, { 10, 0, TAXIWAY_BUSY_block, 9 },
00457 { 11, 0, OUT_WAY_block, 12 },
00458
00459 { 12, TAKEOFF, RUNWAY_IN_OUT_block, 13 },
00460 { 13, 0, RUNWAY_IN_OUT_block, 14 },
00461 { 14, STARTTAKEOFF, RUNWAY_IN_OUT_block, 15 },
00462 { 15, ENDTAKEOFF, NOTHING_block, 0 },
00463
00464 { 16, FLYING, NOTHING_block, 21 }, { 16, LANDING, IN_WAY_block, 17 }, { 16, HELILANDING, 0, 25 },
00465 { 17, LANDING, RUNWAY_IN_OUT_block, 18 },
00466 { 18, 0, RUNWAY_IN_OUT_block, 19 },
00467 { 19, 0, RUNWAY_IN_OUT_block, 20 },
00468 { 20, ENDLANDING, IN_WAY_block, 2 },
00469
00470 { 21, 0, NOTHING_block, 22 },
00471 { 22, 0, NOTHING_block, 23 },
00472 { 23, 0, NOTHING_block, 24 },
00473 { 24, 0, NOTHING_block, 16 },
00474
00475 { 25, HELILANDING, PRE_HELIPAD_block, 26 },
00476 { 26, HELIENDLANDING, PRE_HELIPAD_block, 26 }, { 26, HELIPAD1, 0, 27 }, { 26, HELIPAD2, 0, 28 }, { 26, HANGAR, 0, 33 },
00477 { 27, 0, NOTHING_block, 29 },
00478 { 28, 0, NOTHING_block, 30 },
00479
00480 { 29, 255, NOTHING_block, 0 }, { 29, HELIPAD1, HELIPAD1_block, 6 },
00481 { 30, 255, NOTHING_block, 0 }, { 30, HELIPAD2, HELIPAD2_block, 7 },
00482
00483 { 31, HELITAKEOFF, NOTHING_block, 0 },
00484 { 32, HELITAKEOFF, NOTHING_block, 0 },
00485 { 33, 0, TAXIWAY_BUSY_block, 34 },
00486 { 34, 0, TAXIWAY_BUSY_block, 1 },
00487 { 35, 0, HELIPAD1_block, 31 },
00488 { 36, 0, HELIPAD2_block, 32 },
00489 { MAX_ELEMENTS, 0, 0, 0 }
00490 };
00491
00492 static const TileIndexDiffC _airport_depots_city[] = { { 5, 0 } };
00493 static const byte _airport_terminal_city[] = { 1, 3 };
00494 static const byte _airport_entries_city[] = {26, 29, 27, 28};
00495 static const AirportFTAbuildup _airport_fta_city[] = {
00496 { 0, HANGAR, NOTHING_block, 1 }, { 0, TAKEOFF, OUT_WAY_block, 1 }, { 0, 0, 0, 1 },
00497 { 1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 },
00498 { 2, TERM1, TERM1_block, 7 }, { 2, TAKEOFF, OUT_WAY_block, 7 }, { 2, 0, 0, 7 },
00499 { 3, TERM2, TERM2_block, 5 }, { 3, TAKEOFF, OUT_WAY_block, 6 }, { 3, 0, 0, 6 },
00500 { 4, TERM3, TERM3_block, 5 }, { 4, TAKEOFF, OUT_WAY_block, 5 }, { 4, 0, 0, 5 },
00501 { 5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
00502 { 6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
00503 { 7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, OUT_WAY_block, 8 }, { 7, HELITAKEOFF, 0, 22 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
00504 { 8, 0, OUT_WAY_block, 9 },
00505 { 9, 0, RUNWAY_IN_OUT_block, 10 },
00506
00507 { 10, TAKEOFF, RUNWAY_IN_OUT_block, 11 },
00508 { 11, STARTTAKEOFF, NOTHING_block, 12 },
00509 { 12, ENDTAKEOFF, NOTHING_block, 0 },
00510
00511 { 13, FLYING, NOTHING_block, 18 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 23 },
00512 { 14, LANDING, RUNWAY_IN_OUT_block, 15 },
00513 { 15, 0, RUNWAY_IN_OUT_block, 17 },
00514 { 16, 0, RUNWAY_IN_OUT_block, 17 },
00515 { 17, ENDLANDING, IN_WAY_block, 7 },
00516
00517 { 18, 0, NOTHING_block, 25 },
00518 { 19, 0, NOTHING_block, 20 },
00519 { 20, 0, NOTHING_block, 21 },
00520 { 21, 0, NOTHING_block, 13 },
00521
00522 { 22, HELITAKEOFF, NOTHING_block, 0 },
00523 { 23, HELILANDING, IN_WAY_block, 24 },
00524 { 24, HELIENDLANDING, IN_WAY_block, 17 },
00525 { 25, 0, NOTHING_block, 20},
00526 { 26, 0, NOTHING_block, 19},
00527 { 27, 0, NOTHING_block, 28},
00528 { 28, 0, NOTHING_block, 19},
00529 { 29, 0, NOTHING_block, 26},
00530 { MAX_ELEMENTS, 0, 0, 0 }
00531 };
00532
00533 static const TileIndexDiffC _airport_depots_metropolitan[] = { { 5, 0 } };
00534 static const byte _airport_terminal_metropolitan[] = { 1, 3 };
00535 static const byte _airport_entries_metropolitan[] = {20, 19, 22, 21};
00536 static const AirportFTAbuildup _airport_fta_metropolitan[] = {
00537 { 0, HANGAR, NOTHING_block, 1 },
00538 { 1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 },
00539 { 2, TERM1, TERM1_block, 7 },
00540 { 3, TERM2, TERM2_block, 6 },
00541 { 4, TERM3, TERM3_block, 5 },
00542 { 5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
00543 { 6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, TERM2_block, 3 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
00544 { 7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, 0, 8 }, { 7, HELITAKEOFF, 0, 23 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
00545 { 8, 0, OUT_WAY_block, 9 },
00546 { 9, 0, RUNWAY_OUT_block, 10 },
00547
00548 { 10, TAKEOFF, RUNWAY_OUT_block, 11 },
00549 { 11, STARTTAKEOFF, NOTHING_block, 12 },
00550 { 12, ENDTAKEOFF, NOTHING_block, 0 },
00551
00552 { 13, FLYING, NOTHING_block, 19 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 25 },
00553 { 14, LANDING, RUNWAY_IN_block, 15 },
00554 { 15, 0, RUNWAY_IN_block, 16 },
00555 { 16, 255, RUNWAY_IN_block, 0 }, { 16, ENDLANDING, IN_WAY_block, 17 },
00556 { 17, 255, RUNWAY_OUT_block, 0 }, { 17, ENDLANDING, IN_WAY_block, 18 },
00557 { 18, ENDLANDING, IN_WAY_block, 7 },
00558
00559 { 19, 0, NOTHING_block, 20 },
00560 { 20, 0, NOTHING_block, 21 },
00561 { 21, 0, NOTHING_block, 22 },
00562 { 22, 0, NOTHING_block, 13 },
00563
00564 { 23, 0, NOTHING_block, 24 },
00565 { 24, HELITAKEOFF, NOTHING_block, 0 },
00566 { 25, HELILANDING, IN_WAY_block, 26 },
00567 { 26, HELIENDLANDING, IN_WAY_block, 18 },
00568 { MAX_ELEMENTS, 0, 0, 0 }
00569 };
00570
00571 static const TileIndexDiffC _airport_depots_international[] = { { 0, 3 }, { 6, 1 } };
00572 static const byte _airport_terminal_international[] = { 2, 3, 3 };
00573 static const byte _airport_helipad_international[] = { 1, 2 };
00574 static const byte _airport_entries_international[] = { 38, 37, 40, 39 };
00575 static const AirportFTAbuildup _airport_fta_international[] = {
00576 { 0, HANGAR, NOTHING_block, 2 }, { 0, 255, TERM_GROUP1_block, 0 }, { 0, 255, TERM_GROUP2_ENTER1_block, 1 }, { 0, HELITAKEOFF, HELIPAD1_block, 2 }, { 0, 0, 0, 2 },
00577 { 1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, HELITAKEOFF, HELIPAD2_block, 3 }, { 1, 0, 0, 3 },
00578 { 2, 255, AIRPORT_ENTRANCE_block, 0 }, { 2, HANGAR, 0, 0 }, { 2, TERM4, 0, 12 }, { 2, TERM5, 0, 12 }, { 2, TERM6, 0, 12 }, { 2, HELIPAD1, 0, 12 }, { 2, HELIPAD2, 0, 12 }, { 2, HELITAKEOFF, 0, 12 }, { 2, 0, 0, 23 },
00579 { 3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, 0, 0, 18 },
00580 { 4, TERM1, TERM1_block, 23 }, { 4, HANGAR, AIRPORT_ENTRANCE_block, 23 }, { 4, 0, 0, 23 },
00581 { 5, TERM2, TERM2_block, 24 }, { 5, HANGAR, AIRPORT_ENTRANCE_block, 24 }, { 5, 0, 0, 24 },
00582 { 6, TERM3, TERM3_block, 25 }, { 6, HANGAR, AIRPORT_ENTRANCE_block, 25 }, { 6, 0, 0, 25 },
00583 { 7, TERM4, TERM4_block, 16 }, { 7, HANGAR, HANGAR2_AREA_block, 16 }, { 7, 0, 0, 16 },
00584 { 8, TERM5, TERM5_block, 17 }, { 8, HANGAR, HANGAR2_AREA_block, 17 }, { 8, 0, 0, 17 },
00585 { 9, TERM6, TERM6_block, 18 }, { 9, HANGAR, HANGAR2_AREA_block, 18 }, { 9, 0, 0, 18 },
00586 { 10, HELIPAD1, HELIPAD1_block, 10 }, { 10, HANGAR, HANGAR2_AREA_block, 16 }, { 10, HELITAKEOFF, 0, 47 },
00587 { 11, HELIPAD2, HELIPAD2_block, 11 }, { 11, HANGAR, HANGAR2_AREA_block, 17 }, { 11, HELITAKEOFF, 0, 48 },
00588 { 12, 0, TERM_GROUP2_ENTER1_block, 13 },
00589 { 13, 0, TERM_GROUP2_ENTER1_block, 14 },
00590 { 14, 0, TERM_GROUP2_ENTER2_block, 15 },
00591 { 15, 0, TERM_GROUP2_ENTER2_block, 16 },
00592 { 16, 255, TERM_GROUP2_block, 0 }, { 16, TERM4, TERM4_block, 7 }, { 16, HELIPAD1, HELIPAD1_block, 10 }, { 16, HELITAKEOFF, HELIPAD1_block, 10 }, { 16, 0, 0, 17 },
00593 { 17, 255, TERM_GROUP2_block, 0 }, { 17, TERM5, TERM5_block, 8 }, { 17, TERM4, 0, 16 }, { 17, HELIPAD1, 0, 16 }, { 17, HELIPAD2, HELIPAD2_block, 11 }, { 17, HELITAKEOFF, HELIPAD2_block, 11 }, { 17, 0, 0, 18 },
00594 { 18, 255, TERM_GROUP2_block, 0 }, { 18, TERM6, TERM6_block, 9 }, { 18, TAKEOFF, 0, 19 }, { 18, HANGAR, HANGAR2_AREA_block, 3 }, { 18, 0, 0, 17 },
00595 { 19, 0, TERM_GROUP2_EXIT1_block, 20 },
00596 { 20, 0, TERM_GROUP2_EXIT1_block, 21 },
00597 { 21, 0, TERM_GROUP2_EXIT2_block, 22 },
00598 { 22, 0, TERM_GROUP2_EXIT2_block, 26 },
00599 { 23, 255, TERM_GROUP1_block, 0 }, { 23, TERM1, TERM1_block, 4 }, { 23, HANGAR, AIRPORT_ENTRANCE_block, 2 }, { 23, 0, 0, 24 },
00600 { 24, 255, TERM_GROUP1_block, 0 }, { 24, TERM2, TERM2_block, 5 }, { 24, TERM1, 0, 23 }, { 24, HANGAR, 0, 23 }, { 24, 0, 0, 25 },
00601 { 25, 255, TERM_GROUP1_block, 0 }, { 25, TERM3, TERM3_block, 6 }, { 25, TAKEOFF, 0, 26 }, { 25, 0, 0, 24 },
00602 { 26, 255, TAXIWAY_BUSY_block, 0 }, { 26, TAKEOFF, 0, 27 }, { 26, 0, 0, 25 },
00603 { 27, 0, OUT_WAY_block, 28 },
00604
00605 { 28, TAKEOFF, OUT_WAY_block, 29 },
00606 { 29, 0, RUNWAY_OUT_block, 30 },
00607 { 30, STARTTAKEOFF, NOTHING_block, 31 },
00608 { 31, ENDTAKEOFF, NOTHING_block, 0 },
00609
00610 { 32, FLYING, NOTHING_block, 37 }, { 32, LANDING, 0, 33 }, { 32, HELILANDING, 0, 41 },
00611 { 33, LANDING, RUNWAY_IN_block, 34 },
00612 { 34, 0, RUNWAY_IN_block, 35 },
00613 { 35, 0, RUNWAY_IN_block, 36 },
00614 { 36, ENDLANDING, IN_WAY_block, 36 }, { 36, 255, TERM_GROUP1_block, 0 }, { 36, 255, TERM_GROUP2_ENTER1_block, 1 }, { 36, TERM4, 0, 12 }, { 36, TERM5, 0, 12 }, { 36, TERM6, 0, 12 }, { 36, 0, 0, 2 },
00615
00616 { 37, 0, NOTHING_block, 38 },
00617 { 38, 0, NOTHING_block, 39 },
00618 { 39, 0, NOTHING_block, 40 },
00619 { 40, 0, NOTHING_block, 32 },
00620
00621 { 41, HELILANDING, PRE_HELIPAD_block, 42 },
00622 { 42, HELIENDLANDING, PRE_HELIPAD_block, 42 }, { 42, HELIPAD1, 0, 43 }, { 42, HELIPAD2, 0, 44 }, { 42, HANGAR, 0, 49 },
00623 { 43, 0, NOTHING_block, 45 },
00624 { 44, 0, NOTHING_block, 46 },
00625
00626 { 45, 255, NOTHING_block, 0 }, { 45, HELIPAD1, HELIPAD1_block, 10 },
00627 { 46, 255, NOTHING_block, 0 }, { 46, HELIPAD2, HELIPAD2_block, 11 },
00628
00629 { 47, HELITAKEOFF, NOTHING_block, 0 },
00630 { 48, HELITAKEOFF, NOTHING_block, 0 },
00631 { 49, 0, HANGAR2_AREA_block, 50 },
00632 { 50, 0, HANGAR2_AREA_block, 3 },
00633 { MAX_ELEMENTS, 0, 0, 0 }
00634 };
00635
00636
00637 static const TileIndexDiffC _airport_depots_intercontinental[] = { { 0, 5 }, { 8, 4 } };
00638 static const byte _airport_terminal_intercontinental[] = { 2, 4, 4 };
00639 static const byte _airport_helipad_intercontinental[] = { 1, 2 };
00640 static const byte _airport_entries_intercontinental[] = { 44, 43, 46, 45 };
00641 static const AirportFTAbuildup _airport_fta_intercontinental[] = {
00642 { 0, HANGAR, NOTHING_block, 2 }, { 0, 255, HANGAR1_AREA_block | TERM_GROUP1_block, 0 }, { 0, 255, HANGAR1_AREA_block | TERM_GROUP1_block, 1 }, { 0, TAKEOFF, HANGAR1_AREA_block | TERM_GROUP1_block, 2 }, { 0, 0, 0, 2 },
00643 { 1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, 255, HANGAR2_AREA_block, 0 }, { 1, 0, 0, 3 },
00644 { 2, 255, HANGAR1_AREA_block, 0 }, { 2, 255, TERM_GROUP1_block, 0 }, { 2, 255, TERM_GROUP1_block, 1 }, { 2, HANGAR, 0, 0 }, { 2, TAKEOFF, TERM_GROUP1_block, 27 }, { 2, TERM5, 0, 26 }, { 2, TERM6, 0, 26 }, { 2, TERM7, 0, 26 }, { 2, TERM8, 0, 26 }, { 2, HELIPAD1, 0, 26 }, { 2, HELIPAD2, 0, 26 }, { 2, HELITAKEOFF, 0, 74 }, { 2, 0, 0, 27 },
00645 { 3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, HELITAKEOFF, 0, 75 }, {3, TAKEOFF, 0, 59}, { 3, 0, 0, 20 },
00646 { 4, TERM1, TERM1_block, 26 }, { 4, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 26 }, { 4, 0, 0, 26 },
00647 { 5, TERM2, TERM2_block, 27 }, { 5, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 27 }, { 5, 0, 0, 27 },
00648 { 6, TERM3, TERM3_block, 28 }, { 6, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 28 }, { 6, 0, 0, 28 },
00649 { 7, TERM4, TERM4_block, 29 }, { 7, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 7, 0, 0, 29 },
00650 { 8, TERM5, TERM5_block, 18 }, { 8, HANGAR, HANGAR2_AREA_block, 18 }, { 8, 0, 0, 18 },
00651 { 9, TERM6, TERM6_block, 19 }, { 9, HANGAR, HANGAR2_AREA_block, 19 }, { 9, 0, 0, 19 },
00652 { 10, TERM7, TERM7_block, 20 }, { 10, HANGAR, HANGAR2_AREA_block, 20 }, { 10, 0, 0, 20 },
00653 { 11, TERM8, TERM8_block, 21 }, { 11, HANGAR, HANGAR2_AREA_block, 21 }, { 11, 0, 0, 21 },
00654 { 12, HELIPAD1, HELIPAD1_block, 12 }, { 12, HANGAR, 0, 70 }, { 12, HELITAKEOFF, 0, 72 },
00655 { 13, HELIPAD2, HELIPAD2_block, 13 }, { 13, HANGAR, 0, 71 }, { 13, HELITAKEOFF, 0, 73 },
00656 { 14, 0, TERM_GROUP2_ENTER1_block, 15 },
00657 { 15, 0, TERM_GROUP2_ENTER1_block, 16 },
00658 { 16, 0, TERM_GROUP2_ENTER2_block, 17 },
00659 { 17, 0, TERM_GROUP2_ENTER2_block, 18 },
00660 { 18, 255, TERM_GROUP2_block, 0 }, { 18, TERM5, TERM5_block, 8 }, { 18, TAKEOFF, 0, 19 }, { 18, HELITAKEOFF, HELIPAD1_block, 19 }, { 18, 0, TERM_GROUP2_EXIT1_block, 19 },
00661 { 19, 255, TERM_GROUP2_block, 0 }, { 19, TERM6, TERM6_block, 9 }, { 19, TERM5, 0, 18 }, { 19, TAKEOFF, 0, 57 }, { 19, HELITAKEOFF, HELIPAD1_block, 20 }, { 19, 0, TERM_GROUP2_EXIT1_block, 20 },
00662 { 20, 255, TERM_GROUP2_block, 0 }, { 20, TERM7, TERM7_block, 10 }, { 20, TERM5, 0, 19 }, { 20, TERM6, 0, 19 }, { 20, HANGAR, HANGAR2_AREA_block, 3 }, { 20, TAKEOFF, 0, 19 }, { 20, 0, TERM_GROUP2_EXIT1_block, 21 },
00663 { 21, 255, TERM_GROUP2_block, 0 }, { 21, TERM8, TERM8_block, 11 }, { 21, HANGAR, HANGAR2_AREA_block, 20 }, { 21, TERM5, 0, 20 }, { 21, TERM6, 0, 20 }, { 21, TERM7, 0, 20 }, { 21, TAKEOFF, 0, 20 }, { 21, 0, TERM_GROUP2_EXIT1_block, 22 },
00664 { 22, 255, TERM_GROUP2_block, 0 }, { 22, HANGAR, 0, 21 }, { 22, TERM5, 0, 21 }, { 22, TERM6, 0, 21 }, { 22, TERM7, 0, 21 }, { 22, TERM8, 0, 21 }, { 22, TAKEOFF, 0, 21 }, { 22, 0, 0, 23 },
00665 { 23, 0, TERM_GROUP2_EXIT1_block, 70 },
00666 { 24, 0, TERM_GROUP2_EXIT2_block, 25 },
00667 { 25, 255, TERM_GROUP2_EXIT2_block, 0 }, { 25, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 25, 0, 0, 29 },
00668 { 26, 255, TERM_GROUP1_block, 0 }, { 26, TERM1, TERM1_block, 4 }, { 26, HANGAR, HANGAR1_AREA_block, 27 }, { 26, TERM5, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM6, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM7, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM8, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELIPAD1, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELIPAD2, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELITAKEOFF, TERM_GROUP2_ENTER1_block, 14 }, { 26, 0, 0, 27 },
00669 { 27, 255, TERM_GROUP1_block, 0 }, { 27, TERM2, TERM2_block, 5 }, { 27, HANGAR, HANGAR1_AREA_block, 2 }, { 27, TERM1, 0, 26 }, { 27, TERM5, 0, 26 }, { 27, TERM6, 0, 26 }, { 27, TERM7, 0, 26 }, { 27, TERM8, 0, 26 }, { 27, HELIPAD1, 0, 14 }, { 27, HELIPAD2, 0, 14 }, { 27, 0, 0, 28 },
00670 { 28, 255, TERM_GROUP1_block, 0 }, { 28, TERM3, TERM3_block, 6 }, { 28, HANGAR, HANGAR1_AREA_block, 27 }, { 28, TERM1, 0, 27 }, { 28, TERM2, 0, 27 }, { 28, TERM4, 0, 29 }, { 28, TERM5, 0, 14 }, { 28, TERM6, 0, 14 }, { 28, TERM7, 0, 14 }, { 28, TERM8, 0, 14 }, { 28, HELIPAD1, 0, 14 }, { 28, HELIPAD2, 0, 14 }, { 28, 0, 0, 29 },
00671 { 29, 255, TERM_GROUP1_block, 0 }, { 29, TERM4, TERM4_block, 7 }, { 29, HANGAR, HANGAR1_AREA_block, 27 }, { 29, TAKEOFF, 0, 30 }, { 29, 0, 0, 28 },
00672 { 30, 0, OUT_WAY_block2, 31 },
00673 { 31, 0, OUT_WAY_block, 32 },
00674
00675 { 32, TAKEOFF, RUNWAY_OUT_block, 33 },
00676 { 33, 0, RUNWAY_OUT_block, 34 },
00677 { 34, STARTTAKEOFF, NOTHING_block, 35 },
00678 { 35, ENDTAKEOFF, NOTHING_block, 0 },
00679
00680 { 36, 0, 0, 0 },
00681 { 37, LANDING, RUNWAY_IN_block, 38 },
00682 { 38, 0, RUNWAY_IN_block, 39 },
00683 { 39, 0, RUNWAY_IN_block, 40 },
00684 { 40, ENDLANDING, RUNWAY_IN_block, 41 },
00685 { 41, 0, IN_WAY_block, 42 },
00686 { 42, 255, IN_WAY_block, 0 }, { 42, 255, TERM_GROUP1_block, 0 }, { 42, 255, TERM_GROUP1_block, 1 }, { 42, HANGAR, 0, 2 }, { 42, 0, 0, 26 },
00687
00688 { 43, 0, 0, 44 },
00689 { 44, FLYING, 0, 45 }, { 44, HELILANDING, 0, 47 }, { 44, LANDING, 0, 69 }, { 44, 0, 0, 45 },
00690 { 45, 0, 0, 46 },
00691 { 46, FLYING, 0, 43 }, { 46, LANDING, 0, 76 }, { 46, 0, 0, 43 },
00692
00693 { 47, HELILANDING, PRE_HELIPAD_block, 48 },
00694 { 48, HELIENDLANDING, PRE_HELIPAD_block, 48 }, { 48, HELIPAD1, 0, 49 }, { 48, HELIPAD2, 0, 50 }, { 48, HANGAR, 0, 55 },
00695 { 49, 0, NOTHING_block, 51 },
00696 { 50, 0, NOTHING_block, 52 },
00697
00698 { 51, 255, NOTHING_block, 0 }, { 51, HELIPAD1, HELIPAD1_block, 12 }, { 51, HANGAR, 0, 55 }, { 51, 0, 0, 12 },
00699 { 52, 255, NOTHING_block, 0 }, { 52, HELIPAD2, HELIPAD2_block, 13 }, { 52, HANGAR, 0, 55 }, { 52, 0, 0, 13 },
00700
00701 { 53, HELITAKEOFF, NOTHING_block, 0 },
00702 { 54, HELITAKEOFF, NOTHING_block, 0 },
00703 { 55, 0, HANGAR2_AREA_block, 56 },
00704 { 56, 0, HANGAR2_AREA_block, 3 },
00705
00706 { 57, 255, OUT_WAY2_block, 0 }, { 57, TAKEOFF, 0, 58 }, { 57, 0, 0, 58 },
00707 { 58, 0, OUT_WAY2_block, 59 },
00708 { 59, TAKEOFF, RUNWAY_OUT2_block, 60 },
00709 { 60, 0, RUNWAY_OUT2_block, 61 },
00710 { 61, STARTTAKEOFF, NOTHING_block, 62 },
00711 { 62, ENDTAKEOFF, NOTHING_block, 0 },
00712
00713 { 63, LANDING, RUNWAY_IN2_block, 64 },
00714 { 64, 0, RUNWAY_IN2_block, 65 },
00715 { 65, 0, RUNWAY_IN2_block, 66 },
00716 { 66, ENDLANDING, RUNWAY_IN2_block, 0 }, { 66, 255, 0, 1 }, { 66, 255, 0, 0 }, { 66, 0, 0, 67 },
00717 { 67, 0, IN_WAY2_block, 68 },
00718 { 68, 255, IN_WAY2_block, 0 }, { 68, 255, TERM_GROUP2_block, 1 }, { 68, 255, TERM_GROUP1_block, 0 }, { 68, HANGAR, HANGAR2_AREA_block, 22 }, { 68, 0, 0, 22 },
00719 { 69, 255, RUNWAY_IN2_block, 0 }, { 69, 0, RUNWAY_IN2_block, 63 },
00720 { 70, 255, TERM_GROUP2_EXIT1_block, 0 }, { 70, HELIPAD1, HELIPAD1_block, 12 }, { 70, HELITAKEOFF, HELIPAD1_block, 12 }, { 70, 0, 0, 71 },
00721 { 71, 255, TERM_GROUP2_EXIT1_block, 0 }, { 71, HELIPAD2, HELIPAD2_block, 13 }, { 71, HELITAKEOFF, HELIPAD1_block, 12 }, { 71, 0, 0, 24 },
00722 { 72, 0, HELIPAD1_block, 53 },
00723 { 73, 0, HELIPAD2_block, 54 },
00724 { 74, HELITAKEOFF, NOTHING_block, 0 },
00725 { 75, HELITAKEOFF, NOTHING_block, 0 },
00726 { 76, 255, RUNWAY_IN_block, 0 }, { 76, 0, RUNWAY_IN_block, 37 },
00727 { MAX_ELEMENTS, 0, 0, 0 }
00728 };
00729
00730
00731
00732 static const byte _airport_helipad_heliport_oilrig[] = { 1, 1 };
00733 static const byte _airport_entries_heliport_oilrig[] = { 7, 7, 7, 7 };
00734 static const AirportFTAbuildup _airport_fta_heliport_oilrig[] = {
00735 { 0, HELIPAD1, HELIPAD1_block, 1 },
00736 { 1, HELITAKEOFF, NOTHING_block, 0 },
00737 { 2, 255, AIRPORT_BUSY_block, 0 }, { 2, HELILANDING, 0, 3 }, { 2, HELITAKEOFF, 0, 1 },
00738 { 3, HELILANDING, AIRPORT_BUSY_block, 4 },
00739 { 4, HELIENDLANDING, AIRPORT_BUSY_block, 4 }, { 4, HELIPAD1, HELIPAD1_block, 0 }, { 4, HELITAKEOFF, 0, 2 },
00740
00741 { 5, 0, NOTHING_block, 6 },
00742 { 6, 0, NOTHING_block, 7 },
00743 { 7, 0, NOTHING_block, 8 },
00744 { 8, FLYING, NOTHING_block, 5 }, { 8, HELILANDING, HELIPAD1_block, 2 },
00745 { MAX_ELEMENTS, 0, 0, 0 }
00746 };
00747
00748
00749 static const TileIndexDiffC _airport_depots_helidepot[] = { { 1, 0 } };
00750 static const byte _airport_helipad_helidepot[] = { 1, 1 };
00751 static const byte _airport_entries_helidepot[] = { 4, 4, 4, 4 };
00752 static const AirportFTAbuildup _airport_fta_helidepot[] = {
00753 { 0, HANGAR, NOTHING_block, 1 },
00754 { 1, 255, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELIPAD1, HELIPAD1_block, 14 }, { 1, HELITAKEOFF, 0, 15 }, { 1, 0, 0, 0 },
00755 { 2, FLYING, NOTHING_block, 3 }, { 2, HELILANDING, PRE_HELIPAD_block, 7 }, { 2, HANGAR, 0, 12 }, { 2, HELITAKEOFF, NOTHING_block, 16 },
00756
00757 { 3, 0, NOTHING_block, 4 },
00758 { 4, 0, NOTHING_block, 5 },
00759 { 5, 0, NOTHING_block, 6 },
00760 { 6, 0, NOTHING_block, 2 },
00761
00762 { 7, HELILANDING, PRE_HELIPAD_block, 8 },
00763 { 8, HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8, HELIPAD1, 0, 9 }, { 8, HANGAR, 0, 12 }, { 8, 0, 0, 2 },
00764 { 9, 0, NOTHING_block, 10 },
00765
00766 { 10, 255, NOTHING_block, 10 }, { 10, HELIPAD1, HELIPAD1_block, 14 }, { 10, HANGAR, 0, 1 }, { 10, 0, 0, 14 },
00767
00768 { 11, HELITAKEOFF, NOTHING_block, 0 },
00769 { 12, 0, HANGAR2_AREA_block, 13 },
00770 { 13, 0, HANGAR2_AREA_block, 1 },
00771 { 14, HELIPAD1, HELIPAD1_block, 14 }, { 14, HANGAR, 0, 1 }, { 14, HELITAKEOFF, 0, 17 },
00772 { 15, HELITAKEOFF, NOTHING_block, 0 },
00773 { 16, HELITAKEOFF, 0, 14 },
00774 { 17, 0, NOTHING_block, 11 },
00775 { MAX_ELEMENTS, 0, 0, 0 }
00776 };
00777
00778
00779 static const TileIndexDiffC _airport_depots_helistation[] = { { 0, 0 } };
00780 static const byte _airport_helipad_helistation[] = { 1, 3 };
00781 static const byte _airport_entries_helistation[] = { 25, 25, 25, 25 };
00782 static const AirportFTAbuildup _airport_fta_helistation[] = {
00783 { 0, HANGAR, NOTHING_block, 8 }, { 0, HELIPAD1, 0, 1 }, { 0, HELIPAD2, 0, 1 }, { 0, HELIPAD3, 0, 1 }, { 0, HELITAKEOFF, 0, 1 }, { 0, 0, 0, 0 },
00784 { 1, 255, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELITAKEOFF, 0, 3 }, { 1, 0, 0, 4 },
00785
00786 { 2, FLYING, NOTHING_block, 28 }, { 2, HELILANDING, 0, 15 }, { 2, 0, 0, 28 },
00787
00788 { 3, HELITAKEOFF, NOTHING_block, 0 },
00789 { 4, 255, TAXIWAY_BUSY_block, 0 }, { 4, HANGAR, HANGAR2_AREA_block, 1 }, { 4, HELITAKEOFF, 0, 1 }, { 4, 0, 0, 5 },
00790 { 5, 255, TAXIWAY_BUSY_block, 0 }, { 5, HELIPAD1, HELIPAD1_block, 6 }, { 5, HELIPAD2, HELIPAD2_block, 7 }, { 5, HELIPAD3, HELIPAD3_block, 8 }, { 5, 0, 0, 4 },
00791 { 6, HELIPAD1, HELIPAD1_block, 5 }, { 6, HANGAR, HANGAR2_AREA_block, 5 }, { 6, HELITAKEOFF, 0, 9 }, { 6, 0, 0, 6 },
00792 { 7, HELIPAD2, HELIPAD2_block, 5 }, { 7, HANGAR, HANGAR2_AREA_block, 5 }, { 7, HELITAKEOFF, 0, 10 }, { 7, 0, 0, 7 },
00793 { 8, HELIPAD3, HELIPAD3_block, 5 }, { 8, HANGAR, HANGAR2_AREA_block, 5 }, { 8, HELITAKEOFF, 0, 11 }, { 8, 0, 0, 8 },
00794 { 9, 0, HELIPAD1_block, 12 },
00795 { 10, 0, HELIPAD2_block, 13 },
00796 { 11, 0, HELIPAD3_block, 14 },
00797 { 12, HELITAKEOFF, NOTHING_block, 0 },
00798 { 13, HELITAKEOFF, NOTHING_block, 0 },
00799 { 14, HELITAKEOFF, NOTHING_block, 0 },
00800
00801 { 15, HELILANDING, PRE_HELIPAD_block, 16 },
00802 { 16, HELIENDLANDING, PRE_HELIPAD_block, 16 }, { 16, HELIPAD1, 0, 17 }, { 16, HELIPAD2, 0, 18 }, { 16, HELIPAD3, 0, 19 }, { 16, HANGAR, 0, 23 },
00803 { 17, 0, NOTHING_block, 20 },
00804 { 18, 0, NOTHING_block, 21 },
00805 { 19, 0, NOTHING_block, 22 },
00806
00807 { 20, 255, NOTHING_block, 0 }, { 20, HELIPAD1, HELIPAD1_block, 6 }, { 20, HANGAR, 0, 23 }, { 20, 0, 0, 6 },
00808 { 21, 255, NOTHING_block, 0 }, { 21, HELIPAD2, HELIPAD2_block, 7 }, { 21, HANGAR, 0, 23 }, { 21, 0, 0, 7 },
00809 { 22, 255, NOTHING_block, 0 }, { 22, HELIPAD3, HELIPAD3_block, 8 }, { 22, HANGAR, 0, 23 }, { 22, 0, 0, 8 },
00810 { 23, 0, HANGAR2_AREA_block, 24 },
00811 { 24, 0, HANGAR2_AREA_block, 1 },
00812 { 25, 0, NOTHING_block, 26 },
00813 { 26, 0, NOTHING_block, 27 },
00814 { 27, 0, NOTHING_block, 2 },
00815 { 28, 0, NOTHING_block, 29 },
00816 { 29, 0, NOTHING_block, 30 },
00817 { 30, 0, NOTHING_block, 31 },
00818 { 31, 0, NOTHING_block, 32 },
00819 { 32, 0, NOTHING_block, 25 },
00820 { MAX_ELEMENTS, 0, 0, 0 }
00821 };
00822
00823 #endif