roadveh_movement.h

Go to the documentation of this file.
00001 /* $Id: roadveh_movement.h 17248 2009-08-21 20:21:05Z 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 _roadveh_drive_data_32[] = {
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 _roadveh_drive_data_33[] = {
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 _roadveh_drive_data_34[] = {
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 _roadveh_drive_data_35[] = {
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 _roadveh_drive_data_40[] = {
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 _roadveh_drive_data_41[] = {
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 _roadveh_drive_data_42[] = {
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 _roadveh_drive_data_43[] = {
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 _roadveh_drive_data_48[] = {
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 _roadveh_drive_data_49[] = {
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 _roadveh_drive_data_50[] = {
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 _roadveh_drive_data_51[] = {
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 _roadveh_drive_data_56[] = {
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 _roadveh_drive_data_57[] = {
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 _roadveh_drive_data_58[] = {
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 _roadveh_drive_data_59[] = {
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   _roadveh_drive_data_32,
01055   _roadveh_drive_data_33,
01056   _roadveh_drive_data_34,
01057   _roadveh_drive_data_35,
01058   NULL,
01059   NULL,
01060   NULL,
01061   NULL,
01062   _roadveh_drive_data_40,
01063   _roadveh_drive_data_41,
01064   _roadveh_drive_data_42,
01065   _roadveh_drive_data_43,
01066   NULL,
01067   NULL,
01068   NULL,
01069   NULL,
01070   _roadveh_drive_data_48,
01071   _roadveh_drive_data_49,
01072   _roadveh_drive_data_50,
01073   _roadveh_drive_data_51,
01074   NULL,
01075   NULL,
01076   NULL,
01077   NULL,
01078   _roadveh_drive_data_56,
01079   _roadveh_drive_data_57,
01080   _roadveh_drive_data_58,
01081   _roadveh_drive_data_59,
01082   NULL,
01083   NULL,
01084   NULL,
01085   NULL,
01086 };
01087 
01088 static const RoadDriveEntry _roadveh_tram_turn_ne_0[] = {
01089   {15, 5},
01090   {14, 5},
01091   {13, 5},
01092   {12, 5},
01093   {11, 5},
01094   {10, 5},
01095   { 9, 5},
01096   { 8, 5},
01097   { 7, 5},
01098   { 6, 5},
01099   { 5, 5},
01100   { 4, 5},
01101   { 3, 5},
01102   { 2, 5},
01103   { 1, 5},
01104   { 0, 5},
01105   { 0, 6},
01106   { 0, 7},
01107   { 0, 8},
01108   { 0, 9},
01109   {RDE_TURNED | DIAGDIR_SW, 0},
01110   { 1, 9},
01111   { 2, 9},
01112   { 3, 9},
01113   { 4, 9},
01114   { 5, 9},
01115   { 6, 9},
01116   { 7, 9},
01117   { 8, 9},
01118   { 9, 9},
01119   {10, 9},
01120   {11, 9},
01121   {12, 9},
01122   {13, 9},
01123   {14, 9},
01124   {15, 9},
01125   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
01126 };
01127 
01128 static const RoadDriveEntry _roadveh_tram_turn_ne_1[] = {
01129   {15, 9},
01130   {14, 9},
01131   {13, 9},
01132   {12, 9},
01133   {11, 9},
01134   {10, 9},
01135   { 9, 9},
01136   { 8, 9},
01137   { 7, 9},
01138   { 6, 9},
01139   { 5, 9},
01140   { 4, 9},
01141   { 3, 9},
01142   { 2, 9},
01143   { 1, 9},
01144   { 0, 9},
01145   { 0, 8},
01146   { 0, 7},
01147   { 0, 6},
01148   { 0, 5},
01149   {RDE_TURNED | DIAGDIR_SW, 0},
01150   { 1, 5},
01151   { 2, 5},
01152   { 3, 5},
01153   { 4, 5},
01154   { 5, 5},
01155   { 6, 5},
01156   { 7, 5},
01157   { 8, 5},
01158   { 9, 5},
01159   {10, 5},
01160   {11, 5},
01161   {12, 5},
01162   {13, 5},
01163   {14, 5},
01164   {15, 5},
01165   {RDE_NEXT_TILE | DIAGDIR_SW, 0}
01166 };
01167 
01168 static const RoadDriveEntry _roadveh_tram_turn_se_0[] = {
01169   {5,  0},
01170   {5,  1},
01171   {5,  2},
01172   {5,  3},
01173   {5,  4},
01174   {5,  5},
01175   {5,  6},
01176   {5,  7},
01177   {5,  8},
01178   {5,  9},
01179   {5, 10},
01180   {5, 11},
01181   {5, 12},
01182   {5, 13},
01183   {5, 14},
01184   {5, 15},
01185   {6, 15},
01186   {7, 15},
01187   {8, 15},
01188   {9, 15},
01189   {RDE_TURNED | DIAGDIR_NW, 0},
01190   {9, 14},
01191   {9, 13},
01192   {9, 12},
01193   {9, 11},
01194   {9, 10},
01195   {9,  9},
01196   {9,  8},
01197   {9,  7},
01198   {9,  6},
01199   {9,  5},
01200   {9,  4},
01201   {9,  3},
01202   {9,  2},
01203   {9,  1},
01204   {9,  0},
01205   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
01206 };
01207 
01208 static const RoadDriveEntry _roadveh_tram_turn_se_1[] = {
01209   {9,  0},
01210   {9,  1},
01211   {9,  2},
01212   {9,  3},
01213   {9,  4},
01214   {9,  5},
01215   {9,  6},
01216   {9,  7},
01217   {9,  8},
01218   {9,  9},
01219   {9, 10},
01220   {9, 11},
01221   {9, 12},
01222   {9, 13},
01223   {9, 14},
01224   {9, 15},
01225   {8, 15},
01226   {7, 15},
01227   {6, 15},
01228   {5, 15},
01229   {RDE_TURNED | DIAGDIR_NW, 0},
01230   {5, 14},
01231   {5, 13},
01232   {5, 12},
01233   {5, 11},
01234   {5, 10},
01235   {5,  9},
01236   {5,  8},
01237   {5,  7},
01238   {5,  6},
01239   {5,  5},
01240   {5,  4},
01241   {5,  3},
01242   {5,  2},
01243   {5,  1},
01244   {5,  0},
01245   {RDE_NEXT_TILE | DIAGDIR_NW, 0}
01246 };
01247 
01248 static const RoadDriveEntry _roadveh_tram_turn_sw_0[] = {
01249   { 0, 9},
01250   { 1, 9},
01251   { 2, 9},
01252   { 3, 9},
01253   { 4, 9},
01254   { 5, 9},
01255   { 6, 9},
01256   { 7, 9},
01257   { 8, 9},
01258   { 9, 9},
01259   {10, 9},
01260   {11, 9},
01261   {12, 9},
01262   {13, 9},
01263   {14, 9},
01264   {15, 9},
01265   {15, 8},
01266   {15, 7},
01267   {15, 6},
01268   {15, 5},
01269   {RDE_TURNED | DIAGDIR_NE, 0},
01270   {14, 5},
01271   {13, 5},
01272   {12, 5},
01273   {11, 5},
01274   {10, 5},
01275   { 9, 5},
01276   { 8, 5},
01277   { 7, 5},
01278   { 6, 5},
01279   { 5, 5},
01280   { 4, 5},
01281   { 3, 5},
01282   { 2, 5},
01283   { 1, 5},
01284   { 0, 5},
01285   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
01286 };
01287 static const RoadDriveEntry _roadveh_tram_turn_sw_1[] = {
01288   { 0, 5},
01289   { 1, 5},
01290   { 2, 5},
01291   { 3, 5},
01292   { 4, 5},
01293   { 5, 5},
01294   { 6, 5},
01295   { 7, 5},
01296   { 8, 5},
01297   { 9, 5},
01298   {10, 5},
01299   {11, 5},
01300   {12, 5},
01301   {13, 5},
01302   {14, 5},
01303   {15, 5},
01304   {15, 6},
01305   {15, 7},
01306   {15, 8},
01307   {15, 9},
01308   {RDE_TURNED | DIAGDIR_NE, 0},
01309   {14, 9},
01310   {13, 9},
01311   {12, 9},
01312   {11, 9},
01313   {10, 9},
01314   { 9, 9},
01315   { 8, 9},
01316   { 7, 9},
01317   { 6, 9},
01318   { 5, 9},
01319   { 4, 9},
01320   { 3, 9},
01321   { 2, 9},
01322   { 1, 9},
01323   { 0, 9},
01324   {RDE_NEXT_TILE | DIAGDIR_NE, 0}
01325 };
01326 
01327 static const RoadDriveEntry _roadveh_tram_turn_nw_0[] = {
01328   {9, 15},
01329   {9, 14},
01330   {9, 13},
01331   {9, 12},
01332   {9, 11},
01333   {9, 10},
01334   {9,  9},
01335   {9,  8},
01336   {9,  7},
01337   {9,  6},
01338   {9,  5},
01339   {9,  4},
01340   {9,  3},
01341   {9,  2},
01342   {9,  1},
01343   {9,  0},
01344   {8,  0},
01345   {7,  0},
01346   {6,  0},
01347   {5,  0},
01348   {RDE_TURNED | DIAGDIR_SE, 0},
01349   {5,  1},
01350   {5,  2},
01351   {5,  3},
01352   {5,  4},
01353   {5,  5},
01354   {5,  6},
01355   {5,  7},
01356   {5,  8},
01357   {5,  9},
01358   {5, 10},
01359   {5, 11},
01360   {5, 12},
01361   {5, 13},
01362   {5, 14},
01363   {5, 15},
01364   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
01365 };
01366 static const RoadDriveEntry _roadveh_tram_turn_nw_1[] = {
01367   {5, 15},
01368   {5, 14},
01369   {5, 13},
01370   {5, 12},
01371   {5, 11},
01372   {5, 10},
01373   {5,  9},
01374   {5,  8},
01375   {5,  7},
01376   {5,  6},
01377   {5,  5},
01378   {5,  4},
01379   {5,  3},
01380   {5,  2},
01381   {5,  1},
01382   {5,  0},
01383   {6,  0},
01384   {7,  0},
01385   {8,  0},
01386   {9,  0},
01387   {RDE_TURNED | DIAGDIR_SE, 0},
01388   {9,  1},
01389   {9,  2},
01390   {9,  3},
01391   {9,  4},
01392   {9,  5},
01393   {9,  6},
01394   {9,  7},
01395   {9,  8},
01396   {9,  9},
01397   {9, 10},
01398   {9, 11},
01399   {9, 12},
01400   {9, 13},
01401   {9, 14},
01402   {9, 15},
01403   {RDE_NEXT_TILE | DIAGDIR_SE, 0}
01404 };
01405 
01406 static const RoadDriveEntry * const _road_tram_drive_data[] = {
01407   _roadveh_drive_data_0,
01408   _roadveh_drive_data_1,
01409   _roadveh_drive_data_2,
01410   _roadveh_drive_data_3,
01411   _roadveh_drive_data_4,
01412   _roadveh_drive_data_5,
01413   _roadveh_tram_turn_ne_0,
01414   _roadveh_tram_turn_se_0,
01415   _roadveh_drive_data_8,
01416   _roadveh_drive_data_9,
01417   _roadveh_drive_data_10,
01418   _roadveh_drive_data_11,
01419   _roadveh_drive_data_12,
01420   _roadveh_drive_data_13,
01421   _roadveh_tram_turn_sw_0,
01422   _roadveh_tram_turn_nw_0,
01423   _roadveh_drive_data_16,
01424   _roadveh_drive_data_17,
01425   _roadveh_drive_data_18,
01426   _roadveh_drive_data_19,
01427   _roadveh_drive_data_20,
01428   _roadveh_drive_data_21,
01429   _roadveh_tram_turn_ne_1,
01430   _roadveh_tram_turn_se_1,
01431   _roadveh_drive_data_24,
01432   _roadveh_drive_data_25,
01433   _roadveh_drive_data_26,
01434   _roadveh_drive_data_27,
01435   _roadveh_drive_data_28,
01436   _roadveh_drive_data_29,
01437   _roadveh_tram_turn_sw_1,
01438   _roadveh_tram_turn_nw_1,
01439   NULL,
01440   NULL,
01441   NULL,
01442   NULL,
01443   NULL,
01444   NULL,
01445   NULL,
01446   NULL,
01447   NULL,
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 };
01473 
01474 static const RoadDriveEntry * const * const _road_drive_data[2] = {
01475   _road_road_drive_data,
01476   _road_tram_drive_data,
01477 };

Generated on Sat Jun 5 21:52:11 2010 for OpenTTD by  doxygen 1.6.1