elrail_data.h

Go to the documentation of this file.
00001 /* $Id: elrail_data.h 11054 2007-09-07 21:11:12Z rubidium $ */
00005 #ifndef ELRAIL_DATA_H
00006 #define ELRAIL_DATA_H
00007 
00010 enum TLG {
00011   XEVEN_YEVEN = 0,
00012   XEVEN_YODD  = 1,
00013   XODD_YEVEN  = 2,
00014   XODD_YODD   = 3,
00015   TLG_END
00016 };
00017 
00021 enum TileSource {
00022   TS_HOME      = 0,
00023   TS_NEIGHBOUR = 1,
00024 
00025   TS_END
00026 };
00027 
00028 enum {
00029   NUM_TRACKS_AT_PCP = 6
00030 };
00031 
00033 static byte AllowedPPPonPCP[DIAGDIR_END] = {
00034   1 << DIR_N | 1 << DIR_E  | 1 << DIR_SE | 1 << DIR_S | 1 << DIR_W  | 1 << DIR_NW,
00035   1 << DIR_N | 1 << DIR_NE | 1 << DIR_E  | 1 << DIR_S | 1 << DIR_SW | 1 << DIR_W,
00036   1 << DIR_N | 1 << DIR_E  | 1 << DIR_SE | 1 << DIR_S | 1 << DIR_W  | 1 << DIR_NW,
00037   1 << DIR_N | 1 << DIR_NE | 1 << DIR_E  | 1 << DIR_S | 1 << DIR_SW | 1 << DIR_W,
00038 };
00039 
00043 static byte OwnedPPPonPCP[DIAGDIR_END] = {
00044   1 << DIR_SE | 1 << DIR_S  | 1 << DIR_SW | 1 << DIR_W,
00045   1 << DIR_N  | 1 << DIR_SW | 1 << DIR_W  | 1 << DIR_NW,
00046   1 << DIR_N  | 1 << DIR_NE | 1 << DIR_E  | 1 << DIR_NW,
00047   1 << DIR_NE | 1 << DIR_E  | 1 << DIR_SE | 1 << DIR_S
00048 };
00049 
00051 static const DiagDirection PCPpositions[TRACK_END][2] = {
00052   {DIAGDIR_NE, DIAGDIR_SW}, /* X */
00053   {DIAGDIR_SE, DIAGDIR_NW}, /* Y */
00054   {DIAGDIR_NW, DIAGDIR_NE}, /* UPPER */
00055   {DIAGDIR_SE, DIAGDIR_SW}, /* LOWER */
00056   {DIAGDIR_SW, DIAGDIR_NW}, /* LEFT */
00057   {DIAGDIR_NE, DIAGDIR_SE}, /* RIGHT */
00058 };
00059 
00060 #define PCP_NOT_ON_TRACK 0xFF
00061 
00065 static byte PreferredPPPofTrackAtPCP[TRACK_END][DIAGDIR_END] = {
00066   {    /* X */
00067     1 << DIR_NE | 1 << DIR_SE | 1 << DIR_NW, /* NE */
00068     PCP_NOT_ON_TRACK,                        /* SE */
00069     1 << DIR_SE | 1 << DIR_SW | 1 << DIR_NW, /* SW */
00070     PCP_NOT_ON_TRACK                         /* NE */
00071   }, { /* Y */
00072     PCP_NOT_ON_TRACK,
00073     1 << DIR_NE | 1 << DIR_SE | 1 << DIR_SW,
00074     PCP_NOT_ON_TRACK,
00075     1 << DIR_SW | 1 << DIR_NW | 1 << DIR_NE
00076   }, { /* UPPER */
00077     1 << DIR_E | 1 << DIR_N | 1 << DIR_S,
00078     PCP_NOT_ON_TRACK,
00079     PCP_NOT_ON_TRACK,
00080     1 << DIR_W | 1 << DIR_N | 1 << DIR_S
00081   }, { /* LOWER */
00082     PCP_NOT_ON_TRACK,
00083     1 << DIR_E | 1 << DIR_N | 1 << DIR_S,
00084     1 << DIR_W | 1 << DIR_N | 1 << DIR_S,
00085     PCP_NOT_ON_TRACK
00086   }, { /* LEFT */
00087     PCP_NOT_ON_TRACK,
00088     PCP_NOT_ON_TRACK,
00089     1 << DIR_S | 1 << DIR_E | 1 << DIR_W,
00090     1 << DIR_N | 1 << DIR_E | 1 << DIR_W
00091   }, { /* RIGHT */
00092     1 << DIR_N | 1 << DIR_E | 1 << DIR_W,
00093     1 << DIR_S | 1 << DIR_E | 1 << DIR_W,
00094     PCP_NOT_ON_TRACK,
00095     PCP_NOT_ON_TRACK
00096   }
00097 };
00098 #undef PCP_NOT_ON_TRACK
00099 
00100 
00101 #define NUM_IGNORE_GROUPS 3
00102 #define IGNORE_NONE 0xFF
00103 
00106 static byte IgnoredPCP[NUM_IGNORE_GROUPS][TLG_END][DIAGDIR_END] = {
00107   {   /* Ignore group 1, X and Y tracks */
00108     {     /* X even, Y even */
00109       IGNORE_NONE,
00110       1 << DIR_NE | 1 << DIR_SW,
00111       1 << DIR_NW | 1 << DIR_SE,
00112       IGNORE_NONE
00113     }, { /* X even, Y odd  */
00114       IGNORE_NONE,
00115       IGNORE_NONE,
00116       1 << DIR_NW | 1 << DIR_SE,
00117       1 << DIR_NE | 1 << DIR_SW
00118     }, { /* X odd,  Y even */
00119       1 << DIR_NW | 1 << DIR_SE,
00120       1 << DIR_NE | 1 << DIR_SW,
00121       IGNORE_NONE,
00122       IGNORE_NONE
00123     }, { /* X odd,  Y odd  */
00124       1 << DIR_NW | 1 << DIR_SE,
00125       IGNORE_NONE,
00126       IGNORE_NONE,
00127       1 << DIR_NE | 1 << DIR_SW
00128     }
00129   },
00130   {   /* Ignore group 2, LEFT and RIGHT tracks */
00131     {
00132       1 << DIR_E | 1 << DIR_W,
00133       IGNORE_NONE,
00134       IGNORE_NONE,
00135       1 << DIR_E | 1 << DIR_W
00136     }, {
00137       IGNORE_NONE,
00138       1 << DIR_E | 1 << DIR_W,
00139       1 << DIR_E | 1 << DIR_W,
00140       IGNORE_NONE
00141     }, {
00142       IGNORE_NONE,
00143       1 << DIR_E | 1 << DIR_W,
00144       1 << DIR_E | 1 << DIR_W,
00145       IGNORE_NONE
00146     }, {
00147       1 << DIR_E | 1 << DIR_W,
00148       IGNORE_NONE,
00149       IGNORE_NONE,
00150       1 << DIR_E | 1 << DIR_W
00151     }
00152   },
00153   {   /* Ignore group 3, UPPER and LOWER tracks */
00154     {
00155       1 << DIR_N | 1 << DIR_S,
00156       1 << DIR_N | 1 << DIR_S,
00157       IGNORE_NONE,
00158       IGNORE_NONE
00159     }, {
00160       IGNORE_NONE,
00161       IGNORE_NONE,
00162       1 << DIR_N | 1 << DIR_S,
00163       1 << DIR_N | 1 << DIR_S
00164     }, {
00165       IGNORE_NONE,
00166       IGNORE_NONE,
00167       1 << DIR_N | 1 << DIR_S ,
00168       1 << DIR_N | 1 << DIR_S
00169     }, {
00170       1 << DIR_N | 1 << DIR_S,
00171       1 << DIR_N | 1 << DIR_S,
00172       IGNORE_NONE,
00173       IGNORE_NONE
00174     }
00175   }
00176 };
00177 
00178 #undef NO_IGNORE
00179 
00181 static byte DisallowedPPPofTrackAtPCP[TRACK_END][DIAGDIR_END] = {
00182   {1 << DIR_SW | 1 << DIR_NE, 0,           1 << DIR_SW | 1 << DIR_NE, 0          }, /* X */
00183   {0,           1 << DIR_NW | 1 << DIR_SE, 0,           1 << DIR_NW | 1 << DIR_SE}, /* Y */
00184   {1 << DIR_W | 1 << DIR_E,  0,           0,           1 << DIR_W | 1 << DIR_E }, /* UPPER */
00185   {0,           1 << DIR_W | 1 << DIR_E,  1 << DIR_W | 1 << DIR_E,  0          }, /* LOWER */
00186   {0,           0,           1 << DIR_S | 1 << DIR_N,  1 << DIR_N | 1 << DIR_S }, /* LEFT */
00187   {1 << DIR_S | 1 << DIR_N,  1 << DIR_S | 1 << DIR_N,  0,           0,         }, /* RIGHT */
00188 };
00189 
00190 /* This array stores which track bits can meet at a tile edge */
00191 static const Track TracksAtPCP[DIAGDIR_END][NUM_TRACKS_AT_PCP] = {
00192   {TRACK_X, TRACK_X, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
00193   {TRACK_Y, TRACK_Y, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
00194   {TRACK_X, TRACK_X, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
00195   {TRACK_Y, TRACK_Y, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
00196 };
00197 
00198 /* takes each of the 6 track bits from the array above and
00199  * assigns it to the home tile or neighbour tile */
00200 static const TileSource TrackSourceTile[DIAGDIR_END][NUM_TRACKS_AT_PCP] = {
00201   {TS_HOME, TS_NEIGHBOUR, TS_HOME     , TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME     },
00202   {TS_HOME, TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME     , TS_NEIGHBOUR, TS_HOME     },
00203   {TS_HOME, TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME     , TS_HOME     , TS_NEIGHBOUR},
00204   {TS_HOME, TS_NEIGHBOUR, TS_HOME     , TS_NEIGHBOUR, TS_HOME     , TS_NEIGHBOUR},
00205 };
00206 
00207 /* Several PPPs maybe exist, here they are sorted in order of preference. */
00208 static const Direction PPPorder[DIAGDIR_END][TLG_END][DIR_END] = {    /*  X  -  Y  */
00209   {   /* PCP 0 */
00210     {DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_N, DIR_E, DIR_S, DIR_W}, /* evn - evn */
00211     {DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_S, DIR_W, DIR_N, DIR_E}, /* evn - odd */
00212     {DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_S, DIR_W, DIR_N, DIR_E}, /* odd - evn */
00213     {DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_N, DIR_E, DIR_S, DIR_W}, /* odd - odd */
00214   }, {/* PCP 1 */
00215     {DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_S, DIR_E, DIR_N, DIR_W}, /* evn - evn */
00216     {DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_N, DIR_W, DIR_S, DIR_E}, /* evn - odd */
00217     {DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_N, DIR_W, DIR_S, DIR_E}, /* odd - evn */
00218     {DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_S, DIR_E, DIR_N, DIR_W}, /* odd - odd */
00219   }, {/* PCP 2 */
00220     {DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_S, DIR_W, DIR_N, DIR_E}, /* evn - evn */
00221     {DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_N, DIR_E, DIR_S, DIR_W}, /* evn - odd */
00222     {DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_N, DIR_E, DIR_S, DIR_W}, /* odd - evn */
00223     {DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_S, DIR_W, DIR_N, DIR_E}, /* odd - odd */
00224   }, {/* PCP 3 */
00225     {DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_N, DIR_W, DIR_S, DIR_E}, /* evn - evn */
00226     {DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_S, DIR_E, DIR_N, DIR_W}, /* evn - odd */
00227     {DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_S, DIR_E, DIR_N, DIR_W}, /* odd - evn */
00228     {DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_N, DIR_W, DIR_S, DIR_E}, /* odd - odd */
00229   }
00230 };
00231 /* Geometric placement of the PCP relative to the tile origin */
00232 static const int8 x_pcp_offsets[DIAGDIR_END] = {0,  8, 16, 8};
00233 static const int8 y_pcp_offsets[DIAGDIR_END] = {8, 16,  8, 0};
00234 /* Geometric placement of the PPP relative to the PCP*/
00235 static const int8 x_ppp_offsets[DIR_END] = {-2, -4, -2,  0,  2,  4,  2,  0};
00236 static const int8 y_ppp_offsets[DIR_END] = {-2,  0,  2,  4,  2,  0, -2, -4};
00237 /* The type of pylon to draw at each PPP */
00238 static const SpriteID pylon_sprites[] = {
00239   SPR_PYLON_EW_N,
00240   SPR_PYLON_Y_NE,
00241   SPR_PYLON_NS_E,
00242   SPR_PYLON_X_SE,
00243   SPR_PYLON_EW_S,
00244   SPR_PYLON_Y_SW,
00245   SPR_PYLON_NS_W,
00246   SPR_PYLON_X_NW
00247 };
00248 
00249 struct SortableSpriteStruct {
00250   SpriteID image;
00251   int8 x_offset;
00252   int8 y_offset;
00253   int8 x_size;
00254   int8 y_size;
00255   int8 z_size;
00256   int8 z_offset;
00257 };
00258 
00259 enum {
00261   ELRAIL_ELEVATION = 10,
00263   ELRAIL_ELEVRAISE = ELRAIL_ELEVATION + TILE_HEIGHT
00264 };
00265 
00266 static const SortableSpriteStruct CatenarySpriteData[] = {
00267 /* X direction */
00268   /* Flat tiles: */
00269     /* Wires */
00270   { SPR_WIRE_X_SW,          0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00271   { SPR_WIRE_X_NE,          0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00272   { SPR_WIRE_X_SHORT,       0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00273 
00274   /* "up" tiles */
00275     /* Wires */
00276   { SPR_WIRE_X_SW_UP,       0,  7, 15,  8,  1, ELRAIL_ELEVRAISE }, 
00277   { SPR_WIRE_X_NE_UP,       0,  7, 15,  8,  1, ELRAIL_ELEVRAISE }, 
00278   { SPR_WIRE_X_SHORT_UP,    0,  7, 15,  8,  1, ELRAIL_ELEVRAISE }, 
00279 
00280   /* "down" tiles */
00281     /* Wires */
00282   { SPR_WIRE_X_SW_DOWN,     0,  7, 15,  8,  1, ELRAIL_ELEVATION }, 
00283   { SPR_WIRE_X_NE_DOWN,     0,  7, 15,  8,  1, ELRAIL_ELEVATION }, 
00284   { SPR_WIRE_X_SHORT_DOWN,  0,  7, 15,  8,  1, ELRAIL_ELEVATION }, 
00285 
00286 
00287 /* Y direction */
00288   /* Flat tiles: */
00289     /* Wires */
00290   { SPR_WIRE_Y_SE,          7,  0,  1, 15,  1, ELRAIL_ELEVATION }, 
00291   { SPR_WIRE_Y_NW,          7,  0,  1, 15,  1, ELRAIL_ELEVATION }, 
00292   { SPR_WIRE_Y_SHORT,       7,  0,  1, 15,  1, ELRAIL_ELEVATION }, 
00293 
00294   /* "up" tiles */
00295     /* Wires */
00296   { SPR_WIRE_Y_SE_UP,       7,  0,  8, 15,  1, ELRAIL_ELEVRAISE }, 
00297   { SPR_WIRE_Y_NW_UP,       7,  0,  8, 15,  1, ELRAIL_ELEVRAISE }, 
00298   { SPR_WIRE_Y_SHORT_UP,    7,  0,  8, 15,  1, ELRAIL_ELEVRAISE }, 
00299 
00300   /* "down" tiles */
00301     /* Wires */
00302   { SPR_WIRE_Y_SE_DOWN,     7,  0,  8, 15,  1, ELRAIL_ELEVATION }, 
00303   { SPR_WIRE_Y_NW_DOWN,     7,  0,  8, 15,  1, ELRAIL_ELEVATION }, 
00304   { SPR_WIRE_Y_SHORT_DOWN,  7,  0,  8, 15,  1, ELRAIL_ELEVATION }, 
00305 
00306 /* NS Direction */
00307   { SPR_WIRE_NS_SHORT,      8,  0,  8,  8,  1, ELRAIL_ELEVATION }, 
00308   { SPR_WIRE_NS_SHORT,      0,  8,  8,  8,  1, ELRAIL_ELEVATION }, 
00309 
00310   { SPR_WIRE_NS_N,          8,  0,  8,  8,  1, ELRAIL_ELEVATION }, 
00311   { SPR_WIRE_NS_N,          0,  8,  8,  8,  1, ELRAIL_ELEVATION }, 
00312 
00313   { SPR_WIRE_NS_S,          8,  0,  8,  8,  1, ELRAIL_ELEVATION }, 
00314   { SPR_WIRE_NS_S,          0,  8,  8,  8,  1, ELRAIL_ELEVATION }, 
00315 
00316 /* EW Direction */
00317   { SPR_WIRE_EW_SHORT,      7,  0,  1,  1,  1, ELRAIL_ELEVATION }, 
00318   { SPR_WIRE_EW_SHORT,     15,  8,  3,  3,  1, ELRAIL_ELEVATION }, 
00319 
00320   { SPR_WIRE_EW_W,          7,  0,  1,  1,  1, ELRAIL_ELEVATION }, 
00321   { SPR_WIRE_EW_W,         15,  8,  3,  3,  1, ELRAIL_ELEVATION }, 
00322 
00323   { SPR_WIRE_EW_E,          7,  0,  1,  1,  1, ELRAIL_ELEVATION }, 
00324   { SPR_WIRE_EW_E,         15,  8,  3,  3,  1, ELRAIL_ELEVATION }  
00325 };
00326 
00327 static const SortableSpriteStruct CatenarySpriteData_Depot[] = {
00328   { SPR_WIRE_DEPOT_NE,      0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00329   { SPR_WIRE_DEPOT_SE,      7,  0,  1, 15,  1, ELRAIL_ELEVATION }, 
00330   { SPR_WIRE_DEPOT_SW,      0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00331   { SPR_WIRE_DEPOT_NW,      7,  0,  1, 15,  1, ELRAIL_ELEVATION }  
00332 };
00333 
00334 static const SortableSpriteStruct CatenarySpriteData_Tunnel[] = {
00335   { SPR_WIRE_TUNNEL_NE,      0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00336   { SPR_WIRE_TUNNEL_SE,      7,  0,  1, 15,  1, ELRAIL_ELEVATION }, 
00337   { SPR_WIRE_TUNNEL_SW,      0,  7, 15,  1,  1, ELRAIL_ELEVATION }, 
00338   { SPR_WIRE_TUNNEL_NW,      7,  0,  1, 15,  1, ELRAIL_ELEVATION }  
00339 };
00340 
00341 
00353 enum CatenarySprite {
00354   WIRE_X_FLAT_SW,
00355   WIRE_X_FLAT_NE,
00356   WIRE_X_FLAT_BOTH,
00357 
00358   WIRE_X_UP_SW,
00359   WIRE_X_UP_NE,
00360   WIRE_X_UP_BOTH,
00361 
00362   WIRE_X_DOWN_SW,
00363   WIRE_X_DOWN_NE,
00364   WIRE_X_DOWN_BOTH,
00365 
00366   WIRE_Y_FLAT_SE,
00367   WIRE_Y_FLAT_NW,
00368   WIRE_Y_FLAT_BOTH,
00369 
00370   WIRE_Y_UP_SE,
00371   WIRE_Y_UP_NW,
00372   WIRE_Y_UP_BOTH,
00373 
00374   WIRE_Y_DOWN_SE,
00375   WIRE_Y_DOWN_NW,
00376   WIRE_Y_DOWN_BOTH,
00377 
00378   WIRE_NS_W_BOTH,
00379   WIRE_NS_E_BOTH,
00380 
00381   WIRE_NS_W_N,
00382   WIRE_NS_E_N,
00383 
00384   WIRE_NS_W_S,
00385   WIRE_NS_E_S,
00386 
00387   WIRE_EW_N_BOTH,
00388   WIRE_EW_S_BOTH,
00389 
00390   WIRE_EW_N_W,
00391   WIRE_EW_S_W,
00392 
00393   WIRE_EW_N_E,
00394   WIRE_EW_S_E,
00395 
00396   INVALID_CATENARY = 0xFF
00397 };
00398 
00399 /* Selects a Wire (with white and grey ends) depending on whether:
00400  * a) none (should never happen)
00401  * b) the first
00402  * c) the second
00403  * d) both
00404  * PCP exists.*/
00405 static const CatenarySprite Wires[5][TRACK_END][4] = {
00406   { /* Tileh == 0 */
00407     {INVALID_CATENARY, WIRE_X_FLAT_NE,   WIRE_X_FLAT_SW,   WIRE_X_FLAT_BOTH},
00408     {INVALID_CATENARY, WIRE_Y_FLAT_SE,   WIRE_Y_FLAT_NW,   WIRE_Y_FLAT_BOTH},
00409     {INVALID_CATENARY, WIRE_EW_N_W,      WIRE_EW_N_E,      WIRE_EW_N_BOTH},
00410     {INVALID_CATENARY, WIRE_EW_S_E,      WIRE_EW_S_W,      WIRE_EW_S_BOTH},
00411     {INVALID_CATENARY, WIRE_NS_W_S,      WIRE_NS_W_N,      WIRE_NS_W_BOTH},
00412     {INVALID_CATENARY, WIRE_NS_E_N,      WIRE_NS_E_S,      WIRE_NS_E_BOTH},
00413   }, { /* Tileh == 3 */
00414     {INVALID_CATENARY, WIRE_X_UP_NE,     WIRE_X_UP_SW,     WIRE_X_UP_BOTH},
00415     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00416     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00417     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00418     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00419     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00420   }, { /* Tileh == 6 */
00421     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00422     {INVALID_CATENARY, WIRE_Y_UP_SE,     WIRE_Y_UP_NW,     WIRE_Y_UP_BOTH},
00423     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00424     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00425     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00426     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00427   }, { /* Tileh == 9 */
00428     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00429     {INVALID_CATENARY, WIRE_Y_DOWN_SE,   WIRE_Y_DOWN_NW,   WIRE_Y_DOWN_BOTH},
00430     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00431     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00432     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00433     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00434   }, { /* Tileh == 12 */
00435     {INVALID_CATENARY, WIRE_X_DOWN_NE,   WIRE_X_DOWN_SW,   WIRE_X_DOWN_BOTH},
00436     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00437     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00438     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00439     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00440     {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
00441   }
00442 };
00443 
00444 #endif /* ELRAIL_DATA_H */

Generated on Wed Oct 1 17:03:24 2008 for openttd by  doxygen 1.5.6