# airport_defaults.h

Go to the documentation of this file.

    00001 /* $Id$ */
    00002
    00003 /*
    00004  * This file is part of OpenTTD.
    00005  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
    00006  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    00007  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
    00008  */
    00009
    00012 #ifndef AIRPORT_DEFAULTS_H
    00013 #define AIRPORT_DEFAULTS_H
    00014
    00023 #define MK(x, y, m) {{x, y}, m}
    00024
    00028 #define MKEND {{-0x80, 0}, 0}
    00029
    00031 static AirportTileTable _tile_table_country_0[] = {
    00032   MK(0, 0, APT_SMALL_BUILDING_1),
    00033   MK(1, 0, APT_SMALL_BUILDING_2),
    00034   MK(2, 0, APT_SMALL_BUILDING_3),
    00035   MK(3, 0, APT_SMALL_DEPOT_SE),
    00036   MK(0, 1, APT_GRASS_FENCE_NE_FLAG),
    00037   MK(1, 1, APT_GRASS_1),
    00038   MK(2, 1, APT_GRASS_2),
    00039   MK(3, 1, APT_GRASS_FENCE_SW),
    00040   MK(0, 2, APT_RUNWAY_SMALL_FAR_END),
    00041   MK(1, 2, APT_RUNWAY_SMALL_MIDDLE),
    00042   MK(2, 2, APT_RUNWAY_SMALL_MIDDLE),
    00043   MK(3, 2, APT_RUNWAY_SMALL_NEAR_END),
    00044   MKEND
    00045 };
    00046
    00047 static AirportTileTable *_tile_table_country[] = {
    00048   _tile_table_country_0,
    00049 };
    00050
    00052 static AirportTileTable _tile_table_commuter_0[] = {
    00053   MK(0, 0, APT_TOWER),
    00054   MK(1, 0, APT_BUILDING_3),
    00055   MK(2, 0, APT_HELIPAD_2_FENCE_NW),
    00056   MK(3, 0, APT_HELIPAD_2_FENCE_NW),
    00057   MK(4, 0, APT_DEPOT_SE),
    00058   MK(0, 1, APT_APRON_FENCE_NE),
    00059   MK(1, 1, APT_APRON),
    00060   MK(2, 1, APT_APRON),
    00061   MK(3, 1, APT_APRON),
    00062   MK(4, 1, APT_APRON_FENCE_SW),
    00063   MK(0, 2, APT_APRON_FENCE_NE),
    00064   MK(1, 2, APT_STAND),
    00065   MK(2, 2, APT_STAND),
    00066   MK(3, 2, APT_STAND),
    00067   MK(4, 2, APT_APRON_FENCE_SW),
    00068   MK(0, 3, APT_RUNWAY_END_FENCE_SE),
    00069   MK(1, 3, APT_RUNWAY_2),
    00070   MK(2, 3, APT_RUNWAY_2),
    00071   MK(3, 3, APT_RUNWAY_2),
    00072   MK(4, 3, APT_RUNWAY_END_FENCE_SE),
    00073   MKEND
    00074 };
    00075
    00076 static AirportTileTable *_tile_table_commuter[] = {
    00077   _tile_table_commuter_0,
    00078 };
    00079
    00081 static AirportTileTable _tile_table_city_0[] = {
    00082   MK(0, 0, APT_BUILDING_1),
    00083   MK(1, 0, APT_APRON_FENCE_NW),
    00084   MK(2, 0, APT_STAND_1),
    00085   MK(3, 0, APT_APRON_FENCE_NW),
    00086   MK(4, 0, APT_APRON_FENCE_NW),
    00087   MK(5, 0, APT_DEPOT_SE),
    00088   MK(0, 1, APT_BUILDING_2),
    00089   MK(1, 1, APT_PIER),
    00090   MK(2, 1, APT_ROUND_TERMINAL),
    00091   MK(3, 1, APT_STAND_PIER_NE),
    00092   MK(4, 1, APT_APRON),
    00093   MK(5, 1, APT_APRON_FENCE_SW),
    00094   MK(0, 2, APT_BUILDING_3),
    00095   MK(1, 2, APT_STAND),
    00096   MK(2, 2, APT_PIER_NW_NE),
    00097   MK(3, 2, APT_APRON_S),
    00098   MK(4, 2, APT_APRON_HOR),
    00099   MK(5, 2, APT_APRON_N_FENCE_SW),
    00100   MK(0, 3, APT_RADIO_TOWER_FENCE_NE),
    00101   MK(1, 3, APT_APRON_W),
    00102   MK(2, 3, APT_APRON_VER_CROSSING_S),
    00103   MK(3, 3, APT_APRON_HOR_CROSSING_E),
    00104   MK(4, 3, APT_ARPON_N),
    00105   MK(5, 3, APT_TOWER_FENCE_SW),
    00106   MK(0, 4, APT_EMPTY_FENCE_NE),
    00107   MK(1, 4, APT_APRON_S),
    00108   MK(2, 4, APT_APRON_HOR_CROSSING_W),
    00109   MK(3, 4, APT_APRON_VER_CROSSING_N),
    00110   MK(4, 4, APT_APRON_E),
    00111   MK(5, 4, APT_RADAR_GRASS_FENCE_SW),
    00112   MK(0, 5, APT_RUNWAY_END_FENCE_SE),
    00113   MK(1, 5, APT_RUNWAY_1),
    00114   MK(2, 5, APT_RUNWAY_2),
    00115   MK(3, 5, APT_RUNWAY_3),
    00116   MK(4, 5, APT_RUNWAY_4),
    00117   MK(5, 5, APT_RUNWAY_END_FENCE_SE),
    00118   MKEND
    00119 };
    00120
    00121 static AirportTileTable *_tile_table_city[] = {
    00122   _tile_table_city_0,
    00123 };
    00124
    00126 static AirportTileTable _tile_table_metropolitan_0[] = {
    00127   MK(0, 0, APT_BUILDING_1),
    00128   MK(1, 0, APT_APRON_FENCE_NW),
    00129   MK(2, 0, APT_STAND_1),
    00130   MK(3, 0, APT_APRON_FENCE_NW),
    00131   MK(4, 0, APT_APRON_FENCE_NW),
    00132   MK(5, 0, APT_DEPOT_SE),
    00133   MK(0, 1, APT_BUILDING_2),
    00134   MK(1, 1, APT_PIER),
    00135   MK(2, 1, APT_ROUND_TERMINAL),
    00136   MK(3, 1, APT_STAND_PIER_NE),
    00137   MK(4, 1, APT_APRON),
    00138   MK(5, 1, APT_APRON_FENCE_SW),
    00139   MK(0, 2, APT_BUILDING_3),
    00140   MK(1, 2, APT_STAND),
    00141   MK(2, 2, APT_PIER_NW_NE),
    00142   MK(3, 2, APT_APRON_S),
    00143   MK(4, 2, APT_APRON_HOR),
    00144   MK(5, 2, APT_APRON_N_FENCE_SW),
    00145   MK(0, 3, APT_RADAR_FENCE_NE),
    00146   MK(1, 3, APT_APRON),
    00147   MK(2, 3, APT_APRON),
    00148   MK(3, 3, APT_APRON),
    00149   MK(4, 3, APT_APRON),
    00150   MK(5, 3, APT_TOWER_FENCE_SW),
    00151   MK(0, 4, APT_RUNWAY_END),
    00152   MK(1, 4, APT_RUNWAY_5),
    00153   MK(2, 4, APT_RUNWAY_5),
    00154   MK(3, 4, APT_RUNWAY_5),
    00155   MK(4, 4, APT_RUNWAY_5),
    00156   MK(5, 4, APT_RUNWAY_END),
    00157   MK(0, 5, APT_RUNWAY_END_FENCE_SE),
    00158   MK(1, 5, APT_RUNWAY_2),
    00159   MK(2, 5, APT_RUNWAY_2),
    00160   MK(3, 5, APT_RUNWAY_2),
    00161   MK(4, 5, APT_RUNWAY_2),
    00162   MK(5, 5, APT_RUNWAY_END_FENCE_SE),
    00163   MKEND
    00164 };
    00165
    00166 static AirportTileTable *_tile_table_metropolitan[] = {
    00167   _tile_table_metropolitan_0,
    00168 };
    00169
    00171 static AirportTileTable _tile_table_international_0[] = {
    00172   MK(0, 0, APT_RUNWAY_END_FENCE_NW),
    00173   MK(1, 0, APT_RUNWAY_FENCE_NW),
    00174   MK(2, 0, APT_RUNWAY_FENCE_NW),
    00175   MK(3, 0, APT_RUNWAY_FENCE_NW),
    00176   MK(4, 0, APT_RUNWAY_FENCE_NW),
    00177   MK(5, 0, APT_RUNWAY_FENCE_NW),
    00178   MK(6, 0, APT_RUNWAY_END_FENCE_NW),
    00179   MK(0, 1, APT_RADIO_TOWER_FENCE_NE),
    00180   MK(1, 1, APT_APRON),
    00181   MK(2, 1, APT_APRON),
    00182   MK(3, 1, APT_APRON),
    00183   MK(4, 1, APT_APRON),
    00184   MK(5, 1, APT_APRON),
    00185   MK(6, 1, APT_DEPOT_SE),
    00186   MK(0, 2, APT_BUILDING_3),
    00187   MK(1, 2, APT_APRON),
    00188   MK(2, 2, APT_STAND),
    00189   MK(3, 2, APT_BUILDING_2),
    00190   MK(4, 2, APT_STAND),
    00191   MK(5, 2, APT_APRON),
    00192   MK(6, 2, APT_APRON_FENCE_SW),
    00193   MK(0, 3, APT_DEPOT_SE),
    00194   MK(1, 3, APT_APRON),
    00195   MK(2, 3, APT_STAND),
    00196   MK(3, 3, APT_BUILDING_2),
    00197   MK(4, 3, APT_STAND),
    00198   MK(5, 3, APT_APRON),
    00199   MK(6, 3, APT_HELIPAD_1),
    00200   MK(0, 4, APT_APRON_FENCE_NE),
    00201   MK(1, 4, APT_APRON),
    00202   MK(2, 4, APT_STAND),
    00203   MK(3, 4, APT_TOWER),
    00204   MK(4, 4, APT_STAND),
    00205   MK(5, 4, APT_APRON),
    00206   MK(6, 4, APT_HELIPAD_1),
    00207   MK(0, 5, APT_APRON_FENCE_NE),
    00208   MK(1, 5, APT_APRON),
    00209   MK(2, 5, APT_APRON),
    00210   MK(3, 5, APT_APRON),
    00211   MK(4, 5, APT_APRON),
    00212   MK(5, 5, APT_APRON),
    00213   MK(6, 5, APT_RADAR_FENCE_SW),
    00214   MK(0, 6, APT_RUNWAY_END_FENCE_SE),
    00215   MK(1, 6, APT_RUNWAY_2),
    00216   MK(2, 6, APT_RUNWAY_2),
    00217   MK(3, 6, APT_RUNWAY_2),
    00218   MK(4, 6, APT_RUNWAY_2),
    00219   MK(5, 6, APT_RUNWAY_2),
    00220   MK(6, 6, APT_RUNWAY_END_FENCE_SE),
    00221   MKEND
    00222 };
    00223
    00224 static AirportTileTable *_tile_table_international[] = {
    00225   _tile_table_international_0,
    00226 };
    00227
    00229 static AirportTileTable _tile_table_intercontinental_0[] = {
    00230   MK(0, 0, APT_RADAR_FENCE_NE),
    00231   MK(1, 0, APT_RUNWAY_END_FENCE_NE_NW),
    00232   MK(2, 0, APT_RUNWAY_FENCE_NW),
    00233   MK(3, 0, APT_RUNWAY_FENCE_NW),
    00234   MK(4, 0, APT_RUNWAY_FENCE_NW),
    00235   MK(5, 0, APT_RUNWAY_FENCE_NW),
    00236   MK(6, 0, APT_RUNWAY_FENCE_NW),
    00237   MK(7, 0, APT_RUNWAY_FENCE_NW),
    00238   MK(8, 0, APT_RUNWAY_END_FENCE_NW_SW),
    00239   MK(0, 1, APT_RUNWAY_END_FENCE_NE_NW),
    00240   MK(1, 1, APT_RUNWAY_2),
    00241   MK(2, 1, APT_RUNWAY_2),
    00242   MK(3, 1, APT_RUNWAY_2),
    00243   MK(4, 1, APT_RUNWAY_2),
    00244   MK(5, 1, APT_RUNWAY_2),
    00245   MK(6, 1, APT_RUNWAY_2),
    00246   MK(7, 1, APT_RUNWAY_END_FENCE_SE_SW),
    00247   MK(8, 1, APT_APRON_FENCE_NE_SW),
    00248   MK(0, 2, APT_APRON_FENCE_NE_SW),
    00249   MK(1, 2, APT_EMPTY),
    00250   MK(2, 2, APT_APRON_FENCE_NE),
    00251   MK(3, 2, APT_APRON),
    00252   MK(4, 2, APT_APRON),
    00253   MK(5, 2, APT_APRON),
    00254   MK(6, 2, APT_APRON),
    00255   MK(7, 2, APT_RADIO_TOWER_FENCE_NE),
    00256   MK(8, 2, APT_APRON_FENCE_NE_SW),
    00257   MK(0, 3, APT_APRON_FENCE_NE),
    00258   MK(1, 3, APT_APRON_HALF_EAST),
    00259   MK(2, 3, APT_APRON_FENCE_NE),
    00260   MK(3, 3, APT_TOWER),
    00261   MK(4, 3, APT_HELIPAD_2),
    00262   MK(5, 3, APT_HELIPAD_2),
    00263   MK(6, 3, APT_APRON),
    00264   MK(7, 3, APT_APRON_FENCE_NW),
    00265   MK(8, 3, APT_APRON_FENCE_SW),
    00266   MK(0, 4, APT_APRON_FENCE_NE),
    00267   MK(1, 4, APT_APRON),
    00268   MK(2, 4, APT_APRON),
    00269   MK(3, 4, APT_STAND),
    00270   MK(4, 4, APT_BUILDING_1),
    00271   MK(5, 4, APT_STAND),
    00272   MK(6, 4, APT_APRON),
    00273   MK(7, 4, APT_LOW_BUILDING),
    00274   MK(8, 4, APT_DEPOT_SE),
    00275   MK(0, 5, APT_DEPOT_SE),
    00276   MK(1, 5, APT_LOW_BUILDING),
    00277   MK(2, 5, APT_APRON),
    00278   MK(3, 5, APT_STAND),
    00279   MK(4, 5, APT_BUILDING_2),
    00280   MK(5, 5, APT_STAND),
    00281   MK(6, 5, APT_APRON),
    00282   MK(7, 5, APT_APRON),
    00283   MK(8, 5, APT_APRON_FENCE_SW),
    00284   MK(0, 6, APT_APRON_FENCE_NE),
    00285   MK(1, 6, APT_APRON),
    00286   MK(2, 6, APT_APRON),
    00287   MK(3, 6, APT_STAND),
    00288   MK(4, 6, APT_BUILDING_3),
    00289   MK(5, 6, APT_STAND),
    00290   MK(6, 6, APT_APRON),
    00291   MK(7, 6, APT_APRON),
    00292   MK(8, 6, APT_APRON_FENCE_SW),
    00293   MK(0, 7, APT_APRON_FENCE_NE),
    00294   MK(1, 7, APT_APRON_FENCE_SE),
    00295   MK(2, 7, APT_APRON),
    00296   MK(3, 7, APT_STAND),
    00297   MK(4, 7, APT_ROUND_TERMINAL),
    00298   MK(5, 7, APT_STAND),
    00299   MK(6, 7, APT_APRON_FENCE_SW),
    00300   MK(7, 7, APT_APRON_HALF_WEST),
    00301   MK(8, 7, APT_APRON_FENCE_SW),
    00302   MK(0, 8, APT_APRON_FENCE_NE),
    00303   MK(1, 8, APT_GRASS_FENCE_NE_FLAG_2),
    00304   MK(2, 8, APT_APRON_FENCE_NE),
    00305   MK(3, 8, APT_APRON),
    00306   MK(4, 8, APT_APRON),
    00307   MK(5, 8, APT_APRON),
    00308   MK(6, 8, APT_APRON_FENCE_SW),
    00309   MK(7, 8, APT_EMPTY),
    00310   MK(8, 8, APT_APRON_FENCE_NE_SW),
    00311   MK(0, 9, APT_APRON_FENCE_NE),
    00312   MK(1, 9, APT_RUNWAY_END_FENCE_NE_NW),
    00313   MK(2, 9, APT_RUNWAY_FENCE_NW),
    00314   MK(3, 9, APT_RUNWAY_FENCE_NW),
    00315   MK(4, 9, APT_RUNWAY_FENCE_NW),
    00316   MK(5, 9, APT_RUNWAY_FENCE_NW),
    00317   MK(6, 9, APT_RUNWAY_FENCE_NW),
    00318   MK(7, 9, APT_RUNWAY_FENCE_NW),
    00319   MK(8, 9, APT_RUNWAY_END_FENCE_SE_SW),
    00320   MK(0, 10, APT_RUNWAY_END_FENCE_NE_SE),
    00321   MK(1, 10, APT_RUNWAY_2),
    00322   MK(2, 10, APT_RUNWAY_2),
    00323   MK(3, 10, APT_RUNWAY_2),
    00324   MK(4, 10, APT_RUNWAY_2),
    00325   MK(5, 10, APT_RUNWAY_2),
    00326   MK(6, 10, APT_RUNWAY_2),
    00327   MK(7, 10, APT_RUNWAY_END_FENCE_SE_SW),
    00328   MK(8, 10, APT_EMPTY),
    00329   MKEND
    00330 };
    00331
    00332 static AirportTileTable *_tile_table_intercontinental[] = {
    00333   _tile_table_intercontinental_0,
    00334 };
    00335
    00337 static AirportTileTable _tile_table_heliport_0[] = {
    00338   MK(0, 0, APT_HELIPORT),
    00339   MKEND
    00340 };
    00341
    00342 static AirportTileTable *_tile_table_heliport[] = {
    00343   _tile_table_heliport_0,
    00344 };
    00345
    00347 static AirportTileTable _tile_table_helidepot_0[] = {
    00348   MK(0, 0, APT_LOW_BUILDING_FENCE_N),
    00349   MK(1, 0, APT_DEPOT_SE),
    00350   MK(0, 1, APT_HELIPAD_2_FENCE_NE_SE),
    00351   MK(1, 1, APT_APRON_FENCE_SE_SW),
    00352   MKEND
    00353 };
    00354
    00355 static AirportTileTable *_tile_table_helidepot[] = {
    00356   _tile_table_helidepot_0,
    00357 };
    00358
    00360 static AirportTileTable _tile_table_helistation_0[] = {
    00361   MK(0, 0, APT_DEPOT_SE),
    00362   MK(1, 0, APT_LOW_BUILDING_FENCE_NW),
    00363   MK(2, 0, APT_HELIPAD_3_FENCE_NW),
    00364   MK(3, 0, APT_HELIPAD_3_FENCE_NW_SW),
    00365   MK(0, 1, APT_APRON_FENCE_NE_SE),
    00366   MK(1, 1, APT_APRON_FENCE_SE),
    00367   MK(2, 1, APT_APRON_FENCE_SE),
    00368   MK(3, 1, APT_HELIPAD_3_FENCE_SE_SW),
    00369   MKEND
    00370 };
    00371
    00372 static AirportTileTable *_tile_table_helistation[] = {
    00373   _tile_table_helistation_0,
    00374 };
    00375
    00376 static Direction _default_airports_rotation[] = {
    00377   DIR_N,
    00378 };
    00379
    00380 #undef MK
    00381 #undef MKEND
    00382
    00384 #define AS_GENERIC(fsm, att, rot, att_len, depot_tbl, num_depots, size_x, size_y, noise, catchment, min_year, max_year, maint_cost, ttdpatch_type, class_id, name, preview, enabled) \
    00385   {fsm, att, rot, att_len, depot_tbl, num_depots, size_x, size_y, noise, catchment, min_year, max_year, name, ttdpatch_type, class_id, preview, maint_cost, enabled, GRFFileProps(AT_INVALID)}
    00386
    00388 #define AS_ND(ap_name, size_x, size_y, min_year, max_year, catchment, noise, maint_cost, ttdpatch_type, class_id, name, preview) \
    00389   AS_GENERIC(&_airportfta_##ap_name, _tile_table_##ap_name, _default_airports_rotation, lengthof(_tile_table_##ap_name), NULL, 0, \
    00390     size_x, size_y, noise, catchment, min_year, max_year, maint_cost, ttdpatch_type, class_id, name, preview, true)
    00391
    00393 #define AS(ap_name, size_x, size_y, min_year, max_year, catchment, noise, maint_cost, ttdpatch_type, class_id, name, preview) \
    00394   AS_GENERIC(&_airportfta_##ap_name, _tile_table_##ap_name, _default_airports_rotation, lengthof(_tile_table_##ap_name), _airport_depots_##ap_name, lengthof(_airport_depots_##ap_name), \
    00395     size_x, size_y, noise, catchment, min_year, max_year, maint_cost, ttdpatch_type, class_id, name, preview, true)
    00396
    00397 /* The helidepot and helistation have ATP_TTDP_SMALL because they are at ground level */
    00398 extern const AirportSpec _origin_airport_specs[] = {
    00399   AS(country,          4, 3,     0,     1959,  4,  3,  7, ATP_TTDP_SMALL,    APC_SMALL,    STR_AIRPORT_SMALL,            SPR_AIRPORT_PREVIEW_SMALL),
    00400   AS(city,             6, 6,  1955, MAX_YEAR,  5,  5, 24, ATP_TTDP_LARGE,    APC_LARGE,    STR_AIRPORT_CITY,             SPR_AIRPORT_PREVIEW_LARGE),
    00401   AS_ND(heliport,      1, 1,  1963, MAX_YEAR,  4,  1,  4, ATP_TTDP_HELIPORT, APC_HELIPORT, STR_AIRPORT_HELIPORT,         SPR_AIRPORT_PREVIEW_HELIPORT),
    00402   AS(metropolitan,     6, 6,  1980, MAX_YEAR,  6,  8, 28, ATP_TTDP_LARGE,    APC_LARGE,    STR_AIRPORT_METRO,            SPR_AIRPORT_PREVIEW_METROPOLITAN),
    00403   AS(international,    7, 7,  1990, MAX_YEAR,  8, 17, 42, ATP_TTDP_LARGE,    APC_HUB,      STR_AIRPORT_INTERNATIONAL,    SPR_AIRPORT_PREVIEW_INTERNATIONAL),
    00404   AS(commuter,         5, 4,  1983, MAX_YEAR,  4,  4, 20, ATP_TTDP_SMALL,    APC_SMALL,    STR_AIRPORT_COMMUTER,         SPR_AIRPORT_PREVIEW_COMMUTER),
    00405   AS(helidepot,        2, 2,  1976, MAX_YEAR,  4,  2,  7, ATP_TTDP_SMALL,    APC_HELIPORT, STR_AIRPORT_HELIDEPOT,        SPR_AIRPORT_PREVIEW_HELIDEPOT),
    00406   AS(intercontinental, 9, 11, 2002, MAX_YEAR, 10, 25, 72, ATP_TTDP_LARGE,    APC_HUB,      STR_AIRPORT_INTERCONTINENTAL, SPR_AIRPORT_PREVIEW_INTERCONTINENTAL),
    00407   AS(helistation,      4, 2,  1980, MAX_YEAR,  4,  3, 14, ATP_TTDP_SMALL,    APC_HELIPORT, STR_AIRPORT_HELISTATION,      SPR_AIRPORT_PREVIEW_HELISTATION),
    00408   AS_GENERIC(&_airportfta_oilrig, NULL, _default_airports_rotation, 0, NULL, 0, 1, 1, 0, 4, 0, 0, 0, ATP_TTDP_OILRIG, APC_HELIPORT, STR_NULL, 0, false),
    00409 };
    00410
    00411 assert_compile(NEW_AIRPORT_OFFSET == lengthof(_origin_airport_specs));
    00412
    00413 AirportSpec AirportSpec::dummy = AS_GENERIC(&_airportfta_dummy, NULL, _default_airports_rotation, 0, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR, 0, ATP_TTDP_LARGE, APC_BEGIN, STR_NULL, 0, false);
    00414
    00415 #undef AS
    00416 #undef AS_ND
    00417 #undef AS_GENERIC
    00418
    00419 #endif /* AIRPORT_DEFAULTS_H */