tron@2186: /* $Id$ */ tron@2186: celestar@9895: struct AiDefaultBlockData { truelight@0: byte mode; truelight@0: byte attr; tron@909: TileIndexDiffC tileoffs; celestar@9895: }; truelight@0: celestar@9895: struct AiDefaultRailBlock { truelight@0: byte p0; truelight@0: byte p1; truelight@0: byte p2; truelight@0: byte p3; truelight@0: byte dir; rubidium@5838: const AiDefaultBlockData *data; celestar@9895: }; truelight@0: celestar@9895: struct AiDefaultRoadBlock { truelight@0: byte dir; rubidium@5838: const AiDefaultBlockData *data; celestar@9895: }; truelight@0: truelight@0: celestar@9910: #define MKHDR(a, b, c, d, e) a, b, c, d, e, tron@909: #define MKDEPOT(a, b, c) {0, a, {b, c}} tron@909: #define MKSTATION(a, b, c) {1, a, {b, c}} tron@909: #define MKRAIL(a, b, c) {2, a, {b, c}} tron@909: #define MKCLRRAIL(a, b, c) {3, a, {b, c}} rubidium@5838: #define MKEND {4, 0, {0, 0}} truelight@0: rubidium@5838: static const AiDefaultBlockData _raildata_ai_0_data[] = { rubidium@4344: MKDEPOT(2, -1, 1), rubidium@4344: MKSTATION(0x15, 0, -1), rubidium@4344: MKRAIL(0x26, 0, 1), rubidium@4344: MKCLRRAIL(1, 0, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_0 = { rubidium@5838: 1, 2, 1, 0, 1, _raildata_ai_0_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_1_data[] = { rubidium@4344: MKDEPOT(2, -1, -1), rubidium@4344: MKRAIL(0x26, 0, -1), rubidium@4344: MKSTATION(0x15, 0, 0), rubidium@4344: MKCLRRAIL(3, 0, -2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_1 = { rubidium@5838: 1, 2, 1, 0, 3, _raildata_ai_1_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_2_data[] = { rubidium@4344: MKDEPOT(1, -1, -1), rubidium@4344: MKRAIL(0x15, -1, 0), rubidium@4344: MKSTATION(0x14, 0, 0), rubidium@4344: MKCLRRAIL(0, -2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_2 = { rubidium@5838: 1, 2, 1, 0, 0, _raildata_ai_2_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_3_data[] = { rubidium@4344: MKDEPOT(1, 1, -1), rubidium@4344: MKRAIL(0x15, 1, 0), rubidium@4344: MKSTATION(0x14, -1, 0), rubidium@4344: MKCLRRAIL(2, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_3 = { rubidium@5838: 1, 2, 1, 0, 2, _raildata_ai_3_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_4_data[] = { rubidium@4344: MKSTATION(0x15, 0, 0), rubidium@4344: MKCLRRAIL(3, 0, -1), rubidium@4344: MKCLRRAIL(1, 0, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_4 = { rubidium@5838: 1, 2, 2, 0, 255, _raildata_ai_4_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_5_data[] = { rubidium@4344: MKSTATION(0x14, 0, 0), rubidium@4344: MKCLRRAIL(0, -1, 0), rubidium@4344: MKCLRRAIL(2, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_5 = { rubidium@5838: 1, 2, 2, 0, 255, _raildata_ai_5_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_6_data[] = { rubidium@4344: MKSTATION(0x27, 0, -2), rubidium@4344: MKRAIL(0xC2, 0, 1), rubidium@4344: MKRAIL(0xC2, 1, 1), rubidium@4344: MKRAIL(0x1A, 0, 2), rubidium@4344: MKRAIL(0x26, 1, 2), rubidium@4344: MKDEPOT(3, 1, 3), rubidium@4344: MKCLRRAIL(1, 0, 3), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_6 = { rubidium@5838: 2, 3, 1, 0, 1, _raildata_ai_6_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_7_data[] = { rubidium@4344: MKDEPOT(1, 0, -3), rubidium@4344: MKRAIL(0x1A, 0, -2), rubidium@4344: MKRAIL(0x26, 1, -2), rubidium@4344: MKRAIL(0xC2, 0, -1), rubidium@4344: MKRAIL(0xC2, 1, -1), rubidium@4344: MKSTATION(0x27, 0, 0), rubidium@4344: MKCLRRAIL(3, 1, -3), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_7 = { rubidium@5838: 2, 3, 1, 0, 3, _raildata_ai_7_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_8_data[] = { rubidium@4344: MKSTATION(0x26, -2, 0), rubidium@4344: MKRAIL(0xC1, 1, 0), rubidium@4344: MKRAIL(0xC1, 1, 1), rubidium@4344: MKRAIL(0x29, 2, 0), rubidium@4344: MKRAIL(0x15, 2, 1), rubidium@4344: MKDEPOT(0, 3, 0), rubidium@4344: MKCLRRAIL(2, 3, 1), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_8 = { rubidium@5838: 2, 3, 1, 0, 2, _raildata_ai_8_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_9_data[] = { rubidium@4344: MKDEPOT(2, -3, -1), rubidium@4344: MKRAIL(0x29, -2, -1), rubidium@4344: MKRAIL(0x15, -2, 0), rubidium@4344: MKRAIL(0xC1, -1, -1), rubidium@4344: MKRAIL(0xC1, -1, 0), rubidium@4344: MKSTATION(0x26, 0, -1), rubidium@4344: MKCLRRAIL(0, -3, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_9 = { rubidium@5838: 2, 3, 1, 0, 0, _raildata_ai_9_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_10_data[] = { rubidium@4344: MKRAIL(0x1A, 0, -3), rubidium@4344: MKRAIL(0x20, 1, -3), rubidium@4344: MKRAIL(0xC2, 0, -2), rubidium@4344: MKRAIL(0xC2, 1, -2), rubidium@4344: MKSTATION(0x27, 0, -1), rubidium@4344: MKRAIL(0xC2, 0, 2), rubidium@4344: MKRAIL(0xC2, 1, 2), rubidium@4344: MKRAIL(0x1A, 0, 3), rubidium@4344: MKRAIL(0x4, 1, 3), rubidium@4344: MKCLRRAIL(3, 0, -4), rubidium@4344: MKCLRRAIL(1, 0, 4), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_10 = { rubidium@5838: 2, 3, 2, 0, 255, _raildata_ai_10_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_11_data[] = { rubidium@4344: MKRAIL(0x29, -3, 0), rubidium@4344: MKRAIL(0x10, -3, 1), rubidium@4344: MKRAIL(0xC1, -2, 0), rubidium@4344: MKRAIL(0xC1, -2, 1), rubidium@4344: MKSTATION(0x26, -1, 0), rubidium@4344: MKRAIL(0xC1, 2, 0), rubidium@4344: MKRAIL(0xC1, 2, 1), rubidium@4344: MKRAIL(0x29, 3, 0), rubidium@4344: MKRAIL(0x4, 3, 1), rubidium@4344: MKCLRRAIL(0, -4, 0), rubidium@4344: MKCLRRAIL(2, 4, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_11 = { rubidium@5838: 2, 3, 2, 0, 255, _raildata_ai_11_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_12_data[] = { rubidium@4344: MKRAIL(0x88, -1, -3), rubidium@4344: MKRAIL(0x6, 0, -3), rubidium@4344: MKRAIL(0x2, -1, -2), rubidium@4344: MKRAIL(0x42, 0, -2), rubidium@4344: MKRAIL(0x2, -1, -1), rubidium@4344: MKRAIL(0x2, 0, -1), rubidium@4344: MKRAIL(0x2, -1, 0), rubidium@4344: MKRAIL(0x2, 0, 0), rubidium@4344: MKRAIL(0x82, -1, 1), rubidium@4344: MKRAIL(0x2, 0, 1), rubidium@4344: MKRAIL(0xA, -1, 2), rubidium@4344: MKRAIL(0x44, 0, 2), rubidium@4344: MKCLRRAIL(3, 0, -4), rubidium@4344: MKCLRRAIL(1, -1, 3), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_12 = { rubidium@5838: 2, 3, 2, 1, 3, _raildata_ai_12_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_13_data[] = { rubidium@4344: MKRAIL(0x21, -3, 0), rubidium@4344: MKRAIL(0x50, -3, 1), rubidium@4344: MKRAIL(0x81, -2, 0), rubidium@4344: MKRAIL(0x1, -2, 1), rubidium@4344: MKRAIL(0x1, -1, 0), rubidium@4344: MKRAIL(0x1, -1, 1), rubidium@4344: MKRAIL(0x1, 0, 0), rubidium@4344: MKRAIL(0x1, 0, 1), rubidium@4344: MKRAIL(0x1, 1, 0), rubidium@4344: MKRAIL(0x41, 1, 1), rubidium@4344: MKRAIL(0xA0, 2, 0), rubidium@4344: MKRAIL(0x11, 2, 1), rubidium@4344: MKCLRRAIL(0, -4, 0), rubidium@4344: MKCLRRAIL(2, 3, 1), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_13 = { rubidium@5838: 2, 3, 2, 1, 0, _raildata_ai_13_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_14_data[] = { rubidium@4344: MKRAIL(0x88, -1, -3), rubidium@4344: MKRAIL(0x6, 0, -3), rubidium@4344: MKRAIL(0x2, -1, -2), rubidium@4344: MKRAIL(0x42, 0, -2), rubidium@4344: MKRAIL(0x2, -1, -1), rubidium@4344: MKRAIL(0x2, 0, -1), rubidium@4344: MKRAIL(0x2, -1, 0), rubidium@4344: MKRAIL(0x2, 0, 0), rubidium@4344: MKRAIL(0x82, -1, 1), rubidium@4344: MKRAIL(0x2, 0, 1), rubidium@4344: MKRAIL(0xA, -1, 2), rubidium@4344: MKRAIL(0x44, 0, 2), rubidium@4344: MKCLRRAIL(1, -1, 3), rubidium@4344: MKCLRRAIL(3, 0, -4), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_14 = { rubidium@5838: 2, 3, 2, 1, 1, _raildata_ai_14_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_15_data[] = { rubidium@4344: MKRAIL(0x21, -3, 0), rubidium@4344: MKRAIL(0x50, -3, 1), rubidium@4344: MKRAIL(0x81, -2, 0), rubidium@4344: MKRAIL(0x1, -2, 1), rubidium@4344: MKRAIL(0x1, -1, 0), rubidium@4344: MKRAIL(0x1, -1, 1), rubidium@4344: MKRAIL(0x1, 0, 0), rubidium@4344: MKRAIL(0x1, 0, 1), rubidium@4344: MKRAIL(0x1, 1, 0), rubidium@4344: MKRAIL(0x41, 1, 1), rubidium@4344: MKRAIL(0xA0, 2, 0), rubidium@4344: MKRAIL(0x11, 2, 1), rubidium@4344: MKCLRRAIL(2, 3, 1), rubidium@4344: MKCLRRAIL(0, -4, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_15 = { rubidium@5838: 2, 3, 2, 1, 2, _raildata_ai_15_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_16_data[] = { rubidium@4344: MKSTATION(0x17, 0, -2), rubidium@4344: MKRAIL(0x1A, 0, 1), rubidium@4344: MKCLRRAIL(1, 0, 2), rubidium@4344: MKDEPOT(0, 1, 1), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_16 = { rubidium@5838: 1, 3, 1, 0, 1, _raildata_ai_16_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_17_data[] = { rubidium@4344: MKCLRRAIL(3, 0, -2), rubidium@4344: MKRAIL(0x26, 0, -1), rubidium@4344: MKDEPOT(2, -1, -1), rubidium@4344: MKSTATION(0x17, 0, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_17 = { rubidium@5838: 1, 3, 1, 0, 3, _raildata_ai_17_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_18_data[] = { rubidium@4344: MKCLRRAIL(0, -2, 0), rubidium@4344: MKRAIL(0x29, -1, 0), rubidium@4344: MKDEPOT(3, -1, 1), rubidium@4344: MKSTATION(0x16, 0, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_18 = { rubidium@5838: 1, 3, 1, 0, 0, _raildata_ai_18_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_19_data[] = { rubidium@4344: MKSTATION(0x16, -2, 0), rubidium@4344: MKDEPOT(2, 0, -1), rubidium@4344: MKRAIL(0x20, 1, -1), rubidium@4344: MKRAIL(0x15, 1, 0), rubidium@4344: MKCLRRAIL(2, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_19 = { rubidium@5838: 1, 3, 1, 0, 2, _raildata_ai_19_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_20_data[] = { rubidium@4344: MKSTATION(0x26, -2, 0), rubidium@4344: MKRAIL(0xC1, 1, 0), rubidium@4344: MKRAIL(0xC1, 1, 1), rubidium@4344: MKRAIL(0x26, 2, 0), rubidium@4344: MKRAIL(0x26, 2, 1), rubidium@4344: MKDEPOT(1, 2, -1), rubidium@4344: MKCLRRAIL(1, 2, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_20 = { rubidium@5838: 2, 3, 1, 0, 1, _raildata_ai_20_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_21_data[] = { rubidium@4344: MKDEPOT(2, -3, -1), rubidium@4344: MKRAIL(0x3F, -2, -1), rubidium@4344: MKRAIL(0x10, -2, 0), rubidium@4344: MKRAIL(0xC1, -1, -1), rubidium@4344: MKRAIL(0xC1, -1, 0), rubidium@4344: MKSTATION(0x26, 0, -1), rubidium@4344: MKCLRRAIL(3, -2, -2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_21 = { rubidium@5838: 2, 3, 1, 0, 3, _raildata_ai_21_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_22_data[] = { rubidium@4344: MKSTATION(0x27, 0, -2), rubidium@4344: MKRAIL(0xC2, 0, 1), rubidium@4344: MKRAIL(0xC2, 1, 1), rubidium@4344: MKRAIL(0x15, 0, 2), rubidium@4344: MKRAIL(0x4, 1, 2), rubidium@4344: MKRAIL(0x15, -1, 2), rubidium@4344: MKDEPOT(1, -1, 1), rubidium@4344: MKCLRRAIL(0, -2, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_22 = { rubidium@5838: 2, 3, 1, 0, 0, _raildata_ai_22_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _raildata_ai_23_data[] = { rubidium@4344: MKDEPOT(1, 0, -3), rubidium@4344: MKRAIL(0x1A, 0, -2), rubidium@4344: MKRAIL(0x29, 1, -2), rubidium@4344: MKRAIL(0xC2, 0, -1), rubidium@4344: MKRAIL(0xC2, 1, -1), rubidium@4344: MKSTATION(0x27, 0, 0), rubidium@4344: MKCLRRAIL(2, 2, -2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRailBlock _raildata_ai_23 = { rubidium@5838: 2, 3, 1, 0, 2, _raildata_ai_23_data rubidium@5838: }; truelight@0: truelight@0: static const AiDefaultRailBlock * const _default_rail_track_data[] = { truelight@0: &_raildata_ai_0, truelight@0: &_raildata_ai_1, truelight@0: &_raildata_ai_2, truelight@0: &_raildata_ai_3, truelight@0: &_raildata_ai_4, truelight@0: &_raildata_ai_5, truelight@0: &_raildata_ai_6, truelight@0: &_raildata_ai_7, truelight@0: &_raildata_ai_8, truelight@0: &_raildata_ai_9, truelight@0: &_raildata_ai_10, truelight@0: &_raildata_ai_11, truelight@0: &_raildata_ai_12, truelight@0: &_raildata_ai_13, truelight@0: &_raildata_ai_14, truelight@0: &_raildata_ai_15, truelight@0: &_raildata_ai_16, truelight@0: &_raildata_ai_17, truelight@0: &_raildata_ai_18, truelight@0: &_raildata_ai_19, truelight@0: &_raildata_ai_20, truelight@0: &_raildata_ai_21, truelight@0: &_raildata_ai_22, truelight@0: &_raildata_ai_23, truelight@0: NULL truelight@0: }; truelight@0: truelight@0: #undef MKHDR truelight@0: celestar@9910: #define MKHDR(a) a, { truelight@0: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_0_data[] = { celestar@9910: MKDEPOT(2, -1, 1), celestar@9910: MKSTATION(0x2, -1, 0), celestar@9910: MKRAIL(0xC, 0, 0), celestar@9910: MKRAIL(0x9, 0, 1), celestar@9910: MKCLRRAIL(0, 0, -1), celestar@9910: MKCLRRAIL(0, 1, 0), celestar@9910: MKCLRRAIL(0, 1, 1), celestar@9910: MKCLRRAIL(0, 0, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_0 = { rubidium@5838: 0, _roaddata_ai_0_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_1_data[] = { celestar@9910: MKDEPOT(1, 0, -1), celestar@9910: MKSTATION(0x1, 1, -1), celestar@9910: MKRAIL(0x3, 0, 0), celestar@9910: MKRAIL(0x9, 1, 0), celestar@9910: MKCLRRAIL(0, -1, 0), celestar@9910: MKCLRRAIL(0, 0, 1), celestar@9910: MKCLRRAIL(0, 1, 1), celestar@9910: MKCLRRAIL(0, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_1 = { rubidium@5838: 0, _roaddata_ai_1_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_2_data[] = { celestar@9910: MKDEPOT(3, 1, 1), celestar@9910: MKSTATION(0x3, 0, 1), celestar@9910: MKRAIL(0x6, 0, 0), celestar@9910: MKRAIL(0xC, 1, 0), celestar@9910: MKCLRRAIL(0, -1, 0), celestar@9910: MKCLRRAIL(0, 0, -1), celestar@9910: MKCLRRAIL(0, 1, -1), celestar@9910: MKCLRRAIL(0, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_2 = { rubidium@5838: 0, _roaddata_ai_2_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_3_data[] = { celestar@9910: MKDEPOT(0, 1, 0), celestar@9910: MKSTATION(0x0, 1, 1), celestar@9910: MKRAIL(0x6, 0, 0), celestar@9910: MKRAIL(0x3, 0, 1), celestar@9910: MKCLRRAIL(0, 0, -1), celestar@9910: MKCLRRAIL(0, -1, 0), celestar@9910: MKCLRRAIL(0, -1, 1), celestar@9910: MKCLRRAIL(0, 0, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_3 = { rubidium@5838: 0, _roaddata_ai_3_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_4_data[] = { celestar@9910: MKSTATION(0x2, -1, 0), celestar@9910: MKRAIL(0x8, 0, 0), celestar@9910: MKCLRRAIL(0, 0, -1), celestar@9910: MKCLRRAIL(0, 1, 0), celestar@9910: MKCLRRAIL(0, 0, 1), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_4 = { rubidium@5838: 1, _roaddata_ai_4_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_5_data[] = { celestar@9910: MKSTATION(0x3, 0, 1), celestar@9910: MKRAIL(0x4, 0, 0), celestar@9910: MKCLRRAIL(0, -1, 0), celestar@9910: MKCLRRAIL(0, 0, -1), celestar@9910: MKCLRRAIL(0, 1, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_5 = { rubidium@5838: 1, _roaddata_ai_5_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_6_data[] = { celestar@9910: MKSTATION(0x0, 1, 1), celestar@9910: MKRAIL(0x2, 0, 1), celestar@9910: MKCLRRAIL(0, 0, 0), celestar@9910: MKCLRRAIL(0, -1, 0), celestar@9910: MKCLRRAIL(0, 0, 2), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_6 = { rubidium@5838: 1, _roaddata_ai_6_data rubidium@5838: }; rubidium@5838: rubidium@5838: static const AiDefaultBlockData _roaddata_ai_7_data[] = { celestar@9910: MKSTATION(0x1, 1, -1), celestar@9910: MKRAIL(0x1, 1, 0), celestar@9910: MKCLRRAIL(0, 0, 0), celestar@9910: MKCLRRAIL(0, 1, 1), celestar@9910: MKCLRRAIL(0, 2, 0), truelight@0: MKEND truelight@0: }; truelight@0: rubidium@5838: static const AiDefaultRoadBlock _roaddata_ai_7 = { rubidium@5838: 1, _roaddata_ai_7_data rubidium@5838: }; rubidium@5838: truelight@0: truelight@0: static const AiDefaultRoadBlock * const _road_default_block_data[] = { truelight@0: &_roaddata_ai_0, truelight@0: &_roaddata_ai_1, truelight@0: &_roaddata_ai_2, truelight@0: &_roaddata_ai_3, truelight@0: &_roaddata_ai_4, truelight@0: &_roaddata_ai_5, truelight@0: &_roaddata_ai_6, truelight@0: &_roaddata_ai_7, truelight@0: NULL truelight@0: }; truelight@0: tron@909: #define MKAIR(a, b, c) {0, a, {b, c}} truelight@0: truelight@0: static const AiDefaultBlockData _airportdata_ai_0[] = { tron@909: MKAIR(1, 0, 0), tron@909: {1, 0, {0, 0}}, truelight@0: }; truelight@0: truelight@0: static const AiDefaultBlockData _airportdata_ai_1[] = { tron@909: MKAIR(0, 0, 0), tron@909: {1, 0, {0, 0}} truelight@0: }; truelight@0: truelight@0: static const AiDefaultBlockData * const _airport_default_block_data[] = { truelight@0: _airportdata_ai_0, // city airport truelight@0: _airportdata_ai_1, // country airport truelight@0: NULL truelight@0: };