roadveh_movement.h

Go to the documentation of this file.
00001 /* $Id: roadveh_movement.h 21263 2010-11-20 09:09:57Z rubidium $ */
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 static const RoadDriveEntry _roadveh_drive_data_0[] = {
00013   {15, 5},
00014   {14, 5},
00015   {13, 5},
00016   {12, 5},
00017   {11, 5},
00018   {10, 5},
00019   { 9, 5},
00020   { 8, 5},
00021   { 7, 5},
00022   { 6, 5},
00023   { 5, 5},
00024   { 4, 5},
00025   { 3, 5},
00026   { 2, 5},
00027   { 1, 5},
00028   { 0, 5},
00029   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00030 };
00031 static const RoadDriveEntry _roadveh_drive_data_1[] = {
00032   {5,  0},
00033   {5,  1},
00034   {5,  2},
00035   {5,  3},
00036   {5,  4},
00037   {5,  5},
00038   {5,  6},
00039   {5,  7},
00040   {5,  8},
00041   {5,  9},
00042   {5, 10},
00043   {5, 11},
00044   {5, 12},
00045   {5, 13},
00046   {5, 14},
00047   {5, 15},
00048   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00049 };
00050 static const RoadDriveEntry _roadveh_drive_data_2[] = {
00051   {5, 0},
00052   {5, 1},
00053   {5, 2},
00054   {4, 3},
00055   {3, 4},
00056   {2, 5},
00057   {1, 5},
00058   {0, 5},
00059   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00060 };
00061 static const RoadDriveEntry _roadveh_drive_data_3[] = {
00062   {15,  5},
00063   {14,  5},
00064   {13,  5},
00065   {12,  5},
00066   {11,  5},
00067   {10,  5},
00068   { 9,  6},
00069   { 8,  7},
00070   { 7,  8},
00071   { 6,  9},
00072   { 5, 10},
00073   { 5, 11},
00074   { 5, 12},
00075   { 5, 13},
00076   { 5, 14},
00077   { 5, 15},
00078   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00079 };
00080 static const RoadDriveEntry _roadveh_drive_data_4[] = {
00081   { 5, 0},
00082   { 5, 1},
00083   { 5, 2},
00084   { 5, 3},
00085   { 5, 4},
00086   { 5, 5},
00087   { 6, 6},
00088   { 7, 7},
00089   { 8, 8},
00090   { 9, 9},
00091   {10, 9},
00092   {11, 9},
00093   {12, 9},
00094   {13, 9},
00095   {14, 9},
00096   {15, 9},
00097   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00098 };
00099 static const RoadDriveEntry _roadveh_drive_data_5[] = {
00100   {0,  9},
00101   {1,  9},
00102   {2,  9},
00103   {3, 10},
00104   {4, 11},
00105   {5, 12},
00106   {5, 13},
00107   {5, 14},
00108   {5, 15},
00109   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00110 };
00111 static const RoadDriveEntry _roadveh_drive_data_6[] = {
00112   {0, 6},
00113   {0, 7},
00114   {0, 8},
00115   {0, 9},
00116   {RDE_TURNED | DIAGDIR_SW, 0}
00117 };
00118 static const RoadDriveEntry _roadveh_drive_data_7[] = {
00119   {6, 15},
00120   {7, 15},
00121   {8, 15},
00122   {9, 15},
00123   {RDE_TURNED | DIAGDIR_NW, 0}
00124 };
00125 static const RoadDriveEntry _roadveh_drive_data_8[] = {
00126   { 0, 9},
00127   { 1, 9},
00128   { 2, 9},
00129   { 3, 9},
00130   { 4, 9},
00131   { 5, 9},
00132   { 6, 9},
00133   { 7, 9},
00134   { 8, 9},
00135   { 9, 9},
00136   {10, 9},
00137   {11, 9},
00138   {12, 9},
00139   {13, 9},
00140   {14, 9},
00141   {15, 9},
00142   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00143 };
00144 static const RoadDriveEntry _roadveh_drive_data_9[] = {
00145   {9, 15},
00146   {9, 14},
00147   {9, 13},
00148   {9, 12},
00149   {9, 11},
00150   {9, 10},
00151   {9,  9},
00152   {9,  8},
00153   {9,  7},
00154   {9,  6},
00155   {9,  5},
00156   {9,  4},
00157   {9,  3},
00158   {9,  2},
00159   {9,  1},
00160   {9,  0},
00161   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00162 };
00163 static const RoadDriveEntry _roadveh_drive_data_10[] = {
00164   {0, 9},
00165   {1, 9},
00166   {2, 9},
00167   {3, 9},
00168   {4, 9},
00169   {5, 9},
00170   {6, 8},
00171   {7, 7},
00172   {8, 6},
00173   {9, 5},
00174   {9, 4},
00175   {9, 3},
00176   {9, 2},
00177   {9, 1},
00178   {9, 0},
00179   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00180 };
00181 static const RoadDriveEntry _roadveh_drive_data_11[] = {
00182   { 9, 15},
00183   { 9, 14},
00184   { 9, 13},
00185   {10, 12},
00186   {11, 11},
00187   {12, 10},
00188   {13,  9},
00189   {14,  9},
00190   {15,  9},
00191   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00192 };
00193 static const RoadDriveEntry _roadveh_drive_data_12[] = {
00194   {15, 5},
00195   {14, 5},
00196   {13, 5},
00197   {12, 4},
00198   {11, 3},
00199   {10, 2},
00200   { 9, 1},
00201   { 9, 0},
00202   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00203 };
00204 static const RoadDriveEntry _roadveh_drive_data_13[] = {
00205   {9, 15},
00206   {9, 14},
00207   {9, 13},
00208   {9, 12},
00209   {9, 11},
00210   {9, 10},
00211   {8,  9},
00212   {7,  8},
00213   {6,  7},
00214   {5,  6},
00215   {4,  5},
00216   {3,  5},
00217   {2,  5},
00218   {1,  5},
00219   {0,  5},
00220   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00221 };
00222 static const RoadDriveEntry _roadveh_drive_data_14[] = {
00223   {15, 8},
00224   {15, 7},
00225   {15, 6},
00226   {15, 5},
00227   {RDE_TURNED | DIAGDIR_NE, 0}
00228 };
00229 static const RoadDriveEntry _roadveh_drive_data_15[] = {
00230   {8, 0},
00231   {7, 0},
00232   {6, 0},
00233   {5, 0},
00234   {RDE_TURNED | DIAGDIR_SE, 0}
00235 };
00236 static const RoadDriveEntry _roadveh_drive_data_16[] = {
00237   {15, 9},
00238   {14, 9},
00239   {13, 9},
00240   {12, 9},
00241   {11, 9},
00242   {10, 9},
00243   { 9, 9},
00244   { 8, 9},
00245   { 7, 9},
00246   { 6, 9},
00247   { 5, 9},
00248   { 4, 9},
00249   { 3, 9},
00250   { 2, 9},
00251   { 1, 9},
00252   { 0, 9},
00253   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00254 };
00255 static const RoadDriveEntry _roadveh_drive_data_17[] = {
00256   {9,  0},
00257   {9,  1},
00258   {9,  2},
00259   {9,  3},
00260   {9,  4},
00261   {9,  5},
00262   {9,  6},
00263   {9,  7},
00264   {9,  8},
00265   {9,  9},
00266   {9, 10},
00267   {9, 11},
00268   {9, 12},
00269   {9, 13},
00270   {9, 14},
00271   {9, 15},
00272   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00273 };
00274 static const RoadDriveEntry _roadveh_drive_data_18[] = {
00275   {9, 0},
00276   {9, 1},
00277   {9, 2},
00278   {9, 3},
00279   {9, 4},
00280   {9, 5},
00281   {8, 6},
00282   {7, 7},
00283   {6, 8},
00284   {5, 9},
00285   {4, 9},
00286   {3, 9},
00287   {2, 9},
00288   {1, 9},
00289   {0, 9},
00290   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00291 };
00292 static const RoadDriveEntry _roadveh_drive_data_19[] = {
00293   {15,  9},
00294   {14,  9},
00295   {13,  9},
00296   {12, 10},
00297   {11, 11},
00298   {10, 12},
00299   { 9, 13},
00300   { 9, 14},
00301   { 9, 15},
00302   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00303 };
00304 static const RoadDriveEntry _roadveh_drive_data_20[] = {
00305   { 9, 0},
00306   { 9, 1},
00307   {10, 2},
00308   {11, 3},
00309   {12, 4},
00310   {13, 5},
00311   {14, 5},
00312   {15, 5},
00313   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00314 };
00315 static const RoadDriveEntry _roadveh_drive_data_21[] = {
00316   {0,  5},
00317   {1,  5},
00318   {2,  5},
00319   {3,  5},
00320   {4,  5},
00321   {5,  6},
00322   {6,  7},
00323   {7,  8},
00324   {8,  9},
00325   {9, 10},
00326   {9, 11},
00327   {9, 12},
00328   {9, 13},
00329   {9, 14},
00330   {9, 15},
00331   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00332 };
00333 static const RoadDriveEntry _roadveh_drive_data_22[] = {
00334   {0, 8},
00335   {0, 7},
00336   {0, 6},
00337   {0, 5},
00338   {RDE_TURNED | DIAGDIR_SW, 0}
00339 };
00340 static const RoadDriveEntry _roadveh_drive_data_23[] = {
00341   {8, 15},
00342   {7, 15},
00343   {6, 15},
00344   {5, 15},
00345   {RDE_TURNED | DIAGDIR_NW, 0}
00346 };
00347 static const RoadDriveEntry _roadveh_drive_data_24[] = {
00348   { 0, 5},
00349   { 1, 5},
00350   { 2, 5},
00351   { 3, 5},
00352   { 4, 5},
00353   { 5, 5},
00354   { 6, 5},
00355   { 7, 5},
00356   { 8, 5},
00357   { 9, 5},
00358   {10, 5},
00359   {11, 5},
00360   {12, 5},
00361   {13, 5},
00362   {14, 5},
00363   {15, 5},
00364   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00365 };
00366 static const RoadDriveEntry _roadveh_drive_data_25[] = {
00367   {5, 15},
00368   {5, 14},
00369   {5, 13},
00370   {5, 12},
00371   {5, 11},
00372   {5, 10},
00373   {5,  9},
00374   {5,  8},
00375   {5,  7},
00376   {5,  6},
00377   {5,  5},
00378   {5,  4},
00379   {5,  3},
00380   {5,  2},
00381   {5,  1},
00382   {5,  0},
00383   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00384 };
00385 static const RoadDriveEntry _roadveh_drive_data_26[] = {
00386   {0, 5},
00387   {1, 5},
00388   {2, 5},
00389   {3, 4},
00390   {4, 3},
00391   {5, 2},
00392   {5, 1},
00393   {5, 0},
00394   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00395 };
00396 static const RoadDriveEntry _roadveh_drive_data_27[] = {
00397   { 5, 15},
00398   { 5, 14},
00399   { 5, 13},
00400   { 5, 12},
00401   { 5, 11},
00402   { 5, 10},
00403   { 6,  9},
00404   { 7,  8},
00405   { 8,  7},
00406   { 9,  6},
00407   {10,  5},
00408   {11,  5},
00409   {12,  5},
00410   {13,  5},
00411   {14,  5},
00412   {15,  5},
00413   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00414 };
00415 static const RoadDriveEntry _roadveh_drive_data_28[] = {
00416   {15, 9},
00417   {14, 9},
00418   {13, 9},
00419   {12, 9},
00420   {11, 9},
00421   {10, 9},
00422   { 9, 9},
00423   { 8, 8},
00424   { 7, 7},
00425   { 6, 6},
00426   { 5, 5},
00427   { 5, 4},
00428   { 5, 3},
00429   { 5, 2},
00430   { 5, 1},
00431   { 5, 0},
00432   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00433 };
00434 static const RoadDriveEntry _roadveh_drive_data_29[] = {
00435   {5, 15},
00436   {5, 14},
00437   {5, 13},
00438   {5, 12},
00439   {4, 11},
00440   {3, 10},
00441   {2,  9},
00442   {1,  9},
00443   {0,  9},
00444   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00445 };
00446 static const RoadDriveEntry _roadveh_drive_data_30[] = {
00447   {15, 6},
00448   {15, 7},
00449   {15, 8},
00450   {15, 9},
00451   {RDE_TURNED | DIAGDIR_NE, 0}
00452 };
00453 static const RoadDriveEntry _roadveh_drive_data_31[] = {
00454   {6, 0},
00455   {7, 0},
00456   {8, 0},
00457   {9, 0},
00458   {RDE_TURNED | DIAGDIR_SE, 0}
00459 };
00460 static const RoadDriveEntry _rv_station_left_sw_far[] = {
00461   {15,  5},
00462   {14,  5},
00463   {13,  6},
00464   {13,  7},
00465   {13,  8},
00466   {13,  9},
00467   {13, 10},
00468   {13, 11},
00469   {12, 12},
00470   {11, 12},
00471   {10, 12},
00472   { 9, 12},
00473   { 8, 12},
00474   { 7, 12},
00475   { 6, 12},
00476   { 5, 11},
00477   { 5, 10},
00478   { 5,  9},
00479   { 5,  8},
00480   { 5,  7},
00481   { 5,  6},
00482   { 5,  7},
00483   { 5,  8},
00484   { 5,  9},
00485   { 5, 10},
00486   { 5, 11},
00487   { 6, 12},
00488   { 7, 12},
00489   { 8, 12},
00490   { 9, 12},
00491   {10, 12},
00492   {11, 12},
00493   {12, 12},
00494   {13, 11},
00495   {13, 10},
00496   {14,  9},
00497   {15,  9},
00498   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00499 };
00500 static const RoadDriveEntry _rv_station_left_nw_far[] = {
00501   { 5,  0},
00502   { 5,  1},
00503   { 6,  2},
00504   { 7,  2},
00505   { 8,  2},
00506   { 9,  2},
00507   {10,  2},
00508   {11,  2},
00509   {12,  3},
00510   {12,  4},
00511   {12,  5},
00512   {12,  6},
00513   {12,  7},
00514   {12,  8},
00515   {12,  9},
00516   {11, 10},
00517   {10, 10},
00518   { 9, 10},
00519   { 8, 10},
00520   { 7, 10},
00521   { 6, 10},
00522   { 7, 10},
00523   { 8, 10},
00524   { 9, 10},
00525   {10, 10},
00526   {11, 10},
00527   {12,  9},
00528   {12,  8},
00529   {12,  7},
00530   {12,  6},
00531   {12,  5},
00532   {12,  4},
00533   {12,  3},
00534   {11,  2},
00535   {10,  2},
00536   { 9,  1},
00537   { 9,  0},
00538   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00539 };
00540 static const RoadDriveEntry _rv_station_left_sw_near[] = {
00541   {15,  5},
00542   {14,  5},
00543   {13,  6},
00544   {13,  7},
00545   {13,  8},
00546   {13,  9},
00547   {13, 10},
00548   {13, 11},
00549   {12, 12},
00550   {11, 12},
00551   {10, 12},
00552   { 9, 11},
00553   { 9, 10},
00554   { 9,  9},
00555   { 9,  8},
00556   { 9,  7},
00557   { 9,  6},
00558   { 9,  7},
00559   { 9,  8},
00560   { 9,  9},
00561   { 9, 10},
00562   { 9, 11},
00563   {10, 12},
00564   {11, 12},
00565   {12, 12},
00566   {13, 11},
00567   {13, 10},
00568   {14,  9},
00569   {15,  9},
00570   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00571 };
00572 static const RoadDriveEntry _rv_station_left_nw_near[] = {
00573   { 5, 0},
00574   { 5, 1},
00575   { 6, 2},
00576   { 7, 2},
00577   { 8, 2},
00578   { 9, 2},
00579   {10, 2},
00580   {11, 2},
00581   {12, 3},
00582   {12, 4},
00583   {12, 5},
00584   {11, 6},
00585   {10, 6},
00586   { 9, 6},
00587   { 8, 6},
00588   { 7, 6},
00589   { 6, 6},
00590   { 7, 6},
00591   { 8, 6},
00592   { 9, 6},
00593   {10, 6},
00594   {11, 6},
00595   {12, 5},
00596   {12, 4},
00597   {12, 3},
00598   {11, 2},
00599   {10, 2},
00600   { 9, 1},
00601   { 9, 0},
00602   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00603 };
00604 static const RoadDriveEntry _rv_station_left_ne_far[] = {
00605   { 0, 9},
00606   { 1, 9},
00607   { 2, 8},
00608   { 2, 7},
00609   { 2, 6},
00610   { 2, 5},
00611   { 2, 4},
00612   { 3, 3},
00613   { 4, 3},
00614   { 5, 3},
00615   { 6, 3},
00616   { 7, 3},
00617   { 8, 3},
00618   { 9, 3},
00619   {10, 4},
00620   {10, 5},
00621   {10, 6},
00622   {10, 7},
00623   {10, 8},
00624   {10, 9},
00625   {10, 8},
00626   {10, 7},
00627   {10, 6},
00628   {10, 5},
00629   {10, 4},
00630   { 9, 3},
00631   { 8, 3},
00632   { 7, 3},
00633   { 6, 3},
00634   { 5, 3},
00635   { 4, 3},
00636   { 3, 3},
00637   { 2, 4},
00638   { 1, 5},
00639   { 0, 5},
00640   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00641 };
00642 static const RoadDriveEntry _rv_station_left_se_far[] = {
00643   {9, 15},
00644   {9, 14},
00645   {8, 13},
00646   {7, 13},
00647   {6, 13},
00648   {5, 13},
00649   {4, 13},
00650   {3, 12},
00651   {3, 11},
00652   {3, 10},
00653   {3,  9},
00654   {3,  8},
00655   {3,  7},
00656   {3,  6},
00657   {4,  5},
00658   {5,  5},
00659   {6,  5},
00660   {7,  5},
00661   {8,  5},
00662   {9,  5},
00663   {8,  5},
00664   {7,  5},
00665   {6,  5},
00666   {5,  5},
00667   {4,  5},
00668   {3,  6},
00669   {3,  7},
00670   {3,  8},
00671   {3,  9},
00672   {3, 10},
00673   {3, 11},
00674   {3, 12},
00675   {4, 13},
00676   {5, 14},
00677   {5, 15},
00678   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00679 };
00680 static const RoadDriveEntry _rv_station_left_ne_near[] = {
00681   {0, 9},
00682   {1, 9},
00683   {2, 8},
00684   {2, 7},
00685   {2, 6},
00686   {2, 5},
00687   {2, 4},
00688   {3, 3},
00689   {4, 3},
00690   {5, 3},
00691   {6, 4},
00692   {6, 5},
00693   {6, 6},
00694   {6, 7},
00695   {6, 8},
00696   {6, 9},
00697   {6, 8},
00698   {6, 7},
00699   {6, 6},
00700   {6, 5},
00701   {6, 4},
00702   {5, 3},
00703   {4, 3},
00704   {3, 3},
00705   {2, 4},
00706   {1, 5},
00707   {0, 5},
00708   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00709 };
00710 static const RoadDriveEntry _rv_station_left_se_near[] = {
00711   {9, 15},
00712   {9, 14},
00713   {8, 13},
00714   {7, 13},
00715   {6, 13},
00716   {5, 13},
00717   {4, 13},
00718   {3, 12},
00719   {3, 11},
00720   {3, 10},
00721   {4,  9},
00722   {5,  9},
00723   {6,  9},
00724   {7,  9},
00725   {8,  9},
00726   {9,  9},
00727   {8,  9},
00728   {7,  9},
00729   {6,  9},
00730   {5,  9},
00731   {4,  9},
00732   {3, 10},
00733   {3, 11},
00734   {3, 12},
00735   {4, 13},
00736   {5, 14},
00737   {5, 15},
00738   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00739 };
00740 static const RoadDriveEntry _rv_station_right_sw_far[] = {
00741   {15,  9},
00742   {14,  9},
00743   {13, 10},
00744   {13, 11},
00745   {12, 12},
00746   {11, 12},
00747   {10, 12},
00748   { 9, 12},
00749   { 8, 12},
00750   { 7, 12},
00751   { 6, 12},
00752   { 5, 11},
00753   { 5, 10},
00754   { 5,  9},
00755   { 5,  8},
00756   { 5,  7},
00757   { 5,  6},
00758   { 5,  7},
00759   { 5,  8},
00760   { 5,  9},
00761   { 5, 10},
00762   { 5, 11},
00763   { 6, 12},
00764   { 7, 12},
00765   { 8, 12},
00766   { 9, 12},
00767   {10, 12},
00768   {11, 12},
00769   {12, 12},
00770   {13, 11},
00771   {13, 10},
00772   {13,  9},
00773   {13,  8},
00774   {13,  7},
00775   {13,  6},
00776   {14,  5},
00777   {15,  5},
00778   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00779 };
00780 static const RoadDriveEntry _rv_station_right_nw_far[] = {
00781   { 9,  0},
00782   { 9,  1},
00783   {10,  2},
00784   {11,  2},
00785   {12,  3},
00786   {12,  4},
00787   {12,  5},
00788   {12,  6},
00789   {12,  7},
00790   {12,  8},
00791   {12,  9},
00792   {11, 10},
00793   {10, 10},
00794   { 9, 10},
00795   { 8, 10},
00796   { 7, 10},
00797   { 6, 10},
00798   { 7, 10},
00799   { 8, 10},
00800   { 9, 10},
00801   {10, 10},
00802   {11, 10},
00803   {12,  9},
00804   {12,  8},
00805   {12,  7},
00806   {12,  6},
00807   {12,  5},
00808   {12,  4},
00809   {12,  3},
00810   {11,  2},
00811   {10,  2},
00812   { 9,  2},
00813   { 8,  2},
00814   { 7,  2},
00815   { 6,  2},
00816   { 5,  1},
00817   { 5,  0},
00818   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00819 };
00820 static const RoadDriveEntry _rv_station_right_sw_near[] = {
00821   {15,  9},
00822   {14,  9},
00823   {13, 10},
00824   {13, 11},
00825   {12, 12},
00826   {11, 12},
00827   {10, 12},
00828   { 9, 11},
00829   { 9, 10},
00830   { 9,  9},
00831   { 9,  8},
00832   { 9,  7},
00833   { 9,  6},
00834   { 9,  7},
00835   { 9,  8},
00836   { 9,  9},
00837   { 9, 10},
00838   { 9, 11},
00839   {10, 12},
00840   {11, 12},
00841   {12, 12},
00842   {13, 11},
00843   {13, 10},
00844   {13,  9},
00845   {13,  8},
00846   {13,  7},
00847   {13,  6},
00848   {14,  5},
00849   {15,  5},
00850   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
00851 };
00852 static const RoadDriveEntry _rv_station_right_nw_near[] = {
00853   { 9, 0},
00854   { 9, 1},
00855   {10, 2},
00856   {11, 2},
00857   {12, 3},
00858   {12, 4},
00859   {12, 5},
00860   {11, 6},
00861   {10, 6},
00862   { 9, 6},
00863   { 8, 6},
00864   { 7, 6},
00865   { 6, 6},
00866   { 7, 6},
00867   { 8, 6},
00868   { 9, 6},
00869   {10, 6},
00870   {11, 6},
00871   {12, 5},
00872   {12, 4},
00873   {12, 3},
00874   {11, 2},
00875   {10, 2},
00876   { 9, 2},
00877   { 8, 2},
00878   { 7, 2},
00879   { 6, 2},
00880   { 5, 1},
00881   { 5, 0},
00882   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
00883 };
00884 static const RoadDriveEntry _rv_station_right_ne_far[] = {
00885   { 0, 5},
00886   { 1, 5},
00887   { 2, 4},
00888   { 3, 3},
00889   { 4, 3},
00890   { 5, 3},
00891   { 6, 3},
00892   { 7, 3},
00893   { 8, 3},
00894   { 9, 3},
00895   {10, 4},
00896   {10, 5},
00897   {10, 6},
00898   {10, 7},
00899   {10, 8},
00900   {10, 9},
00901   {10, 8},
00902   {10, 7},
00903   {10, 6},
00904   {10, 5},
00905   {10, 4},
00906   { 9, 3},
00907   { 8, 3},
00908   { 7, 3},
00909   { 6, 3},
00910   { 5, 3},
00911   { 4, 3},
00912   { 3, 3},
00913   { 2, 4},
00914   { 2, 5},
00915   { 2, 6},
00916   { 2, 7},
00917   { 2, 8},
00918   { 1, 9},
00919   { 0, 9},
00920   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00921 };
00922 static const RoadDriveEntry _rv_station_right_se_far[] = {
00923   {5, 15},
00924   {5, 14},
00925   {4, 13},
00926   {3, 12},
00927   {3, 11},
00928   {3, 10},
00929   {3,  9},
00930   {3,  8},
00931   {3,  7},
00932   {3,  6},
00933   {4,  5},
00934   {5,  5},
00935   {6,  5},
00936   {7,  5},
00937   {8,  5},
00938   {9,  5},
00939   {8,  5},
00940   {7,  5},
00941   {6,  5},
00942   {5,  5},
00943   {4,  5},
00944   {3,  6},
00945   {3,  7},
00946   {3,  8},
00947   {3,  9},
00948   {3, 10},
00949   {3, 11},
00950   {3, 12},
00951   {4, 13},
00952   {5, 13},
00953   {6, 13},
00954   {7, 13},
00955   {8, 13},
00956   {9, 14},
00957   {9, 15},
00958   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
00959 };
00960 static const RoadDriveEntry _rv_station_right_ne_near[] = {
00961   {0, 5},
00962   {1, 5},
00963   {2, 4},
00964   {3, 3},
00965   {4, 3},
00966   {5, 3},
00967   {6, 4},
00968   {6, 5},
00969   {6, 6},
00970   {6, 7},
00971   {6, 8},
00972   {6, 9},
00973   {6, 8},
00974   {6, 7},
00975   {6, 6},
00976   {6, 5},
00977   {6, 4},
00978   {5, 3},
00979   {4, 3},
00980   {3, 3},
00981   {2, 4},
00982   {2, 5},
00983   {2, 6},
00984   {2, 7},
00985   {2, 8},
00986   {1, 9},
00987   {0, 9},
00988   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
00989 };
00990 static const RoadDriveEntry _rv_station_right_se_near[] = {
00991   {5, 15},
00992   {5, 14},
00993   {4, 13},
00994   {3, 12},
00995   {3, 11},
00996   {3, 10},
00997   {4,  9},
00998   {5,  9},
00999   {6,  9},
01000   {7,  9},
01001   {8,  9},
01002   {9,  9},
01003   {8,  9},
01004   {7,  9},
01005   {6,  9},
01006   {5,  9},
01007   {4,  9},
01008   {3, 10},
01009   {3, 11},
01010   {3, 12},
01011   {4, 13},
01012   {5, 13},
01013   {6, 13},
01014   {7, 13},
01015   {8, 13},
01016   {9, 14},
01017   {9, 15},
01018   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
01019 };
01020 
01021 static const RoadDriveEntry * const _road_road_drive_data[] = {
01022   _roadveh_drive_data_0,
01023   _roadveh_drive_data_1,
01024   _roadveh_drive_data_2,
01025   _roadveh_drive_data_3,
01026   _roadveh_drive_data_4,
01027   _roadveh_drive_data_5,
01028   _roadveh_drive_data_6,
01029   _roadveh_drive_data_7,
01030   _roadveh_drive_data_8,
01031   _roadveh_drive_data_9,
01032   _roadveh_drive_data_10,
01033   _roadveh_drive_data_11,
01034   _roadveh_drive_data_12,
01035   _roadveh_drive_data_13,
01036   _roadveh_drive_data_14,
01037   _roadveh_drive_data_15,
01038   _roadveh_drive_data_16,
01039   _roadveh_drive_data_17,
01040   _roadveh_drive_data_18,
01041   _roadveh_drive_data_19,
01042   _roadveh_drive_data_20,
01043   _roadveh_drive_data_21,
01044   _roadveh_drive_data_22,
01045   _roadveh_drive_data_23,
01046   _roadveh_drive_data_24,
01047   _roadveh_drive_data_25,
01048   _roadveh_drive_data_26,
01049   _roadveh_drive_data_27,
01050   _roadveh_drive_data_28,
01051   _roadveh_drive_data_29,
01052   _roadveh_drive_data_30,
01053   _roadveh_drive_data_31,
01054   _rv_station_left_sw_far,
01055   _rv_station_left_nw_far,
01056   _rv_station_left_sw_near,
01057   _rv_station_left_nw_near,
01058   _rv_station_left_sw_far,
01059   _rv_station_left_nw_far,
01060   _rv_station_left_sw_near,
01061   _rv_station_left_nw_near,
01062   _rv_station_left_ne_far,
01063   _rv_station_left_se_far,
01064   _rv_station_left_ne_near,
01065   _rv_station_left_se_near,
01066   _rv_station_left_ne_far,
01067   _rv_station_left_se_far,
01068   _rv_station_left_ne_near,
01069   _rv_station_left_se_near,
01070   _rv_station_right_sw_far,
01071   _rv_station_right_nw_far,
01072   _rv_station_right_sw_near,
01073   _rv_station_right_nw_near,
01074   _rv_station_right_sw_far,
01075   _rv_station_right_nw_far,
01076   _rv_station_right_sw_near,
01077   _rv_station_right_nw_near,
01078   _rv_station_right_ne_far,
01079   _rv_station_right_se_far,
01080   _rv_station_right_ne_near,
01081   _rv_station_right_se_near,
01082   _rv_station_right_ne_far,
01083   _rv_station_right_se_far,
01084   _rv_station_right_ne_near,
01085   _rv_station_right_se_near,
01086 };
01087 
01089 extern const byte _road_stop_stop_frame[] = {
01090   /* Duplicated left and right because of "entered stop" bit */
01091   20, 20, 16, 16,  20, 20, 16, 16,
01092   19, 19, 15, 15,  19, 19, 15, 15,
01093   16, 16, 12, 12,  16, 16, 12, 12,
01094   15, 15, 11, 11,  15, 15, 11, 11
01095 };
01096 
01097 static const RoadDriveEntry _roadveh_tram_turn_ne_0[] = {
01098   {15, 5},
01099   {14, 5},
01100   {13, 5},
01101   {12, 5},
01102   {11, 5},
01103   {10, 5},
01104   { 9, 5},
01105   { 8, 5},
01106   { 7, 5},
01107   { 6, 5},
01108   { 5, 5},
01109   { 4, 5},
01110   { 3, 5},
01111   { 2, 5},
01112   { 1, 5},
01113   { 0, 5},
01114   { 0, 6},
01115   { 0, 7},
01116   { 0, 8},
01117   { 0, 9},
01118   {RDE_TURNED | DIAGDIR_SW, 0},
01119   { 1, 9},
01120   { 2, 9},
01121   { 3, 9},
01122   { 4, 9},
01123   { 5, 9},
01124   { 6, 9},
01125   { 7, 9},
01126   { 8, 9},
01127   { 9, 9},
01128   {10, 9},
01129   {11, 9},
01130   {12, 9},
01131   {13, 9},
01132   {14, 9},
01133   {15, 9},
01134   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
01135 };
01136 
01137 static const RoadDriveEntry _roadveh_tram_turn_ne_1[] = {
01138   {15, 9},
01139   {14, 9},
01140   {13, 9},
01141   {12, 9},
01142   {11, 9},
01143   {10, 9},
01144   { 9, 9},
01145   { 8, 9},
01146   { 7, 9},
01147   { 6, 9},
01148   { 5, 9},
01149   { 4, 9},
01150   { 3, 9},
01151   { 2, 9},
01152   { 1, 9},
01153   { 0, 9},
01154   { 0, 8},
01155   { 0, 7},
01156   { 0, 6},
01157   { 0, 5},
01158   {RDE_TURNED | DIAGDIR_SW, 0},
01159   { 1, 5},
01160   { 2, 5},
01161   { 3, 5},
01162   { 4, 5},
01163   { 5, 5},
01164   { 6, 5},
01165   { 7, 5},
01166   { 8, 5},
01167   { 9, 5},
01168   {10, 5},
01169   {11, 5},
01170   {12, 5},
01171   {13, 5},
01172   {14, 5},
01173   {15, 5},
01174   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
01175 };
01176 
01177 static const RoadDriveEntry _roadveh_tram_turn_se_0[] = {
01178   {5,  0},
01179   {5,  1},
01180   {5,  2},
01181   {5,  3},
01182   {5,  4},
01183   {5,  5},
01184   {5,  6},
01185   {5,  7},
01186   {5,  8},
01187   {5,  9},
01188   {5, 10},
01189   {5, 11},
01190   {5, 12},
01191   {5, 13},
01192   {5, 14},
01193   {5, 15},
01194   {6, 15},
01195   {7, 15},
01196   {8, 15},
01197   {9, 15},
01198   {RDE_TURNED | DIAGDIR_NW, 0},
01199   {9, 14},
01200   {9, 13},
01201   {9, 12},
01202   {9, 11},
01203   {9, 10},
01204   {9,  9},
01205   {9,  8},
01206   {9,  7},
01207   {9,  6},
01208   {9,  5},
01209   {9,  4},
01210   {9,  3},
01211   {9,  2},
01212   {9,  1},
01213   {9,  0},
01214   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
01215 };
01216 
01217 static const RoadDriveEntry _roadveh_tram_turn_se_1[] = {
01218   {9,  0},
01219   {9,  1},
01220   {9,  2},
01221   {9,  3},
01222   {9,  4},
01223   {9,  5},
01224   {9,  6},
01225   {9,  7},
01226   {9,  8},
01227   {9,  9},
01228   {9, 10},
01229   {9, 11},
01230   {9, 12},
01231   {9, 13},
01232   {9, 14},
01233   {9, 15},
01234   {8, 15},
01235   {7, 15},
01236   {6, 15},
01237   {5, 15},
01238   {RDE_TURNED | DIAGDIR_NW, 0},
01239   {5, 14},
01240   {5, 13},
01241   {5, 12},
01242   {5, 11},
01243   {5, 10},
01244   {5,  9},
01245   {5,  8},
01246   {5,  7},
01247   {5,  6},
01248   {5,  5},
01249   {5,  4},
01250   {5,  3},
01251   {5,  2},
01252   {5,  1},
01253   {5,  0},
01254   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
01255 };
01256 
01257 static const RoadDriveEntry _roadveh_tram_turn_sw_0[] = {
01258   { 0, 9},
01259   { 1, 9},
01260   { 2, 9},
01261   { 3, 9},
01262   { 4, 9},
01263   { 5, 9},
01264   { 6, 9},
01265   { 7, 9},
01266   { 8, 9},
01267   { 9, 9},
01268   {10, 9},
01269   {11, 9},
01270   {12, 9},
01271   {13, 9},
01272   {14, 9},
01273   {15, 9},
01274   {15, 8},
01275   {15, 7},
01276   {15, 6},
01277   {15, 5},
01278   {RDE_TURNED | DIAGDIR_NE, 0},
01279   {14, 5},
01280   {13, 5},
01281   {12, 5},
01282   {11, 5},
01283   {10, 5},
01284   { 9, 5},
01285   { 8, 5},
01286   { 7, 5},
01287   { 6, 5},
01288   { 5, 5},
01289   { 4, 5},
01290   { 3, 5},
01291   { 2, 5},
01292   { 1, 5},
01293   { 0, 5},
01294   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
01295 };
01296 static const RoadDriveEntry _roadveh_tram_turn_sw_1[] = {
01297   { 0, 5},
01298   { 1, 5},
01299   { 2, 5},
01300   { 3, 5},
01301   { 4, 5},
01302   { 5, 5},
01303   { 6, 5},
01304   { 7, 5},
01305   { 8, 5},
01306   { 9, 5},
01307   {10, 5},
01308   {11, 5},
01309   {12, 5},
01310   {13, 5},
01311   {14, 5},
01312   {15, 5},
01313   {15, 6},
01314   {15, 7},
01315   {15, 8},
01316   {15, 9},
01317   {RDE_TURNED | DIAGDIR_NE, 0},
01318   {14, 9},
01319   {13, 9},
01320   {12, 9},
01321   {11, 9},
01322   {10, 9},
01323   { 9, 9},
01324   { 8, 9},
01325   { 7, 9},
01326   { 6, 9},
01327   { 5, 9},
01328   { 4, 9},
01329   { 3, 9},
01330   { 2, 9},
01331   { 1, 9},
01332   { 0, 9},
01333   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
01334 };
01335 
01336 static const RoadDriveEntry _roadveh_tram_turn_nw_0[] = {
01337   {9, 15},
01338   {9, 14},
01339   {9, 13},
01340   {9, 12},
01341   {9, 11},
01342   {9, 10},
01343   {9,  9},
01344   {9,  8},
01345   {9,  7},
01346   {9,  6},
01347   {9,  5},
01348   {9,  4},
01349   {9,  3},
01350   {9,  2},
01351   {9,  1},
01352   {9,  0},
01353   {8,  0},
01354   {7,  0},
01355   {6,  0},
01356   {5,  0},
01357   {RDE_TURNED | DIAGDIR_SE, 0},
01358   {5,  1},
01359   {5,  2},
01360   {5,  3},
01361   {5,  4},
01362   {5,  5},
01363   {5,  6},
01364   {5,  7},
01365   {5,  8},
01366   {5,  9},
01367   {5, 10},
01368   {5, 11},
01369   {5, 12},
01370   {5, 13},
01371   {5, 14},
01372   {5, 15},
01373   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
01374 };
01375 static const RoadDriveEntry _roadveh_tram_turn_nw_1[] = {
01376   {5, 15},
01377   {5, 14},
01378   {5, 13},
01379   {5, 12},
01380   {5, 11},
01381   {5, 10},
01382   {5,  9},
01383   {5,  8},
01384   {5,  7},
01385   {5,  6},
01386   {5,  5},
01387   {5,  4},
01388   {5,  3},
01389   {5,  2},
01390   {5,  1},
01391   {5,  0},
01392   {6,  0},
01393   {7,  0},
01394   {8,  0},
01395   {9,  0},
01396   {RDE_TURNED | DIAGDIR_SE, 0},
01397   {9,  1},
01398   {9,  2},
01399   {9,  3},
01400   {9,  4},
01401   {9,  5},
01402   {9,  6},
01403   {9,  7},
01404   {9,  8},
01405   {9,  9},
01406   {9, 10},
01407   {9, 11},
01408   {9, 12},
01409   {9, 13},
01410   {9, 14},
01411   {9, 15},
01412   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
01413 };
01414 
01415 static const RoadDriveEntry * const _road_tram_drive_data[] = {
01416   _roadveh_drive_data_0,
01417   _roadveh_drive_data_1,
01418   _roadveh_drive_data_2,
01419   _roadveh_drive_data_3,
01420   _roadveh_drive_data_4,
01421   _roadveh_drive_data_5,
01422   _roadveh_tram_turn_ne_0,
01423   _roadveh_tram_turn_se_0,
01424   _roadveh_drive_data_8,
01425   _roadveh_drive_data_9,
01426   _roadveh_drive_data_10,
01427   _roadveh_drive_data_11,
01428   _roadveh_drive_data_12,
01429   _roadveh_drive_data_13,
01430   _roadveh_tram_turn_sw_0,
01431   _roadveh_tram_turn_nw_0,
01432   _roadveh_drive_data_16,
01433   _roadveh_drive_data_17,
01434   _roadveh_drive_data_18,
01435   _roadveh_drive_data_19,
01436   _roadveh_drive_data_20,
01437   _roadveh_drive_data_21,
01438   _roadveh_tram_turn_ne_1,
01439   _roadveh_tram_turn_se_1,
01440   _roadveh_drive_data_24,
01441   _roadveh_drive_data_25,
01442   _roadveh_drive_data_26,
01443   _roadveh_drive_data_27,
01444   _roadveh_drive_data_28,
01445   _roadveh_drive_data_29,
01446   _roadveh_tram_turn_sw_1,
01447   _roadveh_tram_turn_nw_1,
01448   NULL,
01449   NULL,
01450   NULL,
01451   NULL,
01452   NULL,
01453   NULL,
01454   NULL,
01455   NULL,
01456   NULL,
01457   NULL,
01458   NULL,
01459   NULL,
01460   NULL,
01461   NULL,
01462   NULL,
01463   NULL,
01464   NULL,
01465   NULL,
01466   NULL,
01467   NULL,
01468   NULL,
01469   NULL,
01470   NULL,
01471   NULL,
01472   NULL,
01473   NULL,
01474   NULL,
01475   NULL,
01476   NULL,
01477   NULL,
01478   NULL,
01479   NULL,
01480   NULL,
01481 };
01482 
01483 static const RoadDriveEntry * const * const _road_drive_data[2] = {
01484   _road_road_drive_data,
01485   _road_tram_drive_data,
01486 };

Generated on Fri Mar 18 23:17:39 2011 for OpenTTD by  doxygen 1.6.1