(svn r27953) -Cleanup: Adjust other languages for r27952
[openttd.git] / src / table / roadveh_movement.h
blob5b202b2b594044b6c791ba15257762a82d879c32
1 /* $Id$ */
3 /*
4 * This file is part of OpenTTD.
5 * 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.
6 * 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.
7 * 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/>.
8 */
10 /** @file table/roadveh_movement.h Data about how a road vehicle must drive on a tile */
12 static const RoadDriveEntry _roadveh_drive_data_0[] = {
13 {15, 5},
14 {14, 5},
15 {13, 5},
16 {12, 5},
17 {11, 5},
18 {10, 5},
19 { 9, 5},
20 { 8, 5},
21 { 7, 5},
22 { 6, 5},
23 { 5, 5},
24 { 4, 5},
25 { 3, 5},
26 { 2, 5},
27 { 1, 5},
28 { 0, 5},
29 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
31 static const RoadDriveEntry _roadveh_drive_data_1[] = {
32 {5, 0},
33 {5, 1},
34 {5, 2},
35 {5, 3},
36 {5, 4},
37 {5, 5},
38 {5, 6},
39 {5, 7},
40 {5, 8},
41 {5, 9},
42 {5, 10},
43 {5, 11},
44 {5, 12},
45 {5, 13},
46 {5, 14},
47 {5, 15},
48 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
50 static const RoadDriveEntry _roadveh_drive_data_2[] = {
51 {5, 0},
52 {5, 1},
53 {5, 2},
54 {4, 3},
55 {3, 4},
56 {2, 5},
57 {1, 5},
58 {0, 5},
59 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
61 static const RoadDriveEntry _roadveh_drive_data_3[] = {
62 {15, 5},
63 {14, 5},
64 {13, 5},
65 {12, 5},
66 {11, 5},
67 {10, 5},
68 { 9, 6},
69 { 8, 7},
70 { 7, 8},
71 { 6, 9},
72 { 5, 10},
73 { 5, 11},
74 { 5, 12},
75 { 5, 13},
76 { 5, 14},
77 { 5, 15},
78 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
80 static const RoadDriveEntry _roadveh_drive_data_4[] = {
81 { 5, 0},
82 { 5, 1},
83 { 5, 2},
84 { 5, 3},
85 { 5, 4},
86 { 5, 5},
87 { 6, 6},
88 { 7, 7},
89 { 8, 8},
90 { 9, 9},
91 {10, 9},
92 {11, 9},
93 {12, 9},
94 {13, 9},
95 {14, 9},
96 {15, 9},
97 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
99 static const RoadDriveEntry _roadveh_drive_data_5[] = {
100 {0, 9},
101 {1, 9},
102 {2, 9},
103 {3, 10},
104 {4, 11},
105 {5, 12},
106 {5, 13},
107 {5, 14},
108 {5, 15},
109 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
111 static const RoadDriveEntry _roadveh_drive_data_6[] = {
112 {0, 6},
113 {0, 7},
114 {0, 8},
115 {0, 9},
116 {RDE_TURNED | DIAGDIR_SW, 0}
118 static const RoadDriveEntry _roadveh_drive_data_7[] = {
119 {6, 15},
120 {7, 15},
121 {8, 15},
122 {9, 15},
123 {RDE_TURNED | DIAGDIR_NW, 0}
125 static const RoadDriveEntry _roadveh_drive_data_8[] = {
126 { 0, 9},
127 { 1, 9},
128 { 2, 9},
129 { 3, 9},
130 { 4, 9},
131 { 5, 9},
132 { 6, 9},
133 { 7, 9},
134 { 8, 9},
135 { 9, 9},
136 {10, 9},
137 {11, 9},
138 {12, 9},
139 {13, 9},
140 {14, 9},
141 {15, 9},
142 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
144 static const RoadDriveEntry _roadveh_drive_data_9[] = {
145 {9, 15},
146 {9, 14},
147 {9, 13},
148 {9, 12},
149 {9, 11},
150 {9, 10},
151 {9, 9},
152 {9, 8},
153 {9, 7},
154 {9, 6},
155 {9, 5},
156 {9, 4},
157 {9, 3},
158 {9, 2},
159 {9, 1},
160 {9, 0},
161 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
163 static const RoadDriveEntry _roadveh_drive_data_10[] = {
164 {0, 9},
165 {1, 9},
166 {2, 9},
167 {3, 9},
168 {4, 9},
169 {5, 9},
170 {6, 8},
171 {7, 7},
172 {8, 6},
173 {9, 5},
174 {9, 4},
175 {9, 3},
176 {9, 2},
177 {9, 1},
178 {9, 0},
179 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
181 static const RoadDriveEntry _roadveh_drive_data_11[] = {
182 { 9, 15},
183 { 9, 14},
184 { 9, 13},
185 {10, 12},
186 {11, 11},
187 {12, 10},
188 {13, 9},
189 {14, 9},
190 {15, 9},
191 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
193 static const RoadDriveEntry _roadveh_drive_data_12[] = {
194 {15, 5},
195 {14, 5},
196 {13, 5},
197 {12, 4},
198 {11, 3},
199 {10, 2},
200 { 9, 1},
201 { 9, 0},
202 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
204 static const RoadDriveEntry _roadveh_drive_data_13[] = {
205 {9, 15},
206 {9, 14},
207 {9, 13},
208 {9, 12},
209 {9, 11},
210 {9, 10},
211 {8, 9},
212 {7, 8},
213 {6, 7},
214 {5, 6},
215 {4, 5},
216 {3, 5},
217 {2, 5},
218 {1, 5},
219 {0, 5},
220 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
222 static const RoadDriveEntry _roadveh_drive_data_14[] = {
223 {15, 8},
224 {15, 7},
225 {15, 6},
226 {15, 5},
227 {RDE_TURNED | DIAGDIR_NE, 0}
229 static const RoadDriveEntry _roadveh_drive_data_15[] = {
230 {8, 0},
231 {7, 0},
232 {6, 0},
233 {5, 0},
234 {RDE_TURNED | DIAGDIR_SE, 0}
236 static const RoadDriveEntry _roadveh_drive_data_16[] = {
237 {15, 9},
238 {14, 9},
239 {13, 9},
240 {12, 9},
241 {11, 9},
242 {10, 9},
243 { 9, 9},
244 { 8, 9},
245 { 7, 9},
246 { 6, 9},
247 { 5, 9},
248 { 4, 9},
249 { 3, 9},
250 { 2, 9},
251 { 1, 9},
252 { 0, 9},
253 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
255 static const RoadDriveEntry _roadveh_drive_data_17[] = {
256 {9, 0},
257 {9, 1},
258 {9, 2},
259 {9, 3},
260 {9, 4},
261 {9, 5},
262 {9, 6},
263 {9, 7},
264 {9, 8},
265 {9, 9},
266 {9, 10},
267 {9, 11},
268 {9, 12},
269 {9, 13},
270 {9, 14},
271 {9, 15},
272 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
274 static const RoadDriveEntry _roadveh_drive_data_18[] = {
275 {9, 0},
276 {9, 1},
277 {9, 2},
278 {9, 3},
279 {9, 4},
280 {9, 5},
281 {8, 6},
282 {7, 7},
283 {6, 8},
284 {5, 9},
285 {4, 9},
286 {3, 9},
287 {2, 9},
288 {1, 9},
289 {0, 9},
290 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
292 static const RoadDriveEntry _roadveh_drive_data_19[] = {
293 {15, 9},
294 {14, 9},
295 {13, 9},
296 {12, 10},
297 {11, 11},
298 {10, 12},
299 { 9, 13},
300 { 9, 14},
301 { 9, 15},
302 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
304 static const RoadDriveEntry _roadveh_drive_data_20[] = {
305 { 9, 0},
306 { 9, 1},
307 {10, 2},
308 {11, 3},
309 {12, 4},
310 {13, 5},
311 {14, 5},
312 {15, 5},
313 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
315 static const RoadDriveEntry _roadveh_drive_data_21[] = {
316 {0, 5},
317 {1, 5},
318 {2, 5},
319 {3, 5},
320 {4, 5},
321 {5, 6},
322 {6, 7},
323 {7, 8},
324 {8, 9},
325 {9, 10},
326 {9, 11},
327 {9, 12},
328 {9, 13},
329 {9, 14},
330 {9, 15},
331 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
333 static const RoadDriveEntry _roadveh_drive_data_22[] = {
334 {0, 8},
335 {0, 7},
336 {0, 6},
337 {0, 5},
338 {RDE_TURNED | DIAGDIR_SW, 0}
340 static const RoadDriveEntry _roadveh_drive_data_23[] = {
341 {8, 15},
342 {7, 15},
343 {6, 15},
344 {5, 15},
345 {RDE_TURNED | DIAGDIR_NW, 0}
347 static const RoadDriveEntry _roadveh_drive_data_24[] = {
348 { 0, 5},
349 { 1, 5},
350 { 2, 5},
351 { 3, 5},
352 { 4, 5},
353 { 5, 5},
354 { 6, 5},
355 { 7, 5},
356 { 8, 5},
357 { 9, 5},
358 {10, 5},
359 {11, 5},
360 {12, 5},
361 {13, 5},
362 {14, 5},
363 {15, 5},
364 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
366 static const RoadDriveEntry _roadveh_drive_data_25[] = {
367 {5, 15},
368 {5, 14},
369 {5, 13},
370 {5, 12},
371 {5, 11},
372 {5, 10},
373 {5, 9},
374 {5, 8},
375 {5, 7},
376 {5, 6},
377 {5, 5},
378 {5, 4},
379 {5, 3},
380 {5, 2},
381 {5, 1},
382 {5, 0},
383 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
385 static const RoadDriveEntry _roadveh_drive_data_26[] = {
386 {0, 5},
387 {1, 5},
388 {2, 5},
389 {3, 4},
390 {4, 3},
391 {5, 2},
392 {5, 1},
393 {5, 0},
394 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
396 static const RoadDriveEntry _roadveh_drive_data_27[] = {
397 { 5, 15},
398 { 5, 14},
399 { 5, 13},
400 { 5, 12},
401 { 5, 11},
402 { 5, 10},
403 { 6, 9},
404 { 7, 8},
405 { 8, 7},
406 { 9, 6},
407 {10, 5},
408 {11, 5},
409 {12, 5},
410 {13, 5},
411 {14, 5},
412 {15, 5},
413 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
415 static const RoadDriveEntry _roadveh_drive_data_28[] = {
416 {15, 9},
417 {14, 9},
418 {13, 9},
419 {12, 9},
420 {11, 9},
421 {10, 9},
422 { 9, 9},
423 { 8, 8},
424 { 7, 7},
425 { 6, 6},
426 { 5, 5},
427 { 5, 4},
428 { 5, 3},
429 { 5, 2},
430 { 5, 1},
431 { 5, 0},
432 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
434 static const RoadDriveEntry _roadveh_drive_data_29[] = {
435 {5, 15},
436 {5, 14},
437 {5, 13},
438 {5, 12},
439 {4, 11},
440 {3, 10},
441 {2, 9},
442 {1, 9},
443 {0, 9},
444 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
446 static const RoadDriveEntry _roadveh_drive_data_30[] = {
447 {15, 6},
448 {15, 7},
449 {15, 8},
450 {15, 9},
451 {RDE_TURNED | DIAGDIR_NE, 0}
453 static const RoadDriveEntry _roadveh_drive_data_31[] = {
454 {6, 0},
455 {7, 0},
456 {8, 0},
457 {9, 0},
458 {RDE_TURNED | DIAGDIR_SE, 0}
460 static const RoadDriveEntry _rv_station_left_sw_far[] = {
461 {15, 5},
462 {14, 5},
463 {13, 6},
464 {13, 7},
465 {13, 8},
466 {13, 9},
467 {13, 10},
468 {13, 11},
469 {12, 12},
470 {11, 12},
471 {10, 12},
472 { 9, 12},
473 { 8, 12},
474 { 7, 12},
475 { 6, 12},
476 { 5, 11},
477 { 5, 10},
478 { 5, 9},
479 { 5, 8},
480 { 5, 7},
481 { 5, 6},
482 { 5, 7},
483 { 5, 8},
484 { 5, 9},
485 { 5, 10},
486 { 5, 11},
487 { 6, 12},
488 { 7, 12},
489 { 8, 12},
490 { 9, 12},
491 {10, 12},
492 {11, 12},
493 {12, 12},
494 {13, 11},
495 {13, 10},
496 {14, 9},
497 {15, 9},
498 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
500 static const RoadDriveEntry _rv_station_left_nw_far[] = {
501 { 5, 0},
502 { 5, 1},
503 { 6, 2},
504 { 7, 2},
505 { 8, 2},
506 { 9, 2},
507 {10, 2},
508 {11, 2},
509 {12, 3},
510 {12, 4},
511 {12, 5},
512 {12, 6},
513 {12, 7},
514 {12, 8},
515 {12, 9},
516 {11, 10},
517 {10, 10},
518 { 9, 10},
519 { 8, 10},
520 { 7, 10},
521 { 6, 10},
522 { 7, 10},
523 { 8, 10},
524 { 9, 10},
525 {10, 10},
526 {11, 10},
527 {12, 9},
528 {12, 8},
529 {12, 7},
530 {12, 6},
531 {12, 5},
532 {12, 4},
533 {12, 3},
534 {11, 2},
535 {10, 2},
536 { 9, 1},
537 { 9, 0},
538 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
540 static const RoadDriveEntry _rv_station_left_sw_near[] = {
541 {15, 5},
542 {14, 5},
543 {13, 6},
544 {13, 7},
545 {13, 8},
546 {13, 9},
547 {13, 10},
548 {13, 11},
549 {12, 12},
550 {11, 12},
551 {10, 12},
552 { 9, 11},
553 { 9, 10},
554 { 9, 9},
555 { 9, 8},
556 { 9, 7},
557 { 9, 6},
558 { 9, 7},
559 { 9, 8},
560 { 9, 9},
561 { 9, 10},
562 { 9, 11},
563 {10, 12},
564 {11, 12},
565 {12, 12},
566 {13, 11},
567 {13, 10},
568 {14, 9},
569 {15, 9},
570 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
572 static const RoadDriveEntry _rv_station_left_nw_near[] = {
573 { 5, 0},
574 { 5, 1},
575 { 6, 2},
576 { 7, 2},
577 { 8, 2},
578 { 9, 2},
579 {10, 2},
580 {11, 2},
581 {12, 3},
582 {12, 4},
583 {12, 5},
584 {11, 6},
585 {10, 6},
586 { 9, 6},
587 { 8, 6},
588 { 7, 6},
589 { 6, 6},
590 { 7, 6},
591 { 8, 6},
592 { 9, 6},
593 {10, 6},
594 {11, 6},
595 {12, 5},
596 {12, 4},
597 {12, 3},
598 {11, 2},
599 {10, 2},
600 { 9, 1},
601 { 9, 0},
602 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
604 static const RoadDriveEntry _rv_station_left_ne_far[] = {
605 { 0, 9},
606 { 1, 9},
607 { 2, 8},
608 { 2, 7},
609 { 2, 6},
610 { 2, 5},
611 { 2, 4},
612 { 3, 3},
613 { 4, 3},
614 { 5, 3},
615 { 6, 3},
616 { 7, 3},
617 { 8, 3},
618 { 9, 3},
619 {10, 4},
620 {10, 5},
621 {10, 6},
622 {10, 7},
623 {10, 8},
624 {10, 9},
625 {10, 8},
626 {10, 7},
627 {10, 6},
628 {10, 5},
629 {10, 4},
630 { 9, 3},
631 { 8, 3},
632 { 7, 3},
633 { 6, 3},
634 { 5, 3},
635 { 4, 3},
636 { 3, 3},
637 { 2, 4},
638 { 1, 5},
639 { 0, 5},
640 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
642 static const RoadDriveEntry _rv_station_left_se_far[] = {
643 {9, 15},
644 {9, 14},
645 {8, 13},
646 {7, 13},
647 {6, 13},
648 {5, 13},
649 {4, 13},
650 {3, 12},
651 {3, 11},
652 {3, 10},
653 {3, 9},
654 {3, 8},
655 {3, 7},
656 {3, 6},
657 {4, 5},
658 {5, 5},
659 {6, 5},
660 {7, 5},
661 {8, 5},
662 {9, 5},
663 {8, 5},
664 {7, 5},
665 {6, 5},
666 {5, 5},
667 {4, 5},
668 {3, 6},
669 {3, 7},
670 {3, 8},
671 {3, 9},
672 {3, 10},
673 {3, 11},
674 {3, 12},
675 {4, 13},
676 {5, 14},
677 {5, 15},
678 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
680 static const RoadDriveEntry _rv_station_left_ne_near[] = {
681 {0, 9},
682 {1, 9},
683 {2, 8},
684 {2, 7},
685 {2, 6},
686 {2, 5},
687 {2, 4},
688 {3, 3},
689 {4, 3},
690 {5, 3},
691 {6, 4},
692 {6, 5},
693 {6, 6},
694 {6, 7},
695 {6, 8},
696 {6, 9},
697 {6, 8},
698 {6, 7},
699 {6, 6},
700 {6, 5},
701 {6, 4},
702 {5, 3},
703 {4, 3},
704 {3, 3},
705 {2, 4},
706 {1, 5},
707 {0, 5},
708 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
710 static const RoadDriveEntry _rv_station_left_se_near[] = {
711 {9, 15},
712 {9, 14},
713 {8, 13},
714 {7, 13},
715 {6, 13},
716 {5, 13},
717 {4, 13},
718 {3, 12},
719 {3, 11},
720 {3, 10},
721 {4, 9},
722 {5, 9},
723 {6, 9},
724 {7, 9},
725 {8, 9},
726 {9, 9},
727 {8, 9},
728 {7, 9},
729 {6, 9},
730 {5, 9},
731 {4, 9},
732 {3, 10},
733 {3, 11},
734 {3, 12},
735 {4, 13},
736 {5, 14},
737 {5, 15},
738 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
740 static const RoadDriveEntry _rv_station_right_sw_far[] = {
741 {15, 9},
742 {14, 9},
743 {13, 10},
744 {13, 11},
745 {12, 12},
746 {11, 12},
747 {10, 12},
748 { 9, 12},
749 { 8, 12},
750 { 7, 12},
751 { 6, 12},
752 { 5, 11},
753 { 5, 10},
754 { 5, 9},
755 { 5, 8},
756 { 5, 7},
757 { 5, 6},
758 { 5, 7},
759 { 5, 8},
760 { 5, 9},
761 { 5, 10},
762 { 5, 11},
763 { 6, 12},
764 { 7, 12},
765 { 8, 12},
766 { 9, 12},
767 {10, 12},
768 {11, 12},
769 {12, 12},
770 {13, 11},
771 {13, 10},
772 {13, 9},
773 {13, 8},
774 {13, 7},
775 {13, 6},
776 {14, 5},
777 {15, 5},
778 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
780 static const RoadDriveEntry _rv_station_right_nw_far[] = {
781 { 9, 0},
782 { 9, 1},
783 {10, 2},
784 {11, 2},
785 {12, 3},
786 {12, 4},
787 {12, 5},
788 {12, 6},
789 {12, 7},
790 {12, 8},
791 {12, 9},
792 {11, 10},
793 {10, 10},
794 { 9, 10},
795 { 8, 10},
796 { 7, 10},
797 { 6, 10},
798 { 7, 10},
799 { 8, 10},
800 { 9, 10},
801 {10, 10},
802 {11, 10},
803 {12, 9},
804 {12, 8},
805 {12, 7},
806 {12, 6},
807 {12, 5},
808 {12, 4},
809 {12, 3},
810 {11, 2},
811 {10, 2},
812 { 9, 2},
813 { 8, 2},
814 { 7, 2},
815 { 6, 2},
816 { 5, 1},
817 { 5, 0},
818 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
820 static const RoadDriveEntry _rv_station_right_sw_near[] = {
821 {15, 9},
822 {14, 9},
823 {13, 10},
824 {13, 11},
825 {12, 12},
826 {11, 12},
827 {10, 12},
828 { 9, 11},
829 { 9, 10},
830 { 9, 9},
831 { 9, 8},
832 { 9, 7},
833 { 9, 6},
834 { 9, 7},
835 { 9, 8},
836 { 9, 9},
837 { 9, 10},
838 { 9, 11},
839 {10, 12},
840 {11, 12},
841 {12, 12},
842 {13, 11},
843 {13, 10},
844 {13, 9},
845 {13, 8},
846 {13, 7},
847 {13, 6},
848 {14, 5},
849 {15, 5},
850 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
852 static const RoadDriveEntry _rv_station_right_nw_near[] = {
853 { 9, 0},
854 { 9, 1},
855 {10, 2},
856 {11, 2},
857 {12, 3},
858 {12, 4},
859 {12, 5},
860 {11, 6},
861 {10, 6},
862 { 9, 6},
863 { 8, 6},
864 { 7, 6},
865 { 6, 6},
866 { 7, 6},
867 { 8, 6},
868 { 9, 6},
869 {10, 6},
870 {11, 6},
871 {12, 5},
872 {12, 4},
873 {12, 3},
874 {11, 2},
875 {10, 2},
876 { 9, 2},
877 { 8, 2},
878 { 7, 2},
879 { 6, 2},
880 { 5, 1},
881 { 5, 0},
882 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
884 static const RoadDriveEntry _rv_station_right_ne_far[] = {
885 { 0, 5},
886 { 1, 5},
887 { 2, 4},
888 { 3, 3},
889 { 4, 3},
890 { 5, 3},
891 { 6, 3},
892 { 7, 3},
893 { 8, 3},
894 { 9, 3},
895 {10, 4},
896 {10, 5},
897 {10, 6},
898 {10, 7},
899 {10, 8},
900 {10, 9},
901 {10, 8},
902 {10, 7},
903 {10, 6},
904 {10, 5},
905 {10, 4},
906 { 9, 3},
907 { 8, 3},
908 { 7, 3},
909 { 6, 3},
910 { 5, 3},
911 { 4, 3},
912 { 3, 3},
913 { 2, 4},
914 { 2, 5},
915 { 2, 6},
916 { 2, 7},
917 { 2, 8},
918 { 1, 9},
919 { 0, 9},
920 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
922 static const RoadDriveEntry _rv_station_right_se_far[] = {
923 {5, 15},
924 {5, 14},
925 {4, 13},
926 {3, 12},
927 {3, 11},
928 {3, 10},
929 {3, 9},
930 {3, 8},
931 {3, 7},
932 {3, 6},
933 {4, 5},
934 {5, 5},
935 {6, 5},
936 {7, 5},
937 {8, 5},
938 {9, 5},
939 {8, 5},
940 {7, 5},
941 {6, 5},
942 {5, 5},
943 {4, 5},
944 {3, 6},
945 {3, 7},
946 {3, 8},
947 {3, 9},
948 {3, 10},
949 {3, 11},
950 {3, 12},
951 {4, 13},
952 {5, 13},
953 {6, 13},
954 {7, 13},
955 {8, 13},
956 {9, 14},
957 {9, 15},
958 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
960 static const RoadDriveEntry _rv_station_right_ne_near[] = {
961 {0, 5},
962 {1, 5},
963 {2, 4},
964 {3, 3},
965 {4, 3},
966 {5, 3},
967 {6, 4},
968 {6, 5},
969 {6, 6},
970 {6, 7},
971 {6, 8},
972 {6, 9},
973 {6, 8},
974 {6, 7},
975 {6, 6},
976 {6, 5},
977 {6, 4},
978 {5, 3},
979 {4, 3},
980 {3, 3},
981 {2, 4},
982 {2, 5},
983 {2, 6},
984 {2, 7},
985 {2, 8},
986 {1, 9},
987 {0, 9},
988 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
990 static const RoadDriveEntry _rv_station_right_se_near[] = {
991 {5, 15},
992 {5, 14},
993 {4, 13},
994 {3, 12},
995 {3, 11},
996 {3, 10},
997 {4, 9},
998 {5, 9},
999 {6, 9},
1000 {7, 9},
1001 {8, 9},
1002 {9, 9},
1003 {8, 9},
1004 {7, 9},
1005 {6, 9},
1006 {5, 9},
1007 {4, 9},
1008 {3, 10},
1009 {3, 11},
1010 {3, 12},
1011 {4, 13},
1012 {5, 13},
1013 {6, 13},
1014 {7, 13},
1015 {8, 13},
1016 {9, 14},
1017 {9, 15},
1018 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
1021 static const RoadDriveEntry * const _road_road_drive_data[] = {
1022 _roadveh_drive_data_0,
1023 _roadveh_drive_data_1,
1024 _roadveh_drive_data_2,
1025 _roadveh_drive_data_3,
1026 _roadveh_drive_data_4,
1027 _roadveh_drive_data_5,
1028 _roadveh_drive_data_6,
1029 _roadveh_drive_data_7,
1030 _roadveh_drive_data_8,
1031 _roadveh_drive_data_9,
1032 _roadveh_drive_data_10,
1033 _roadveh_drive_data_11,
1034 _roadveh_drive_data_12,
1035 _roadveh_drive_data_13,
1036 _roadveh_drive_data_14,
1037 _roadveh_drive_data_15,
1038 _roadveh_drive_data_16,
1039 _roadveh_drive_data_17,
1040 _roadveh_drive_data_18,
1041 _roadveh_drive_data_19,
1042 _roadveh_drive_data_20,
1043 _roadveh_drive_data_21,
1044 _roadveh_drive_data_22,
1045 _roadveh_drive_data_23,
1046 _roadveh_drive_data_24,
1047 _roadveh_drive_data_25,
1048 _roadveh_drive_data_26,
1049 _roadveh_drive_data_27,
1050 _roadveh_drive_data_28,
1051 _roadveh_drive_data_29,
1052 _roadveh_drive_data_30,
1053 _roadveh_drive_data_31,
1054 _rv_station_left_sw_far,
1055 _rv_station_left_nw_far,
1056 _rv_station_left_sw_near,
1057 _rv_station_left_nw_near,
1058 _rv_station_left_sw_far,
1059 _rv_station_left_nw_far,
1060 _rv_station_left_sw_near,
1061 _rv_station_left_nw_near,
1062 _rv_station_left_ne_far,
1063 _rv_station_left_se_far,
1064 _rv_station_left_ne_near,
1065 _rv_station_left_se_near,
1066 _rv_station_left_ne_far,
1067 _rv_station_left_se_far,
1068 _rv_station_left_ne_near,
1069 _rv_station_left_se_near,
1070 _rv_station_right_sw_far,
1071 _rv_station_right_nw_far,
1072 _rv_station_right_sw_near,
1073 _rv_station_right_nw_near,
1074 _rv_station_right_sw_far,
1075 _rv_station_right_nw_far,
1076 _rv_station_right_sw_near,
1077 _rv_station_right_nw_near,
1078 _rv_station_right_ne_far,
1079 _rv_station_right_se_far,
1080 _rv_station_right_ne_near,
1081 _rv_station_right_se_near,
1082 _rv_station_right_ne_far,
1083 _rv_station_right_se_far,
1084 _rv_station_right_ne_near,
1085 _rv_station_right_se_near,
1088 /** Table of road stop stop frames, when to stop at a road stop. */
1089 extern const byte _road_stop_stop_frame[] = {
1090 /* Duplicated left and right because of "entered stop" bit */
1091 20, 20, 16, 16, 20, 20, 16, 16,
1092 19, 19, 15, 15, 19, 19, 15, 15,
1093 16, 16, 12, 12, 16, 16, 12, 12,
1094 15, 15, 11, 11, 15, 15, 11, 11
1097 static const RoadDriveEntry _roadveh_tram_turn_ne_0[] = {
1098 {15, 5},
1099 {14, 5},
1100 {13, 5},
1101 {12, 5},
1102 {11, 5},
1103 {10, 5},
1104 { 9, 5},
1105 { 8, 5},
1106 { 7, 5},
1107 { 6, 5},
1108 { 5, 5},
1109 { 4, 5},
1110 { 3, 5},
1111 { 2, 5},
1112 { 1, 5},
1113 { 0, 5},
1114 { 0, 6},
1115 { 0, 7},
1116 { 0, 8},
1117 { 0, 9},
1118 {RDE_TURNED | DIAGDIR_SW, 0},
1119 { 1, 9},
1120 { 2, 9},
1121 { 3, 9},
1122 { 4, 9},
1123 { 5, 9},
1124 { 6, 9},
1125 { 7, 9},
1126 { 8, 9},
1127 { 9, 9},
1128 {10, 9},
1129 {11, 9},
1130 {12, 9},
1131 {13, 9},
1132 {14, 9},
1133 {15, 9},
1134 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
1137 static const RoadDriveEntry _roadveh_tram_turn_ne_1[] = {
1138 {15, 9},
1139 {14, 9},
1140 {13, 9},
1141 {12, 9},
1142 {11, 9},
1143 {10, 9},
1144 { 9, 9},
1145 { 8, 9},
1146 { 7, 9},
1147 { 6, 9},
1148 { 5, 9},
1149 { 4, 9},
1150 { 3, 9},
1151 { 2, 9},
1152 { 1, 9},
1153 { 0, 9},
1154 { 0, 8},
1155 { 0, 7},
1156 { 0, 6},
1157 { 0, 5},
1158 {RDE_TURNED | DIAGDIR_SW, 0},
1159 { 1, 5},
1160 { 2, 5},
1161 { 3, 5},
1162 { 4, 5},
1163 { 5, 5},
1164 { 6, 5},
1165 { 7, 5},
1166 { 8, 5},
1167 { 9, 5},
1168 {10, 5},
1169 {11, 5},
1170 {12, 5},
1171 {13, 5},
1172 {14, 5},
1173 {15, 5},
1174 {RDE_NEXT_TILE | DIAGDIR_SW, 0}
1177 static const RoadDriveEntry _roadveh_tram_turn_se_0[] = {
1178 {5, 0},
1179 {5, 1},
1180 {5, 2},
1181 {5, 3},
1182 {5, 4},
1183 {5, 5},
1184 {5, 6},
1185 {5, 7},
1186 {5, 8},
1187 {5, 9},
1188 {5, 10},
1189 {5, 11},
1190 {5, 12},
1191 {5, 13},
1192 {5, 14},
1193 {5, 15},
1194 {6, 15},
1195 {7, 15},
1196 {8, 15},
1197 {9, 15},
1198 {RDE_TURNED | DIAGDIR_NW, 0},
1199 {9, 14},
1200 {9, 13},
1201 {9, 12},
1202 {9, 11},
1203 {9, 10},
1204 {9, 9},
1205 {9, 8},
1206 {9, 7},
1207 {9, 6},
1208 {9, 5},
1209 {9, 4},
1210 {9, 3},
1211 {9, 2},
1212 {9, 1},
1213 {9, 0},
1214 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
1217 static const RoadDriveEntry _roadveh_tram_turn_se_1[] = {
1218 {9, 0},
1219 {9, 1},
1220 {9, 2},
1221 {9, 3},
1222 {9, 4},
1223 {9, 5},
1224 {9, 6},
1225 {9, 7},
1226 {9, 8},
1227 {9, 9},
1228 {9, 10},
1229 {9, 11},
1230 {9, 12},
1231 {9, 13},
1232 {9, 14},
1233 {9, 15},
1234 {8, 15},
1235 {7, 15},
1236 {6, 15},
1237 {5, 15},
1238 {RDE_TURNED | DIAGDIR_NW, 0},
1239 {5, 14},
1240 {5, 13},
1241 {5, 12},
1242 {5, 11},
1243 {5, 10},
1244 {5, 9},
1245 {5, 8},
1246 {5, 7},
1247 {5, 6},
1248 {5, 5},
1249 {5, 4},
1250 {5, 3},
1251 {5, 2},
1252 {5, 1},
1253 {5, 0},
1254 {RDE_NEXT_TILE | DIAGDIR_NW, 0}
1257 static const RoadDriveEntry _roadveh_tram_turn_sw_0[] = {
1258 { 0, 9},
1259 { 1, 9},
1260 { 2, 9},
1261 { 3, 9},
1262 { 4, 9},
1263 { 5, 9},
1264 { 6, 9},
1265 { 7, 9},
1266 { 8, 9},
1267 { 9, 9},
1268 {10, 9},
1269 {11, 9},
1270 {12, 9},
1271 {13, 9},
1272 {14, 9},
1273 {15, 9},
1274 {15, 8},
1275 {15, 7},
1276 {15, 6},
1277 {15, 5},
1278 {RDE_TURNED | DIAGDIR_NE, 0},
1279 {14, 5},
1280 {13, 5},
1281 {12, 5},
1282 {11, 5},
1283 {10, 5},
1284 { 9, 5},
1285 { 8, 5},
1286 { 7, 5},
1287 { 6, 5},
1288 { 5, 5},
1289 { 4, 5},
1290 { 3, 5},
1291 { 2, 5},
1292 { 1, 5},
1293 { 0, 5},
1294 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
1296 static const RoadDriveEntry _roadveh_tram_turn_sw_1[] = {
1297 { 0, 5},
1298 { 1, 5},
1299 { 2, 5},
1300 { 3, 5},
1301 { 4, 5},
1302 { 5, 5},
1303 { 6, 5},
1304 { 7, 5},
1305 { 8, 5},
1306 { 9, 5},
1307 {10, 5},
1308 {11, 5},
1309 {12, 5},
1310 {13, 5},
1311 {14, 5},
1312 {15, 5},
1313 {15, 6},
1314 {15, 7},
1315 {15, 8},
1316 {15, 9},
1317 {RDE_TURNED | DIAGDIR_NE, 0},
1318 {14, 9},
1319 {13, 9},
1320 {12, 9},
1321 {11, 9},
1322 {10, 9},
1323 { 9, 9},
1324 { 8, 9},
1325 { 7, 9},
1326 { 6, 9},
1327 { 5, 9},
1328 { 4, 9},
1329 { 3, 9},
1330 { 2, 9},
1331 { 1, 9},
1332 { 0, 9},
1333 {RDE_NEXT_TILE | DIAGDIR_NE, 0}
1336 static const RoadDriveEntry _roadveh_tram_turn_nw_0[] = {
1337 {9, 15},
1338 {9, 14},
1339 {9, 13},
1340 {9, 12},
1341 {9, 11},
1342 {9, 10},
1343 {9, 9},
1344 {9, 8},
1345 {9, 7},
1346 {9, 6},
1347 {9, 5},
1348 {9, 4},
1349 {9, 3},
1350 {9, 2},
1351 {9, 1},
1352 {9, 0},
1353 {8, 0},
1354 {7, 0},
1355 {6, 0},
1356 {5, 0},
1357 {RDE_TURNED | DIAGDIR_SE, 0},
1358 {5, 1},
1359 {5, 2},
1360 {5, 3},
1361 {5, 4},
1362 {5, 5},
1363 {5, 6},
1364 {5, 7},
1365 {5, 8},
1366 {5, 9},
1367 {5, 10},
1368 {5, 11},
1369 {5, 12},
1370 {5, 13},
1371 {5, 14},
1372 {5, 15},
1373 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
1375 static const RoadDriveEntry _roadveh_tram_turn_nw_1[] = {
1376 {5, 15},
1377 {5, 14},
1378 {5, 13},
1379 {5, 12},
1380 {5, 11},
1381 {5, 10},
1382 {5, 9},
1383 {5, 8},
1384 {5, 7},
1385 {5, 6},
1386 {5, 5},
1387 {5, 4},
1388 {5, 3},
1389 {5, 2},
1390 {5, 1},
1391 {5, 0},
1392 {6, 0},
1393 {7, 0},
1394 {8, 0},
1395 {9, 0},
1396 {RDE_TURNED | DIAGDIR_SE, 0},
1397 {9, 1},
1398 {9, 2},
1399 {9, 3},
1400 {9, 4},
1401 {9, 5},
1402 {9, 6},
1403 {9, 7},
1404 {9, 8},
1405 {9, 9},
1406 {9, 10},
1407 {9, 11},
1408 {9, 12},
1409 {9, 13},
1410 {9, 14},
1411 {9, 15},
1412 {RDE_NEXT_TILE | DIAGDIR_SE, 0}
1415 static const RoadDriveEntry * const _road_tram_drive_data[] = {
1416 _roadveh_drive_data_0,
1417 _roadveh_drive_data_1,
1418 _roadveh_drive_data_2,
1419 _roadveh_drive_data_3,
1420 _roadveh_drive_data_4,
1421 _roadveh_drive_data_5,
1422 _roadveh_tram_turn_ne_0,
1423 _roadveh_tram_turn_se_0,
1424 _roadveh_drive_data_8,
1425 _roadveh_drive_data_9,
1426 _roadveh_drive_data_10,
1427 _roadveh_drive_data_11,
1428 _roadveh_drive_data_12,
1429 _roadveh_drive_data_13,
1430 _roadveh_tram_turn_sw_0,
1431 _roadveh_tram_turn_nw_0,
1432 _roadveh_drive_data_16,
1433 _roadveh_drive_data_17,
1434 _roadveh_drive_data_18,
1435 _roadveh_drive_data_19,
1436 _roadveh_drive_data_20,
1437 _roadveh_drive_data_21,
1438 _roadveh_tram_turn_ne_1,
1439 _roadveh_tram_turn_se_1,
1440 _roadveh_drive_data_24,
1441 _roadveh_drive_data_25,
1442 _roadveh_drive_data_26,
1443 _roadveh_drive_data_27,
1444 _roadveh_drive_data_28,
1445 _roadveh_drive_data_29,
1446 _roadveh_tram_turn_sw_1,
1447 _roadveh_tram_turn_nw_1,
1448 NULL,
1449 NULL,
1450 NULL,
1451 NULL,
1452 NULL,
1453 NULL,
1454 NULL,
1455 NULL,
1456 NULL,
1457 NULL,
1458 NULL,
1459 NULL,
1460 NULL,
1461 NULL,
1462 NULL,
1463 NULL,
1464 NULL,
1465 NULL,
1466 NULL,
1467 NULL,
1468 NULL,
1469 NULL,
1470 NULL,
1471 NULL,
1472 NULL,
1473 NULL,
1474 NULL,
1475 NULL,
1476 NULL,
1477 NULL,
1478 NULL,
1479 NULL,
1480 NULL,
1483 static const RoadDriveEntry * const * const _road_drive_data[2] = {
1484 _road_road_drive_data,
1485 _road_tram_drive_data,