/* $Id$ */
/** @file table/roadveh_movement.h Data about how a road vehicle must drive on a tile */
static const RoadDriveEntry _roadveh_drive_data_0[] = {
{15, 5},
{14, 5},
{13, 5},
{12, 5},
{11, 5},
{10, 5},
{ 9, 5},
{ 8, 5},
{ 7, 5},
{ 6, 5},
{ 5, 5},
{ 4, 5},
{ 3, 5},
{ 2, 5},
{ 1, 5},
{ 0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_1[] = {
{5, 0},
{5, 1},
{5, 2},
{5, 3},
{5, 4},
{5, 5},
{5, 6},
{5, 7},
{5, 8},
{5, 9},
{5, 10},
{5, 11},
{5, 12},
{5, 13},
{5, 14},
{5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_2[] = {
{5, 0},
{5, 1},
{5, 2},
{4, 3},
{3, 4},
{2, 5},
{1, 5},
{0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_3[] = {
{15, 5},
{14, 5},
{13, 5},
{12, 5},
{11, 5},
{10, 5},
{ 9, 6},
{ 8, 7},
{ 7, 8},
{ 6, 9},
{ 5, 10},
{ 5, 11},
{ 5, 12},
{ 5, 13},
{ 5, 14},
{ 5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_4[] = {
{ 5, 0},
{ 5, 1},
{ 5, 2},
{ 5, 3},
{ 5, 4},
{ 5, 5},
{ 6, 6},
{ 7, 7},
{ 8, 8},
{ 9, 9},
{10, 9},
{11, 9},
{12, 9},
{13, 9},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_5[] = {
{0, 9},
{1, 9},
{2, 9},
{3, 10},
{4, 11},
{5, 12},
{5, 13},
{5, 14},
{5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_6[] = {
{0, 6},
{0, 7},
{0, 8},
{0, 9},
{RDE_TURNED | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_7[] = {
{6, 15},
{7, 15},
{8, 15},
{9, 15},
{RDE_TURNED | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_8[] = {
{ 0, 9},
{ 1, 9},
{ 2, 9},
{ 3, 9},
{ 4, 9},
{ 5, 9},
{ 6, 9},
{ 7, 9},
{ 8, 9},
{ 9, 9},
{10, 9},
{11, 9},
{12, 9},
{13, 9},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_9[] = {
{9, 15},
{9, 14},
{9, 13},
{9, 12},
{9, 11},
{9, 10},
{9, 9},
{9, 8},
{9, 7},
{9, 6},
{9, 5},
{9, 4},
{9, 3},
{9, 2},
{9, 1},
{9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_10[] = {
{0, 9},
{1, 9},
{2, 9},
{3, 9},
{4, 9},
{5, 9},
{6, 8},
{7, 7},
{8, 6},
{9, 5},
{9, 4},
{9, 3},
{9, 2},
{9, 1},
{9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_11[] = {
{ 9, 15},
{ 9, 14},
{ 9, 13},
{10, 12},
{11, 11},
{12, 10},
{13, 9},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_12[] = {
{15, 5},
{14, 5},
{13, 5},
{12, 4},
{11, 3},
{10, 2},
{ 9, 1},
{ 9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_13[] = {
{9, 15},
{9, 14},
{9, 13},
{9, 12},
{9, 11},
{9, 10},
{8, 9},
{7, 8},
{6, 7},
{5, 6},
{4, 5},
{3, 5},
{2, 5},
{1, 5},
{0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_14[] = {
{15, 8},
{15, 7},
{15, 6},
{15, 5},
{RDE_TURNED | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_15[] = {
{8, 0},
{7, 0},
{6, 0},
{5, 0},
{RDE_TURNED | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_16[] = {
{15, 9},
{14, 9},
{13, 9},
{12, 9},
{11, 9},
{10, 9},
{ 9, 9},
{ 8, 9},
{ 7, 9},
{ 6, 9},
{ 5, 9},
{ 4, 9},
{ 3, 9},
{ 2, 9},
{ 1, 9},
{ 0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_17[] = {
{9, 0},
{9, 1},
{9, 2},
{9, 3},
{9, 4},
{9, 5},
{9, 6},
{9, 7},
{9, 8},
{9, 9},
{9, 10},
{9, 11},
{9, 12},
{9, 13},
{9, 14},
{9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_18[] = {
{9, 0},
{9, 1},
{9, 2},
{9, 3},
{9, 4},
{9, 5},
{8, 6},
{7, 7},
{6, 8},
{5, 9},
{4, 9},
{3, 9},
{2, 9},
{1, 9},
{0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_19[] = {
{15, 9},
{14, 9},
{13, 9},
{12, 10},
{11, 11},
{10, 12},
{ 9, 13},
{ 9, 14},
{ 9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_20[] = {
{ 9, 0},
{ 9, 1},
{10, 2},
{11, 3},
{12, 4},
{13, 5},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_21[] = {
{0, 5},
{1, 5},
{2, 5},
{3, 5},
{4, 5},
{5, 6},
{6, 7},
{7, 8},
{8, 9},
{9, 10},
{9, 11},
{9, 12},
{9, 13},
{9, 14},
{9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_22[] = {
{0, 8},
{0, 7},
{0, 6},
{0, 5},
{RDE_TURNED | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_23[] = {
{8, 15},
{7, 15},
{6, 15},
{5, 15},
{RDE_TURNED | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_24[] = {
{ 0, 5},
{ 1, 5},
{ 2, 5},
{ 3, 5},
{ 4, 5},
{ 5, 5},
{ 6, 5},
{ 7, 5},
{ 8, 5},
{ 9, 5},
{10, 5},
{11, 5},
{12, 5},
{13, 5},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_25[] = {
{5, 15},
{5, 14},
{5, 13},
{5, 12},
{5, 11},
{5, 10},
{5, 9},
{5, 8},
{5, 7},
{5, 6},
{5, 5},
{5, 4},
{5, 3},
{5, 2},
{5, 1},
{5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_26[] = {
{0, 5},
{1, 5},
{2, 5},
{3, 4},
{4, 3},
{5, 2},
{5, 1},
{5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_27[] = {
{ 5, 15},
{ 5, 14},
{ 5, 13},
{ 5, 12},
{ 5, 11},
{ 5, 10},
{ 6, 9},
{ 7, 8},
{ 8, 7},
{ 9, 6},
{10, 5},
{11, 5},
{12, 5},
{13, 5},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_28[] = {
{15, 9},
{14, 9},
{13, 9},
{12, 9},
{11, 9},
{10, 9},
{ 9, 9},
{ 8, 8},
{ 7, 7},
{ 6, 6},
{ 5, 5},
{ 5, 4},
{ 5, 3},
{ 5, 2},
{ 5, 1},
{ 5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_29[] = {
{5, 15},
{5, 14},
{5, 13},
{5, 12},
{4, 11},
{3, 10},
{2, 9},
{1, 9},
{0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_30[] = {
{15, 6},
{15, 7},
{15, 8},
{15, 9},
{RDE_TURNED | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_31[] = {
{6, 0},
{7, 0},
{8, 0},
{9, 0},
{RDE_TURNED | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_32[] = {
{15, 5},
{14, 5},
{13, 6},
{13, 7},
{13, 8},
{13, 9},
{13, 10},
{13, 11},
{12, 12},
{11, 12},
{10, 12},
{ 9, 12},
{ 8, 12},
{ 7, 12},
{ 6, 12},
{ 5, 11},
{ 5, 10},
{ 5, 9},
{ 5, 8},
{ 5, 7},
{ 5, 6},
{ 5, 7},
{ 5, 8},
{ 5, 9},
{ 5, 10},
{ 5, 11},
{ 6, 12},
{ 7, 12},
{ 8, 12},
{ 9, 12},
{10, 12},
{11, 12},
{12, 12},
{13, 11},
{13, 10},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_33[] = {
{ 5, 0},
{ 5, 1},
{ 6, 2},
{ 7, 2},
{ 8, 2},
{ 9, 2},
{10, 2},
{11, 2},
{12, 3},
{12, 4},
{12, 5},
{12, 6},
{12, 7},
{12, 8},
{12, 9},
{11, 10},
{10, 10},
{ 9, 10},
{ 8, 10},
{ 7, 10},
{ 6, 10},
{ 7, 10},
{ 8, 10},
{ 9, 10},
{10, 10},
{11, 10},
{12, 9},
{12, 8},
{12, 7},
{12, 6},
{12, 5},
{12, 4},
{12, 3},
{11, 2},
{10, 2},
{ 9, 1},
{ 9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_34[] = {
{15, 5},
{14, 5},
{13, 6},
{13, 7},
{13, 8},
{13, 9},
{13, 10},
{13, 11},
{12, 12},
{11, 12},
{10, 12},
{ 9, 11},
{ 9, 10},
{ 9, 9},
{ 9, 8},
{ 9, 7},
{ 9, 6},
{ 9, 7},
{ 9, 8},
{ 9, 9},
{ 9, 10},
{ 9, 11},
{10, 12},
{11, 12},
{12, 12},
{13, 11},
{13, 10},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_35[] = {
{ 5, 0},
{ 5, 1},
{ 6, 2},
{ 7, 2},
{ 8, 2},
{ 9, 2},
{10, 2},
{11, 2},
{12, 3},
{12, 4},
{12, 5},
{11, 6},
{10, 6},
{ 9, 6},
{ 8, 6},
{ 7, 6},
{ 6, 6},
{ 7, 6},
{ 8, 6},
{ 9, 6},
{10, 6},
{11, 6},
{12, 5},
{12, 4},
{12, 3},
{11, 2},
{10, 2},
{ 9, 1},
{ 9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_40[] = {
{ 0, 9},
{ 1, 9},
{ 2, 8},
{ 2, 7},
{ 2, 6},
{ 2, 5},
{ 2, 4},
{ 3, 3},
{ 4, 3},
{ 5, 3},
{ 6, 3},
{ 7, 3},
{ 8, 3},
{ 9, 3},
{10, 4},
{10, 5},
{10, 6},
{10, 7},
{10, 8},
{10, 9},
{10, 8},
{10, 7},
{10, 6},
{10, 5},
{10, 4},
{ 9, 3},
{ 8, 3},
{ 7, 3},
{ 6, 3},
{ 5, 3},
{ 4, 3},
{ 3, 3},
{ 2, 4},
{ 1, 5},
{ 0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_41[] = {
{9, 15},
{9, 14},
{8, 13},
{7, 13},
{6, 13},
{5, 13},
{4, 13},
{3, 12},
{3, 11},
{3, 10},
{3, 9},
{3, 8},
{3, 7},
{3, 6},
{4, 5},
{5, 5},
{6, 5},
{7, 5},
{8, 5},
{9, 5},
{8, 5},
{7, 5},
{6, 5},
{5, 5},
{4, 5},
{3, 6},
{3, 7},
{3, 8},
{3, 9},
{3, 10},
{3, 11},
{3, 12},
{4, 13},
{5, 14},
{5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_42[] = {
{0, 9},
{1, 9},
{2, 8},
{2, 7},
{2, 6},
{2, 5},
{2, 4},
{3, 3},
{4, 3},
{5, 3},
{6, 4},
{6, 5},
{6, 6},
{6, 7},
{6, 8},
{6, 9},
{6, 8},
{6, 7},
{6, 6},
{6, 5},
{6, 4},
{5, 3},
{4, 3},
{3, 3},
{2, 4},
{1, 5},
{0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_43[] = {
{9, 15},
{9, 14},
{8, 13},
{7, 13},
{6, 13},
{5, 13},
{4, 13},
{3, 12},
{3, 11},
{3, 10},
{4, 9},
{5, 9},
{6, 9},
{7, 9},
{8, 9},
{9, 9},
{8, 9},
{7, 9},
{6, 9},
{5, 9},
{4, 9},
{3, 10},
{3, 11},
{3, 12},
{4, 13},
{5, 14},
{5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_48[] = {
{15, 9},
{14, 9},
{13, 10},
{13, 11},
{12, 12},
{11, 12},
{10, 12},
{ 9, 12},
{ 8, 12},
{ 7, 12},
{ 6, 12},
{ 5, 11},
{ 5, 10},
{ 5, 9},
{ 5, 8},
{ 5, 7},
{ 5, 6},
{ 5, 7},
{ 5, 8},
{ 5, 9},
{ 5, 10},
{ 5, 11},
{ 6, 12},
{ 7, 12},
{ 8, 12},
{ 9, 12},
{10, 12},
{11, 12},
{12, 12},
{13, 11},
{13, 10},
{13, 9},
{13, 8},
{13, 7},
{13, 6},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_49[] = {
{ 9, 0},
{ 9, 1},
{10, 2},
{11, 2},
{12, 3},
{12, 4},
{12, 5},
{12, 6},
{12, 7},
{12, 8},
{12, 9},
{11, 10},
{10, 10},
{ 9, 10},
{ 8, 10},
{ 7, 10},
{ 6, 10},
{ 7, 10},
{ 8, 10},
{ 9, 10},
{10, 10},
{11, 10},
{12, 9},
{12, 8},
{12, 7},
{12, 6},
{12, 5},
{12, 4},
{12, 3},
{11, 2},
{10, 2},
{ 9, 2},
{ 8, 2},
{ 7, 2},
{ 6, 2},
{ 5, 1},
{ 5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_50[] = {
{15, 9},
{14, 9},
{13, 10},
{13, 11},
{12, 12},
{11, 12},
{10, 12},
{ 9, 11},
{ 9, 10},
{ 9, 9},
{ 9, 8},
{ 9, 7},
{ 9, 6},
{ 9, 7},
{ 9, 8},
{ 9, 9},
{ 9, 10},
{ 9, 11},
{10, 12},
{11, 12},
{12, 12},
{13, 11},
{13, 10},
{13, 9},
{13, 8},
{13, 7},
{13, 6},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_51[] = {
{ 9, 0},
{ 9, 1},
{10, 2},
{11, 2},
{12, 3},
{12, 4},
{12, 5},
{11, 6},
{10, 6},
{ 9, 6},
{ 8, 6},
{ 7, 6},
{ 6, 6},
{ 7, 6},
{ 8, 6},
{ 9, 6},
{10, 6},
{11, 6},
{12, 5},
{12, 4},
{12, 3},
{11, 2},
{10, 2},
{ 9, 2},
{ 8, 2},
{ 7, 2},
{ 6, 2},
{ 5, 1},
{ 5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_drive_data_56[] = {
{ 0, 5},
{ 1, 5},
{ 2, 4},
{ 3, 3},
{ 4, 3},
{ 5, 3},
{ 6, 3},
{ 7, 3},
{ 8, 3},
{ 9, 3},
{10, 4},
{10, 5},
{10, 6},
{10, 7},
{10, 8},
{10, 9},
{10, 8},
{10, 7},
{10, 6},
{10, 5},
{10, 4},
{ 9, 3},
{ 8, 3},
{ 7, 3},
{ 6, 3},
{ 5, 3},
{ 4, 3},
{ 3, 3},
{ 2, 4},
{ 2, 5},
{ 2, 6},
{ 2, 7},
{ 2, 8},
{ 1, 9},
{ 0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_57[] = {
{5, 15},
{5, 14},
{4, 13},
{3, 12},
{3, 11},
{3, 10},
{3, 9},
{3, 8},
{3, 7},
{3, 6},
{4, 5},
{5, 5},
{6, 5},
{7, 5},
{8, 5},
{9, 5},
{8, 5},
{7, 5},
{6, 5},
{5, 5},
{4, 5},
{3, 6},
{3, 7},
{3, 8},
{3, 9},
{3, 10},
{3, 11},
{3, 12},
{4, 13},
{5, 13},
{6, 13},
{7, 13},
{8, 13},
{9, 14},
{9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_58[] = {
{0, 5},
{1, 5},
{2, 4},
{3, 3},
{4, 3},
{5, 3},
{6, 4},
{6, 5},
{6, 6},
{6, 7},
{6, 8},
{6, 9},
{6, 8},
{6, 7},
{6, 6},
{6, 5},
{6, 4},
{5, 3},
{4, 3},
{3, 3},
{2, 4},
{2, 5},
{2, 6},
{2, 7},
{2, 8},
{1, 9},
{0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_drive_data_59[] = {
{5, 15},
{5, 14},
{4, 13},
{3, 12},
{3, 11},
{3, 10},
{4, 9},
{5, 9},
{6, 9},
{7, 9},
{8, 9},
{9, 9},
{8, 9},
{7, 9},
{6, 9},
{5, 9},
{4, 9},
{3, 10},
{3, 11},
{3, 12},
{4, 13},
{5, 13},
{6, 13},
{7, 13},
{8, 13},
{9, 14},
{9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry * const _road_road_drive_data[] = {
_roadveh_drive_data_0,
_roadveh_drive_data_1,
_roadveh_drive_data_2,
_roadveh_drive_data_3,
_roadveh_drive_data_4,
_roadveh_drive_data_5,
_roadveh_drive_data_6,
_roadveh_drive_data_7,
_roadveh_drive_data_8,
_roadveh_drive_data_9,
_roadveh_drive_data_10,
_roadveh_drive_data_11,
_roadveh_drive_data_12,
_roadveh_drive_data_13,
_roadveh_drive_data_14,
_roadveh_drive_data_15,
_roadveh_drive_data_16,
_roadveh_drive_data_17,
_roadveh_drive_data_18,
_roadveh_drive_data_19,
_roadveh_drive_data_20,
_roadveh_drive_data_21,
_roadveh_drive_data_22,
_roadveh_drive_data_23,
_roadveh_drive_data_24,
_roadveh_drive_data_25,
_roadveh_drive_data_26,
_roadveh_drive_data_27,
_roadveh_drive_data_28,
_roadveh_drive_data_29,
_roadveh_drive_data_30,
_roadveh_drive_data_31,
_roadveh_drive_data_32,
_roadveh_drive_data_33,
_roadveh_drive_data_34,
_roadveh_drive_data_35,
NULL,
NULL,
NULL,
NULL,
_roadveh_drive_data_40,
_roadveh_drive_data_41,
_roadveh_drive_data_42,
_roadveh_drive_data_43,
NULL,
NULL,
NULL,
NULL,
_roadveh_drive_data_48,
_roadveh_drive_data_49,
_roadveh_drive_data_50,
_roadveh_drive_data_51,
NULL,
NULL,
NULL,
NULL,
_roadveh_drive_data_56,
_roadveh_drive_data_57,
_roadveh_drive_data_58,
_roadveh_drive_data_59,
NULL,
NULL,
NULL,
NULL,
};
static const RoadDriveEntry _roadveh_tram_turn_ne_0[] = {
{15, 5},
{14, 5},
{13, 5},
{12, 5},
{11, 5},
{10, 5},
{ 9, 5},
{ 8, 5},
{ 7, 5},
{ 6, 5},
{ 5, 5},
{ 4, 5},
{ 3, 5},
{ 2, 5},
{ 1, 5},
{ 0, 5},
{ 0, 6},
{ 0, 7},
{ 0, 8},
{ 0, 9},
{RDE_TURNED | DIAGDIR_SW, 0},
{ 1, 9},
{ 2, 9},
{ 3, 9},
{ 4, 9},
{ 5, 9},
{ 6, 9},
{ 7, 9},
{ 8, 9},
{ 9, 9},
{10, 9},
{11, 9},
{12, 9},
{13, 9},
{14, 9},
{15, 9},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_ne_1[] = {
{15, 9},
{14, 9},
{13, 9},
{12, 9},
{11, 9},
{10, 9},
{ 9, 9},
{ 8, 9},
{ 7, 9},
{ 6, 9},
{ 5, 9},
{ 4, 9},
{ 3, 9},
{ 2, 9},
{ 1, 9},
{ 0, 9},
{ 0, 8},
{ 0, 7},
{ 0, 6},
{ 0, 5},
{RDE_TURNED | DIAGDIR_SW, 0},
{ 1, 5},
{ 2, 5},
{ 3, 5},
{ 4, 5},
{ 5, 5},
{ 6, 5},
{ 7, 5},
{ 8, 5},
{ 9, 5},
{10, 5},
{11, 5},
{12, 5},
{13, 5},
{14, 5},
{15, 5},
{RDE_NEXT_TILE | DIAGDIR_SW, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_se_0[] = {
{5, 0},
{5, 1},
{5, 2},
{5, 3},
{5, 4},
{5, 5},
{5, 6},
{5, 7},
{5, 8},
{5, 9},
{5, 10},
{5, 11},
{5, 12},
{5, 13},
{5, 14},
{5, 15},
{6, 15},
{7, 15},
{8, 15},
{9, 15},
{RDE_TURNED | DIAGDIR_NW, 0},
{9, 14},
{9, 13},
{9, 12},
{9, 11},
{9, 10},
{9, 9},
{9, 8},
{9, 7},
{9, 6},
{9, 5},
{9, 4},
{9, 3},
{9, 2},
{9, 1},
{9, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_se_1[] = {
{9, 0},
{9, 1},
{9, 2},
{9, 3},
{9, 4},
{9, 5},
{9, 6},
{9, 7},
{9, 8},
{9, 9},
{9, 10},
{9, 11},
{9, 12},
{9, 13},
{9, 14},
{9, 15},
{8, 15},
{7, 15},
{6, 15},
{5, 15},
{RDE_TURNED | DIAGDIR_NW, 0},
{5, 14},
{5, 13},
{5, 12},
{5, 11},
{5, 10},
{5, 9},
{5, 8},
{5, 7},
{5, 6},
{5, 5},
{5, 4},
{5, 3},
{5, 2},
{5, 1},
{5, 0},
{RDE_NEXT_TILE | DIAGDIR_NW, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_sw_0[] = {
{ 0, 9},
{ 1, 9},
{ 2, 9},
{ 3, 9},
{ 4, 9},
{ 5, 9},
{ 6, 9},
{ 7, 9},
{ 8, 9},
{ 9, 9},
{10, 9},
{11, 9},
{12, 9},
{13, 9},
{14, 9},
{15, 9},
{15, 8},
{15, 7},
{15, 6},
{15, 5},
{RDE_TURNED | DIAGDIR_NE, 0},
{14, 5},
{13, 5},
{12, 5},
{11, 5},
{10, 5},
{ 9, 5},
{ 8, 5},
{ 7, 5},
{ 6, 5},
{ 5, 5},
{ 4, 5},
{ 3, 5},
{ 2, 5},
{ 1, 5},
{ 0, 5},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_sw_1[] = {
{ 0, 5},
{ 1, 5},
{ 2, 5},
{ 3, 5},
{ 4, 5},
{ 5, 5},
{ 6, 5},
{ 7, 5},
{ 8, 5},
{ 9, 5},
{10, 5},
{11, 5},
{12, 5},
{13, 5},
{14, 5},
{15, 5},
{15, 6},
{15, 7},
{15, 8},
{15, 9},
{RDE_TURNED | DIAGDIR_NE, 0},
{14, 9},
{13, 9},
{12, 9},
{11, 9},
{10, 9},
{ 9, 9},
{ 8, 9},
{ 7, 9},
{ 6, 9},
{ 5, 9},
{ 4, 9},
{ 3, 9},
{ 2, 9},
{ 1, 9},
{ 0, 9},
{RDE_NEXT_TILE | DIAGDIR_NE, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_nw_0[] = {
{9, 15},
{9, 14},
{9, 13},
{9, 12},
{9, 11},
{9, 10},
{9, 9},
{9, 8},
{9, 7},
{9, 6},
{9, 5},
{9, 4},
{9, 3},
{9, 2},
{9, 1},
{9, 0},
{8, 0},
{7, 0},
{6, 0},
{5, 0},
{RDE_TURNED | DIAGDIR_SE, 0},
{5, 1},
{5, 2},
{5, 3},
{5, 4},
{5, 5},
{5, 6},
{5, 7},
{5, 8},
{5, 9},
{5, 10},
{5, 11},
{5, 12},
{5, 13},
{5, 14},
{5, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry _roadveh_tram_turn_nw_1[] = {
{5, 15},
{5, 14},
{5, 13},
{5, 12},
{5, 11},
{5, 10},
{5, 9},
{5, 8},
{5, 7},
{5, 6},
{5, 5},
{5, 4},
{5, 3},
{5, 2},
{5, 1},
{5, 0},
{6, 0},
{7, 0},
{8, 0},
{9, 0},
{RDE_TURNED | DIAGDIR_SE, 0},
{9, 1},
{9, 2},
{9, 3},
{9, 4},
{9, 5},
{9, 6},
{9, 7},
{9, 8},
{9, 9},
{9, 10},
{9, 11},
{9, 12},
{9, 13},
{9, 14},
{9, 15},
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
static const RoadDriveEntry * const _road_tram_drive_data[] = {
_roadveh_drive_data_0,
_roadveh_drive_data_1,
_roadveh_drive_data_2,
_roadveh_drive_data_3,
_roadveh_drive_data_4,
_roadveh_drive_data_5,
_roadveh_tram_turn_ne_0,
_roadveh_tram_turn_se_0,
_roadveh_drive_data_8,
_roadveh_drive_data_9,
_roadveh_drive_data_10,
_roadveh_drive_data_11,
_roadveh_drive_data_12,
_roadveh_drive_data_13,
_roadveh_tram_turn_sw_0,
_roadveh_tram_turn_nw_0,
_roadveh_drive_data_16,
_roadveh_drive_data_17,
_roadveh_drive_data_18,
_roadveh_drive_data_19,
_roadveh_drive_data_20,
_roadveh_drive_data_21,
_roadveh_tram_turn_ne_1,
_roadveh_tram_turn_se_1,
_roadveh_drive_data_24,
_roadveh_drive_data_25,
_roadveh_drive_data_26,
_roadveh_drive_data_27,
_roadveh_drive_data_28,
_roadveh_drive_data_29,
_roadveh_tram_turn_sw_1,
_roadveh_tram_turn_nw_1,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
static const RoadDriveEntry * const * const _road_drive_data[2] = {
_road_road_drive_data,
_road_tram_drive_data,
};