table/ai_rail.h
changeset 909 65cdb609b7a6
parent 536 03d80fecb999
child 1088 f7543c05ba86
equal deleted inserted replaced
908:283e87112491 909:65cdb609b7a6
     1 typedef struct {
     1 typedef struct {
     2 	byte mode;
     2 	byte mode;
     3 	byte attr;
     3 	byte attr;
     4 	TileIndexDiff tileoffs;
     4 	TileIndexDiffC tileoffs;
     5 } AiDefaultBlockData;
     5 } AiDefaultBlockData;
     6 
     6 
     7 typedef struct {
     7 typedef struct {
     8 	byte p0;
     8 	byte p0;
     9 	byte p1;
     9 	byte p1;
    18 	AiDefaultBlockData data[VARARRAY_SIZE];
    18 	AiDefaultBlockData data[VARARRAY_SIZE];
    19 } AiDefaultRoadBlock;
    19 } AiDefaultRoadBlock;
    20 
    20 
    21 
    21 
    22 #define MKHDR(a,b,c,d,e) a,b,c,d,e,{
    22 #define MKHDR(a,b,c,d,e) a,b,c,d,e,{
    23 #define MKDEPOT(a,b) {0,a,b}
    23 #define MKDEPOT(a, b, c)   {0, a, {b, c}}
    24 #define MKSTATION(a,b) {1,a,b}
    24 #define MKSTATION(a, b, c) {1, a, {b, c}}
    25 #define MKRAIL(a,b) {2,a,b}
    25 #define MKRAIL(a, b, c)    {2, a, {b, c}}
    26 #define MKCLRRAIL(a,b) {3,a,b}
    26 #define MKCLRRAIL(a, b, c) {3, a, {b, c}}
    27 #define MKEND {4, 0, 0}}
    27 #define MKEND              {4, 0, {0, 0}}}
    28 
    28 
    29 static const AiDefaultRailBlock _raildata_ai_0 = {
    29 static const AiDefaultRailBlock _raildata_ai_0 = {
    30 	MKHDR(1,2,1,0,1)
    30 	MKHDR(1,2,1,0,1)
    31 	MKDEPOT(2,TILE_XY(-1,1)),
    31 	MKDEPOT(2, -1,1),
    32 	MKSTATION(0x15,TILE_XY(0,-1)),
    32 	MKSTATION(0x15, 0,-1),
    33 	MKRAIL(0x26,TILE_XY(0,1)),
    33 	MKRAIL(0x26, 0,1),
    34 	MKCLRRAIL(1,TILE_XY(0,2)),
    34 	MKCLRRAIL(1, 0,2),
    35 	MKEND
    35 	MKEND
    36 };
    36 };
    37 
    37 
    38 static const AiDefaultRailBlock _raildata_ai_1 = {
    38 static const AiDefaultRailBlock _raildata_ai_1 = {
    39 	MKHDR(1,2,1,0,3)
    39 	MKHDR(1,2,1,0,3)
    40 	MKDEPOT(2,TILE_XY(-1,-1)),
    40 	MKDEPOT(2, -1,-1),
    41 	MKRAIL(0x26,TILE_XY(0,-1)),
    41 	MKRAIL(0x26, 0,-1),
    42 	MKSTATION(0x15,TILE_XY(0,0)),
    42 	MKSTATION(0x15, 0,0),
    43 	MKCLRRAIL(3,TILE_XY(0,-2)),
    43 	MKCLRRAIL(3, 0,-2),
    44 	MKEND
    44 	MKEND
    45 };
    45 };
    46 
    46 
    47 static const AiDefaultRailBlock _raildata_ai_2 = {
    47 static const AiDefaultRailBlock _raildata_ai_2 = {
    48 	MKHDR(1,2,1,0,0)
    48 	MKHDR(1,2,1,0,0)
    49 	MKDEPOT(1,TILE_XY(-1,-1)),
    49 	MKDEPOT(1, -1,-1),
    50 	MKRAIL(0x15,TILE_XY(-1,0)),
    50 	MKRAIL(0x15, -1,0),
    51 	MKSTATION(0x14,TILE_XY(0,0)),
    51 	MKSTATION(0x14, 0,0),
    52 	MKCLRRAIL(0,TILE_XY(-2,0)),
    52 	MKCLRRAIL(0, -2,0),
    53 	MKEND
    53 	MKEND
    54 };
    54 };
    55 
    55 
    56 static const AiDefaultRailBlock _raildata_ai_3 = {
    56 static const AiDefaultRailBlock _raildata_ai_3 = {
    57 	MKHDR(1,2,1,0,2)
    57 	MKHDR(1,2,1,0,2)
    58 	MKDEPOT(1,TILE_XY(1,-1)),
    58 	MKDEPOT(1, 1,-1),
    59 	MKRAIL(0x15,TILE_XY(1,0)),
    59 	MKRAIL(0x15, 1,0),
    60 	MKSTATION(0x14,TILE_XY(-1,0)),
    60 	MKSTATION(0x14, -1,0),
    61 	MKCLRRAIL(2,TILE_XY(2,0)),
    61 	MKCLRRAIL(2, 2,0),
    62 	MKEND
    62 	MKEND
    63 };
    63 };
    64 
    64 
    65 static const AiDefaultRailBlock _raildata_ai_4 = {
    65 static const AiDefaultRailBlock _raildata_ai_4 = {
    66 	MKHDR(1,2,2,0,255)
    66 	MKHDR(1,2,2,0,255)
    67 	MKSTATION(0x15,TILE_XY(0,0)),
    67 	MKSTATION(0x15, 0,0),
    68 	MKCLRRAIL(3,TILE_XY(0,-1)),
    68 	MKCLRRAIL(3, 0,-1),
    69 	MKCLRRAIL(1,TILE_XY(0,2)),
    69 	MKCLRRAIL(1, 0,2),
    70 	MKEND
    70 	MKEND
    71 };
    71 };
    72 
    72 
    73 static const AiDefaultRailBlock _raildata_ai_5 = {
    73 static const AiDefaultRailBlock _raildata_ai_5 = {
    74 	MKHDR(1,2,2,0,255)
    74 	MKHDR(1,2,2,0,255)
    75 	MKSTATION(0x14,TILE_XY(0,0)),
    75 	MKSTATION(0x14, 0,0),
    76 	MKCLRRAIL(0,TILE_XY(-1,0)),
    76 	MKCLRRAIL(0, -1,0),
    77 	MKCLRRAIL(2,TILE_XY(2,0)),
    77 	MKCLRRAIL(2, 2,0),
    78 	MKEND
    78 	MKEND
    79 };
    79 };
    80 
    80 
    81 static const AiDefaultRailBlock _raildata_ai_6 = {
    81 static const AiDefaultRailBlock _raildata_ai_6 = {
    82 	MKHDR(2,3,1,0,1)
    82 	MKHDR(2,3,1,0,1)
    83 	MKSTATION(0x27,TILE_XY(0,-2)),
    83 	MKSTATION(0x27, 0,-2),
    84 	MKRAIL(0xC2,TILE_XY(0,1)),
    84 	MKRAIL(0xC2, 0,1),
    85 	MKRAIL(0xC2,TILE_XY(1,1)),
    85 	MKRAIL(0xC2, 1,1),
    86 	MKRAIL(0x1A,TILE_XY(0,2)),
    86 	MKRAIL(0x1A, 0,2),
    87 	MKRAIL(0x26,TILE_XY(1,2)),
    87 	MKRAIL(0x26, 1,2),
    88 	MKDEPOT(3,TILE_XY(1,3)),
    88 	MKDEPOT(3, 1,3),
    89 	MKCLRRAIL(1,TILE_XY(0,3)),
    89 	MKCLRRAIL(1, 0,3),
    90 	MKEND
    90 	MKEND
    91 };
    91 };
    92 
    92 
    93 static const AiDefaultRailBlock _raildata_ai_7 = {
    93 static const AiDefaultRailBlock _raildata_ai_7 = {
    94 	MKHDR(2,3,1,0,3)
    94 	MKHDR(2,3,1,0,3)
    95 	MKDEPOT(1,TILE_XY(0,-3)),
    95 	MKDEPOT(1, 0,-3),
    96 	MKRAIL(0x1A,TILE_XY(0,-2)),
    96 	MKRAIL(0x1A, 0,-2),
    97 	MKRAIL(0x26,TILE_XY(1,-2)),
    97 	MKRAIL(0x26, 1,-2),
    98 	MKRAIL(0xC2,TILE_XY(0,-1)),
    98 	MKRAIL(0xC2, 0,-1),
    99 	MKRAIL(0xC2,TILE_XY(1,-1)),
    99 	MKRAIL(0xC2, 1,-1),
   100 	MKSTATION(0x27,TILE_XY(0,0)),
   100 	MKSTATION(0x27, 0,0),
   101 	MKCLRRAIL(3,TILE_XY(1,-3)),
   101 	MKCLRRAIL(3, 1,-3),
   102 	MKEND
   102 	MKEND
   103 };
   103 };
   104 
   104 
   105 static const AiDefaultRailBlock _raildata_ai_8 = {
   105 static const AiDefaultRailBlock _raildata_ai_8 = {
   106 	MKHDR(2,3,1,0,2)
   106 	MKHDR(2,3,1,0,2)
   107 	MKSTATION(0x26,TILE_XY(-2,0)),
   107 	MKSTATION(0x26, -2,0),
   108 	MKRAIL(0xC1,TILE_XY(1,0)),
   108 	MKRAIL(0xC1, 1,0),
   109 	MKRAIL(0xC1,TILE_XY(1,1)),
   109 	MKRAIL(0xC1, 1,1),
   110 	MKRAIL(0x29,TILE_XY(2,0)),
   110 	MKRAIL(0x29, 2,0),
   111 	MKRAIL(0x15,TILE_XY(2,1)),
   111 	MKRAIL(0x15, 2,1),
   112 	MKDEPOT(0,TILE_XY(3,0)),
   112 	MKDEPOT(0, 3,0),
   113 	MKCLRRAIL(2,TILE_XY(3,1)),
   113 	MKCLRRAIL(2, 3,1),
   114 	MKEND
   114 	MKEND
   115 };
   115 };
   116 
   116 
   117 static const AiDefaultRailBlock _raildata_ai_9 = {
   117 static const AiDefaultRailBlock _raildata_ai_9 = {
   118 	MKHDR(2,3,1,0,0)
   118 	MKHDR(2,3,1,0,0)
   119 	MKDEPOT(2,TILE_XY(-3,-1)),
   119 	MKDEPOT(2, -3,-1),
   120 	MKRAIL(0x29,TILE_XY(-2,-1)),
   120 	MKRAIL(0x29, -2,-1),
   121 	MKRAIL(0x15,TILE_XY(-2,0)),
   121 	MKRAIL(0x15, -2,0),
   122 	MKRAIL(0xC1,TILE_XY(-1,-1)),
   122 	MKRAIL(0xC1, -1,-1),
   123 	MKRAIL(0xC1,TILE_XY(-1,0)),
   123 	MKRAIL(0xC1, -1,0),
   124 	MKSTATION(0x26,TILE_XY(0,-1)),
   124 	MKSTATION(0x26, 0,-1),
   125 	MKCLRRAIL(0,TILE_XY(-3,0)),
   125 	MKCLRRAIL(0, -3,0),
   126 	MKEND
   126 	MKEND
   127 };
   127 };
   128 
   128 
   129 static const AiDefaultRailBlock _raildata_ai_10 = {
   129 static const AiDefaultRailBlock _raildata_ai_10 = {
   130 	MKHDR(2,3,2,0,255)
   130 	MKHDR(2,3,2,0,255)
   131 	MKRAIL(0x1A,TILE_XY(0,-3)),
   131 	MKRAIL(0x1A, 0,-3),
   132 	MKRAIL(0x20,TILE_XY(1,-3)),
   132 	MKRAIL(0x20, 1,-3),
   133 	MKRAIL(0xC2,TILE_XY(0,-2)),
   133 	MKRAIL(0xC2, 0,-2),
   134 	MKRAIL(0xC2,TILE_XY(1,-2)),
   134 	MKRAIL(0xC2, 1,-2),
   135 	MKSTATION(0x27,TILE_XY(0,-1)),
   135 	MKSTATION(0x27, 0,-1),
   136 	MKRAIL(0xC2,TILE_XY(0,2)),
   136 	MKRAIL(0xC2, 0,2),
   137 	MKRAIL(0xC2,TILE_XY(1,2)),
   137 	MKRAIL(0xC2, 1,2),
   138 	MKRAIL(0x1A,TILE_XY(0,3)),
   138 	MKRAIL(0x1A, 0,3),
   139 	MKRAIL(0x4,TILE_XY(1,3)),
   139 	MKRAIL(0x4, 1,3),
   140 	MKCLRRAIL(3,TILE_XY(0,-4)),
   140 	MKCLRRAIL(3, 0,-4),
   141 	MKCLRRAIL(1,TILE_XY(0,4)),
   141 	MKCLRRAIL(1, 0,4),
   142 	MKEND
   142 	MKEND
   143 };
   143 };
   144 
   144 
   145 static const AiDefaultRailBlock _raildata_ai_11 = {
   145 static const AiDefaultRailBlock _raildata_ai_11 = {
   146 	MKHDR(2,3,2,0,255)
   146 	MKHDR(2,3,2,0,255)
   147 	MKRAIL(0x29,TILE_XY(-3,0)),
   147 	MKRAIL(0x29, -3,0),
   148 	MKRAIL(0x10,TILE_XY(-3,1)),
   148 	MKRAIL(0x10, -3,1),
   149 	MKRAIL(0xC1,TILE_XY(-2,0)),
   149 	MKRAIL(0xC1, -2,0),
   150 	MKRAIL(0xC1,TILE_XY(-2,1)),
   150 	MKRAIL(0xC1, -2,1),
   151 	MKSTATION(0x26,TILE_XY(-1,0)),
   151 	MKSTATION(0x26, -1,0),
   152 	MKRAIL(0xC1,TILE_XY(2,0)),
   152 	MKRAIL(0xC1, 2,0),
   153 	MKRAIL(0xC1,TILE_XY(2,1)),
   153 	MKRAIL(0xC1, 2,1),
   154 	MKRAIL(0x29,TILE_XY(3,0)),
   154 	MKRAIL(0x29, 3,0),
   155 	MKRAIL(0x4,TILE_XY(3,1)),
   155 	MKRAIL(0x4, 3,1),
   156 	MKCLRRAIL(0,TILE_XY(-4,0)),
   156 	MKCLRRAIL(0, -4,0),
   157 	MKCLRRAIL(2,TILE_XY(4,0)),
   157 	MKCLRRAIL(2, 4,0),
   158 	MKEND
   158 	MKEND
   159 };
   159 };
   160 
   160 
   161 static const AiDefaultRailBlock _raildata_ai_12 = {
   161 static const AiDefaultRailBlock _raildata_ai_12 = {
   162 	MKHDR(2,3,2,1,3)
   162 	MKHDR(2,3,2,1,3)
   163 	MKRAIL(0x88,TILE_XY(-1,-3)),
   163 	MKRAIL(0x88, -1,-3),
   164 	MKRAIL(0x6,TILE_XY(0,-3)),
   164 	MKRAIL(0x6, 0,-3),
   165 	MKRAIL(0x2,TILE_XY(-1,-2)),
   165 	MKRAIL(0x2, -1,-2),
   166 	MKRAIL(0x42,TILE_XY(0,-2)),
   166 	MKRAIL(0x42, 0,-2),
   167 	MKRAIL(0x2,TILE_XY(-1,-1)),
   167 	MKRAIL(0x2, -1,-1),
   168 	MKRAIL(0x2,TILE_XY(0,-1)),
   168 	MKRAIL(0x2, 0,-1),
   169 	MKRAIL(0x2,TILE_XY(-1,0)),
   169 	MKRAIL(0x2, -1,0),
   170 	MKRAIL(0x2,TILE_XY(0,0)),
   170 	MKRAIL(0x2, 0,0),
   171 	MKRAIL(0x82,TILE_XY(-1,1)),
   171 	MKRAIL(0x82, -1,1),
   172 	MKRAIL(0x2,TILE_XY(0,1)),
   172 	MKRAIL(0x2, 0,1),
   173 	MKRAIL(0xA,TILE_XY(-1,2)),
   173 	MKRAIL(0xA, -1,2),
   174 	MKRAIL(0x44,TILE_XY(0,2)),
   174 	MKRAIL(0x44, 0,2),
   175 	MKCLRRAIL(3,TILE_XY(0,-4)),
   175 	MKCLRRAIL(3, 0,-4),
   176 	MKCLRRAIL(1,TILE_XY(-1,3)),
   176 	MKCLRRAIL(1, -1,3),
   177 	MKEND
   177 	MKEND
   178 };
   178 };
   179 
   179 
   180 static const AiDefaultRailBlock _raildata_ai_13 = {
   180 static const AiDefaultRailBlock _raildata_ai_13 = {
   181 	MKHDR(2,3,2,1,0)
   181 	MKHDR(2,3,2,1,0)
   182 	MKRAIL(0x21,TILE_XY(-3,0)),
   182 	MKRAIL(0x21, -3,0),
   183 	MKRAIL(0x90,TILE_XY(-3,1)),
   183 	MKRAIL(0x90, -3,1),
   184 	MKRAIL(0x81,TILE_XY(-2,0)),
   184 	MKRAIL(0x81, -2,0),
   185 	MKRAIL(0x1,TILE_XY(-2,1)),
   185 	MKRAIL(0x1, -2,1),
   186 	MKRAIL(0x1,TILE_XY(-1,0)),
   186 	MKRAIL(0x1, -1,0),
   187 	MKRAIL(0x1,TILE_XY(-1,1)),
   187 	MKRAIL(0x1, -1,1),
   188 	MKRAIL(0x1,TILE_XY(0,0)),
   188 	MKRAIL(0x1, 0,0),
   189 	MKRAIL(0x1,TILE_XY(0,1)),
   189 	MKRAIL(0x1, 0,1),
   190 	MKRAIL(0x1,TILE_XY(1,0)),
   190 	MKRAIL(0x1, 1,0),
   191 	MKRAIL(0x41,TILE_XY(1,1)),
   191 	MKRAIL(0x41, 1,1),
   192 	MKRAIL(0x60,TILE_XY(2,0)),
   192 	MKRAIL(0x60, 2,0),
   193 	MKRAIL(0x11,TILE_XY(2,1)),
   193 	MKRAIL(0x11, 2,1),
   194 	MKCLRRAIL(0,TILE_XY(-4,0)),
   194 	MKCLRRAIL(0, -4,0),
   195 	MKCLRRAIL(2,TILE_XY(3,1)),
   195 	MKCLRRAIL(2, 3,1),
   196 	MKEND
   196 	MKEND
   197 };
   197 };
   198 
   198 
   199 static const AiDefaultRailBlock _raildata_ai_14 = {
   199 static const AiDefaultRailBlock _raildata_ai_14 = {
   200 	MKHDR(2,3,2,1,1)
   200 	MKHDR(2,3,2,1,1)
   201 	MKRAIL(0x88,TILE_XY(-1,-3)),
   201 	MKRAIL(0x88, -1,-3),
   202 	MKRAIL(0x6,TILE_XY(0,-3)),
   202 	MKRAIL(0x6, 0,-3),
   203 	MKRAIL(0x2,TILE_XY(-1,-2)),
   203 	MKRAIL(0x2, -1,-2),
   204 	MKRAIL(0x42,TILE_XY(0,-2)),
   204 	MKRAIL(0x42, 0,-2),
   205 	MKRAIL(0x2,TILE_XY(-1,-1)),
   205 	MKRAIL(0x2, -1,-1),
   206 	MKRAIL(0x2,TILE_XY(0,-1)),
   206 	MKRAIL(0x2, 0,-1),
   207 	MKRAIL(0x2,TILE_XY(-1,0)),
   207 	MKRAIL(0x2, -1,0),
   208 	MKRAIL(0x2,TILE_XY(0,0)),
   208 	MKRAIL(0x2, 0,0),
   209 	MKRAIL(0x82,TILE_XY(-1,1)),
   209 	MKRAIL(0x82, -1,1),
   210 	MKRAIL(0x2,TILE_XY(0,1)),
   210 	MKRAIL(0x2, 0,1),
   211 	MKRAIL(0xA,TILE_XY(-1,2)),
   211 	MKRAIL(0xA, -1,2),
   212 	MKRAIL(0x44,TILE_XY(0,2)),
   212 	MKRAIL(0x44, 0,2),
   213 	MKCLRRAIL(1,TILE_XY(-1,3)),
   213 	MKCLRRAIL(1, -1,3),
   214 	MKCLRRAIL(3,TILE_XY(0,-4)),
   214 	MKCLRRAIL(3, 0,-4),
   215 	MKEND
   215 	MKEND
   216 };
   216 };
   217 
   217 
   218 static const AiDefaultRailBlock _raildata_ai_15 = {
   218 static const AiDefaultRailBlock _raildata_ai_15 = {
   219 	MKHDR(2,3,2,1,2)
   219 	MKHDR(2,3,2,1,2)
   220 	MKRAIL(0x21,TILE_XY(-3,0)),
   220 	MKRAIL(0x21, -3,0),
   221 	MKRAIL(0x90,TILE_XY(-3,1)),
   221 	MKRAIL(0x90, -3,1),
   222 	MKRAIL(0x81,TILE_XY(-2,0)),
   222 	MKRAIL(0x81, -2,0),
   223 	MKRAIL(0x1,TILE_XY(-2,1)),
   223 	MKRAIL(0x1, -2,1),
   224 	MKRAIL(0x1,TILE_XY(-1,0)),
   224 	MKRAIL(0x1, -1,0),
   225 	MKRAIL(0x1,TILE_XY(-1,1)),
   225 	MKRAIL(0x1, -1,1),
   226 	MKRAIL(0x1,TILE_XY(0,0)),
   226 	MKRAIL(0x1, 0,0),
   227 	MKRAIL(0x1,TILE_XY(0,1)),
   227 	MKRAIL(0x1, 0,1),
   228 	MKRAIL(0x1,TILE_XY(1,0)),
   228 	MKRAIL(0x1, 1,0),
   229 	MKRAIL(0x41,TILE_XY(1,1)),
   229 	MKRAIL(0x41, 1,1),
   230 	MKRAIL(0x60,TILE_XY(2,0)),
   230 	MKRAIL(0x60, 2,0),
   231 	MKRAIL(0x11,TILE_XY(2,1)),
   231 	MKRAIL(0x11, 2,1),
   232 	MKCLRRAIL(2,TILE_XY(3,1)),
   232 	MKCLRRAIL(2, 3,1),
   233 	MKCLRRAIL(0,TILE_XY(-4,0)),
   233 	MKCLRRAIL(0, -4,0),
   234 	MKEND
   234 	MKEND
   235 };
   235 };
   236 
   236 
   237 static const AiDefaultRailBlock _raildata_ai_16 = {
   237 static const AiDefaultRailBlock _raildata_ai_16 = {
   238 	MKHDR(1,3,1,0,1)
   238 	MKHDR(1,3,1,0,1)
   239 	MKSTATION(0x17,TILE_XY(0,-2)),
   239 	MKSTATION(0x17, 0,-2),
   240 	MKRAIL(0x1A,TILE_XY(0,1)),
   240 	MKRAIL(0x1A, 0,1),
   241 	MKCLRRAIL(1,TILE_XY(0,2)),
   241 	MKCLRRAIL(1, 0,2),
   242 	MKDEPOT(0,TILE_XY(1,1)),
   242 	MKDEPOT(0, 1,1),
   243 	MKEND
   243 	MKEND
   244 };
   244 };
   245 
   245 
   246 static const AiDefaultRailBlock _raildata_ai_17 = {
   246 static const AiDefaultRailBlock _raildata_ai_17 = {
   247 	MKHDR(1,3,1,0,3)
   247 	MKHDR(1,3,1,0,3)
   248 	MKCLRRAIL(3,TILE_XY(0,-2)),
   248 	MKCLRRAIL(3, 0,-2),
   249 	MKRAIL(0x26,TILE_XY(0,-1)),
   249 	MKRAIL(0x26, 0,-1),
   250 	MKDEPOT(2,TILE_XY(-1,-1)),
   250 	MKDEPOT(2, -1,-1),
   251 	MKSTATION(0x17,TILE_XY(0,0)),
   251 	MKSTATION(0x17, 0,0),
   252 	MKEND
   252 	MKEND
   253 };
   253 };
   254 
   254 
   255 static const AiDefaultRailBlock _raildata_ai_18 = {
   255 static const AiDefaultRailBlock _raildata_ai_18 = {
   256 	MKHDR(1,3,1,0,0)
   256 	MKHDR(1,3,1,0,0)
   257 	MKCLRRAIL(0,TILE_XY(-2,0)),
   257 	MKCLRRAIL(0, -2,0),
   258 	MKRAIL(0x29,TILE_XY(-1,0)),
   258 	MKRAIL(0x29, -1,0),
   259 	MKDEPOT(3,TILE_XY(-1,1)),
   259 	MKDEPOT(3, -1,1),
   260 	MKSTATION(0x16,TILE_XY(0,0)),
   260 	MKSTATION(0x16, 0,0),
   261 	MKEND
   261 	MKEND
   262 };
   262 };
   263 
   263 
   264 static const AiDefaultRailBlock _raildata_ai_19 = {
   264 static const AiDefaultRailBlock _raildata_ai_19 = {
   265 	MKHDR(1,3,1,0,2)
   265 	MKHDR(1,3,1,0,2)
   266 	MKSTATION(0x16,TILE_XY(-2,0)),
   266 	MKSTATION(0x16, -2,0),
   267 	MKDEPOT(2,TILE_XY(0,-1)),
   267 	MKDEPOT(2, 0,-1),
   268 	MKRAIL(0x20,TILE_XY(1,-1)),
   268 	MKRAIL(0x20, 1,-1),
   269 	MKRAIL(0x15,TILE_XY(1,0)),
   269 	MKRAIL(0x15, 1,0),
   270 	MKCLRRAIL(2,TILE_XY(2,0)),
   270 	MKCLRRAIL(2, 2,0),
   271 	MKEND
   271 	MKEND
   272 };
   272 };
   273 
   273 
   274 static const AiDefaultRailBlock _raildata_ai_20 = {
   274 static const AiDefaultRailBlock _raildata_ai_20 = {
   275 	MKHDR(2,3,1,0,1)
   275 	MKHDR(2,3,1,0,1)
   276 	MKSTATION(0x26,TILE_XY(-2,0)),
   276 	MKSTATION(0x26, -2,0),
   277 	MKRAIL(0xC1,TILE_XY(1,0)),
   277 	MKRAIL(0xC1, 1,0),
   278 	MKRAIL(0xC1,TILE_XY(1,1)),
   278 	MKRAIL(0xC1, 1,1),
   279 	MKRAIL(0x26,TILE_XY(2,0)),
   279 	MKRAIL(0x26, 2,0),
   280 	MKRAIL(0x26,TILE_XY(2,1)),
   280 	MKRAIL(0x26, 2,1),
   281 	MKDEPOT(1,TILE_XY(2,-1)),
   281 	MKDEPOT(1, 2,-1),
   282 	MKCLRRAIL(1,TILE_XY(2,2)),
   282 	MKCLRRAIL(1, 2,2),
   283 	MKEND
   283 	MKEND
   284 };
   284 };
   285 
   285 
   286 static const AiDefaultRailBlock _raildata_ai_21 = {
   286 static const AiDefaultRailBlock _raildata_ai_21 = {
   287 	MKHDR(2,3,1,0,3)
   287 	MKHDR(2,3,1,0,3)
   288 	MKDEPOT(2,TILE_XY(-3,-1)),
   288 	MKDEPOT(2, -3,-1),
   289 	MKRAIL(0x3F,TILE_XY(-2,-1)),
   289 	MKRAIL(0x3F, -2,-1),
   290 	MKRAIL(0x10,TILE_XY(-2,0)),
   290 	MKRAIL(0x10, -2,0),
   291 	MKRAIL(0xC1,TILE_XY(-1,-1)),
   291 	MKRAIL(0xC1, -1,-1),
   292 	MKRAIL(0xC1,TILE_XY(-1,0)),
   292 	MKRAIL(0xC1, -1,0),
   293 	MKSTATION(0x26,TILE_XY(0,-1)),
   293 	MKSTATION(0x26, 0,-1),
   294 	MKCLRRAIL(3,TILE_XY(-2,-2)),
   294 	MKCLRRAIL(3, -2,-2),
   295 	MKEND
   295 	MKEND
   296 };
   296 };
   297 
   297 
   298 static const AiDefaultRailBlock _raildata_ai_22 = {
   298 static const AiDefaultRailBlock _raildata_ai_22 = {
   299 	MKHDR(2,3,1,0,0)
   299 	MKHDR(2,3,1,0,0)
   300 	MKSTATION(0x27,TILE_XY(0,-2)),
   300 	MKSTATION(0x27, 0,-2),
   301 	MKRAIL(0xC2,TILE_XY(0,1)),
   301 	MKRAIL(0xC2, 0,1),
   302 	MKRAIL(0xC2,TILE_XY(1,1)),
   302 	MKRAIL(0xC2, 1,1),
   303 	MKRAIL(0x15,TILE_XY(0,2)),
   303 	MKRAIL(0x15, 0,2),
   304 	MKRAIL(0x4,TILE_XY(1,2)),
   304 	MKRAIL(0x4, 1,2),
   305 	MKRAIL(0x15,TILE_XY(-1,2)),
   305 	MKRAIL(0x15, -1,2),
   306 	MKDEPOT(1,TILE_XY(-1,1)),
   306 	MKDEPOT(1, -1,1),
   307 	MKCLRRAIL(0,TILE_XY(-2,2)),
   307 	MKCLRRAIL(0, -2,2),
   308 	MKEND
   308 	MKEND
   309 };
   309 };
   310 
   310 
   311 static const AiDefaultRailBlock _raildata_ai_23 = {
   311 static const AiDefaultRailBlock _raildata_ai_23 = {
   312 	MKHDR(2,3,1,0,2)
   312 	MKHDR(2,3,1,0,2)
   313 	MKDEPOT(1,TILE_XY(0,-3)),
   313 	MKDEPOT(1, 0,-3),
   314 	MKRAIL(0x1A,TILE_XY(0,-2)),
   314 	MKRAIL(0x1A, 0,-2),
   315 	MKRAIL(0x29,TILE_XY(1,-2)),
   315 	MKRAIL(0x29, 1,-2),
   316 	MKRAIL(0xC2,TILE_XY(0,-1)),
   316 	MKRAIL(0xC2, 0,-1),
   317 	MKRAIL(0xC2,TILE_XY(1,-1)),
   317 	MKRAIL(0xC2, 1,-1),
   318 	MKSTATION(0x27,TILE_XY(0,0)),
   318 	MKSTATION(0x27, 0,0),
   319 	MKCLRRAIL(2,TILE_XY(2,-2)),
   319 	MKCLRRAIL(2, 2,-2),
   320 	MKEND
   320 	MKEND
   321 };
   321 };
   322 
   322 
   323 
   323 
   324 
   324 
   354 
   354 
   355 #define MKHDR(a) a,{
   355 #define MKHDR(a) a,{
   356 
   356 
   357 static const AiDefaultRoadBlock _roaddata_ai_0 = {
   357 static const AiDefaultRoadBlock _roaddata_ai_0 = {
   358 	MKHDR(0)
   358 	MKHDR(0)
   359 	MKDEPOT(2,TILE_XY(-1,1)),
   359 	MKDEPOT(2, -1,1),
   360 	MKSTATION(0x2,TILE_XY(-1,0)),
   360 	MKSTATION(0x2, -1,0),
   361 	MKRAIL(0xC,TILE_XY(0,0)),
   361 	MKRAIL(0xC, 0,0),
   362 	MKRAIL(0x9,TILE_XY(0,1)),
   362 	MKRAIL(0x9, 0,1),
   363 	MKCLRRAIL(0,TILE_XY(0,-1)),
   363 	MKCLRRAIL(0, 0,-1),
   364 	MKCLRRAIL(0,TILE_XY(1,0)),
   364 	MKCLRRAIL(0, 1,0),
   365 	MKCLRRAIL(0,TILE_XY(1,1)),
   365 	MKCLRRAIL(0, 1,1),
   366 	MKCLRRAIL(0,TILE_XY(0,2)),
   366 	MKCLRRAIL(0, 0,2),
   367 	MKEND
   367 	MKEND
   368 };
   368 };
   369 
   369 
   370 static const AiDefaultRoadBlock _roaddata_ai_1 = {
   370 static const AiDefaultRoadBlock _roaddata_ai_1 = {
   371 	MKHDR(0)
   371 	MKHDR(0)
   372 	MKDEPOT(1,TILE_XY(0,-1)),
   372 	MKDEPOT(1, 0,-1),
   373 	MKSTATION(0x1,TILE_XY(1,-1)),
   373 	MKSTATION(0x1, 1,-1),
   374 	MKRAIL(0x3,TILE_XY(0,0)),
   374 	MKRAIL(0x3, 0,0),
   375 	MKRAIL(0x9,TILE_XY(1,0)),
   375 	MKRAIL(0x9, 1,0),
   376 	MKCLRRAIL(0,TILE_XY(-1,0)),
   376 	MKCLRRAIL(0, -1,0),
   377 	MKCLRRAIL(0,TILE_XY(0,1)),
   377 	MKCLRRAIL(0, 0,1),
   378 	MKCLRRAIL(0,TILE_XY(1,1)),
   378 	MKCLRRAIL(0, 1,1),
   379 	MKCLRRAIL(0,TILE_XY(2,0)),
   379 	MKCLRRAIL(0, 2,0),
   380 	MKEND
   380 	MKEND
   381 };
   381 };
   382 
   382 
   383 static const AiDefaultRoadBlock _roaddata_ai_2 = {
   383 static const AiDefaultRoadBlock _roaddata_ai_2 = {
   384 	MKHDR(0)
   384 	MKHDR(0)
   385 	MKDEPOT(3,TILE_XY(1,1)),
   385 	MKDEPOT(3, 1,1),
   386 	MKSTATION(0x3,TILE_XY(0,1)),
   386 	MKSTATION(0x3, 0,1),
   387 	MKRAIL(0x6,TILE_XY(0,0)),
   387 	MKRAIL(0x6, 0,0),
   388 	MKRAIL(0xC,TILE_XY(1,0)),
   388 	MKRAIL(0xC, 1,0),
   389 	MKCLRRAIL(0,TILE_XY(-1,0)),
   389 	MKCLRRAIL(0, -1,0),
   390 	MKCLRRAIL(0,TILE_XY(0,-1)),
   390 	MKCLRRAIL(0, 0,-1),
   391 	MKCLRRAIL(0,TILE_XY(1,-1)),
   391 	MKCLRRAIL(0, 1,-1),
   392 	MKCLRRAIL(0,TILE_XY(2,0)),
   392 	MKCLRRAIL(0, 2,0),
   393 	MKEND
   393 	MKEND
   394 };
   394 };
   395 
   395 
   396 static const AiDefaultRoadBlock _roaddata_ai_3 = {
   396 static const AiDefaultRoadBlock _roaddata_ai_3 = {
   397 	MKHDR(0)
   397 	MKHDR(0)
   398 	MKDEPOT(0,TILE_XY(1,0)),
   398 	MKDEPOT(0, 1,0),
   399 	MKSTATION(0x0,TILE_XY(1,1)),
   399 	MKSTATION(0x0, 1,1),
   400 	MKRAIL(0x6,TILE_XY(0,0)),
   400 	MKRAIL(0x6, 0,0),
   401 	MKRAIL(0x3,TILE_XY(0,1)),
   401 	MKRAIL(0x3, 0,1),
   402 	MKCLRRAIL(0,TILE_XY(0,-1)),
   402 	MKCLRRAIL(0, 0,-1),
   403 	MKCLRRAIL(0,TILE_XY(-1,0)),
   403 	MKCLRRAIL(0, -1,0),
   404 	MKCLRRAIL(0,TILE_XY(-1,1)),
   404 	MKCLRRAIL(0, -1,1),
   405 	MKCLRRAIL(0,TILE_XY(0,2)),
   405 	MKCLRRAIL(0, 0,2),
   406 	MKEND
   406 	MKEND
   407 };
   407 };
   408 
   408 
   409 static const AiDefaultRoadBlock _roaddata_ai_4 = {
   409 static const AiDefaultRoadBlock _roaddata_ai_4 = {
   410 	MKHDR(1)
   410 	MKHDR(1)
   411 	MKSTATION(0x2,TILE_XY(-1,0)),
   411 	MKSTATION(0x2, -1,0),
   412 	MKRAIL(0x8,TILE_XY(0,0)),
   412 	MKRAIL(0x8, 0,0),
   413 	MKCLRRAIL(0,TILE_XY(0,-1)),
   413 	MKCLRRAIL(0, 0,-1),
   414 	MKCLRRAIL(0,TILE_XY(1,0)),
   414 	MKCLRRAIL(0, 1,0),
   415 	MKCLRRAIL(0,TILE_XY(0,1)),
   415 	MKCLRRAIL(0, 0,1),
   416 	MKEND
   416 	MKEND
   417 };
   417 };
   418 
   418 
   419 static const AiDefaultRoadBlock _roaddata_ai_5 = {
   419 static const AiDefaultRoadBlock _roaddata_ai_5 = {
   420 	MKHDR(1)
   420 	MKHDR(1)
   421 	MKSTATION(0x3,TILE_XY(0,1)),
   421 	MKSTATION(0x3, 0,1),
   422 	MKRAIL(0x4,TILE_XY(0,0)),
   422 	MKRAIL(0x4, 0,0),
   423 	MKCLRRAIL(0,TILE_XY(-1,0)),
   423 	MKCLRRAIL(0, -1,0),
   424 	MKCLRRAIL(0,TILE_XY(0,-1)),
   424 	MKCLRRAIL(0, 0,-1),
   425 	MKCLRRAIL(0,TILE_XY(1,0)),
   425 	MKCLRRAIL(0, 1,0),
   426 	MKEND
   426 	MKEND
   427 };
   427 };
   428 
   428 
   429 static const AiDefaultRoadBlock _roaddata_ai_6 = {
   429 static const AiDefaultRoadBlock _roaddata_ai_6 = {
   430 	MKHDR(1)
   430 	MKHDR(1)
   431 	MKSTATION(0x0,TILE_XY(1,1)),
   431 	MKSTATION(0x0, 1,1),
   432 	MKRAIL(0x2,TILE_XY(0,1)),
   432 	MKRAIL(0x2, 0,1),
   433 	MKCLRRAIL(0,TILE_XY(0,0)),
   433 	MKCLRRAIL(0, 0,0),
   434 	MKCLRRAIL(0,TILE_XY(-1,0)),
   434 	MKCLRRAIL(0, -1,0),
   435 	MKCLRRAIL(0,TILE_XY(0,2)),
   435 	MKCLRRAIL(0, 0,2),
   436 	MKEND
   436 	MKEND
   437 };
   437 };
   438 
   438 
   439 static const AiDefaultRoadBlock _roaddata_ai_7 = {
   439 static const AiDefaultRoadBlock _roaddata_ai_7 = {
   440 	MKHDR(1)
   440 	MKHDR(1)
   441 	MKSTATION(0x1,TILE_XY(1,-1)),
   441 	MKSTATION(0x1, 1,-1),
   442 	MKRAIL(0x1,TILE_XY(1,0)),
   442 	MKRAIL(0x1, 1,0),
   443 	MKCLRRAIL(0,TILE_XY(0,0)),
   443 	MKCLRRAIL(0, 0,0),
   444 	MKCLRRAIL(0,TILE_XY(1,1)),
   444 	MKCLRRAIL(0, 1,1),
   445 	MKCLRRAIL(0,TILE_XY(2,0)),
   445 	MKCLRRAIL(0, 2,0),
   446 	MKEND
   446 	MKEND
   447 };
   447 };
   448 
   448 
   449 
   449 
   450 static const AiDefaultRoadBlock * const _road_default_block_data[] = {
   450 static const AiDefaultRoadBlock * const _road_default_block_data[] = {
   457 	&_roaddata_ai_6,
   457 	&_roaddata_ai_6,
   458 	&_roaddata_ai_7,
   458 	&_roaddata_ai_7,
   459 	NULL
   459 	NULL
   460 };
   460 };
   461 
   461 
   462 #define MKAIR(a,b) {0,a,b}
   462 #define MKAIR(a, b, c) {0, a, {b, c}}
   463 
   463 
   464 static const AiDefaultBlockData _airportdata_ai_0[] = {
   464 static const AiDefaultBlockData _airportdata_ai_0[] = {
   465 	MKAIR(1, 0),
   465 	MKAIR(1, 0, 0),
   466 	{1, 0, 0},
   466 	{1, 0, {0, 0}},
   467 };
   467 };
   468 
   468 
   469 static const AiDefaultBlockData _airportdata_ai_1[] = {
   469 static const AiDefaultBlockData _airportdata_ai_1[] = {
   470 	MKAIR(0, 0),
   470 	MKAIR(0, 0, 0),
   471 	{1, 0, 0}
   471 	{1, 0, {0, 0}}
   472 };
   472 };
   473 
   473 
   474 static const AiDefaultBlockData * const _airport_default_block_data[] = {
   474 static const AiDefaultBlockData * const _airport_default_block_data[] = {
   475 	_airportdata_ai_0, // city airport
   475 	_airportdata_ai_0, // city airport
   476 	_airportdata_ai_1, // country airport
   476 	_airportdata_ai_1, // country airport