src/table/ai_rail.h
changeset 5587 167d9a91ef02
parent 5475 2e6990a8c7c4
child 6248 e4a2ed7e5613
equal deleted inserted replaced
5586:2d4126d81ebb 5587:167d9a91ef02
    10 	byte p0;
    10 	byte p0;
    11 	byte p1;
    11 	byte p1;
    12 	byte p2;
    12 	byte p2;
    13 	byte p3;
    13 	byte p3;
    14 	byte dir;
    14 	byte dir;
    15 	AiDefaultBlockData data[VARARRAY_SIZE];
    15 	const AiDefaultBlockData *data;
    16 } AiDefaultRailBlock;
    16 } AiDefaultRailBlock;
    17 
    17 
    18 typedef struct {
    18 typedef struct {
    19 	byte dir;
    19 	byte dir;
    20 	AiDefaultBlockData data[VARARRAY_SIZE];
    20 	const AiDefaultBlockData *data;
    21 } AiDefaultRoadBlock;
    21 } AiDefaultRoadBlock;
    22 
    22 
    23 
    23 
    24 #define MKHDR(a,b,c,d,e) a,b,c,d,e,{
    24 #define MKHDR(a,b,c,d,e) a,b,c,d,e,
    25 #define MKDEPOT(a, b, c)   {0, a, {b, c}}
    25 #define MKDEPOT(a, b, c)   {0, a, {b, c}}
    26 #define MKSTATION(a, b, c) {1, a, {b, c}}
    26 #define MKSTATION(a, b, c) {1, a, {b, c}}
    27 #define MKRAIL(a, b, c)    {2, a, {b, c}}
    27 #define MKRAIL(a, b, c)    {2, a, {b, c}}
    28 #define MKCLRRAIL(a, b, c) {3, a, {b, c}}
    28 #define MKCLRRAIL(a, b, c) {3, a, {b, c}}
    29 #define MKEND              {4, 0, {0, 0}}}
    29 #define MKEND              {4, 0, {0, 0}}
    30 
    30 
    31 static const AiDefaultRailBlock _raildata_ai_0 = {
    31 static const AiDefaultBlockData _raildata_ai_0_data[] = {
    32 	MKHDR(1, 2, 1, 0, 1)
       
    33 	MKDEPOT(2, -1, 1),
    32 	MKDEPOT(2, -1, 1),
    34 	MKSTATION(0x15, 0, -1),
    33 	MKSTATION(0x15, 0, -1),
    35 	MKRAIL(0x26, 0, 1),
    34 	MKRAIL(0x26, 0, 1),
    36 	MKCLRRAIL(1, 0, 2),
    35 	MKCLRRAIL(1, 0, 2),
    37 	MKEND
    36 	MKEND
    38 };
    37 };
    39 
    38 
    40 static const AiDefaultRailBlock _raildata_ai_1 = {
    39 static const AiDefaultRailBlock _raildata_ai_0 = {
    41 	MKHDR(1, 2, 1, 0, 3)
    40 	1, 2, 1, 0, 1, _raildata_ai_0_data
       
    41 };
       
    42 
       
    43 static const AiDefaultBlockData _raildata_ai_1_data[] = {
    42 	MKDEPOT(2, -1, -1),
    44 	MKDEPOT(2, -1, -1),
    43 	MKRAIL(0x26, 0, -1),
    45 	MKRAIL(0x26, 0, -1),
    44 	MKSTATION(0x15, 0, 0),
    46 	MKSTATION(0x15, 0, 0),
    45 	MKCLRRAIL(3, 0, -2),
    47 	MKCLRRAIL(3, 0, -2),
    46 	MKEND
    48 	MKEND
    47 };
    49 };
    48 
    50 
    49 static const AiDefaultRailBlock _raildata_ai_2 = {
    51 static const AiDefaultRailBlock _raildata_ai_1 = {
    50 	MKHDR(1, 2, 1, 0, 0)
    52 	1, 2, 1, 0, 3, _raildata_ai_1_data
       
    53 };
       
    54 
       
    55 static const AiDefaultBlockData _raildata_ai_2_data[] = {
    51 	MKDEPOT(1, -1, -1),
    56 	MKDEPOT(1, -1, -1),
    52 	MKRAIL(0x15, -1, 0),
    57 	MKRAIL(0x15, -1, 0),
    53 	MKSTATION(0x14, 0, 0),
    58 	MKSTATION(0x14, 0, 0),
    54 	MKCLRRAIL(0, -2, 0),
    59 	MKCLRRAIL(0, -2, 0),
    55 	MKEND
    60 	MKEND
    56 };
    61 };
    57 
    62 
    58 static const AiDefaultRailBlock _raildata_ai_3 = {
    63 static const AiDefaultRailBlock _raildata_ai_2 = {
    59 	MKHDR(1, 2, 1, 0, 2)
    64 	1, 2, 1, 0, 0, _raildata_ai_2_data
       
    65 };
       
    66 
       
    67 static const AiDefaultBlockData _raildata_ai_3_data[] = {
    60 	MKDEPOT(1, 1, -1),
    68 	MKDEPOT(1, 1, -1),
    61 	MKRAIL(0x15, 1, 0),
    69 	MKRAIL(0x15, 1, 0),
    62 	MKSTATION(0x14, -1, 0),
    70 	MKSTATION(0x14, -1, 0),
    63 	MKCLRRAIL(2, 2, 0),
    71 	MKCLRRAIL(2, 2, 0),
    64 	MKEND
    72 	MKEND
    65 };
    73 };
    66 
    74 
    67 static const AiDefaultRailBlock _raildata_ai_4 = {
    75 static const AiDefaultRailBlock _raildata_ai_3 = {
    68 	MKHDR(1, 2, 2, 0, 255)
    76 	1, 2, 1, 0, 2, _raildata_ai_3_data
       
    77 };
       
    78 
       
    79 static const AiDefaultBlockData _raildata_ai_4_data[] = {
    69 	MKSTATION(0x15, 0, 0),
    80 	MKSTATION(0x15, 0, 0),
    70 	MKCLRRAIL(3, 0, -1),
    81 	MKCLRRAIL(3, 0, -1),
    71 	MKCLRRAIL(1, 0, 2),
    82 	MKCLRRAIL(1, 0, 2),
    72 	MKEND
    83 	MKEND
    73 };
    84 };
    74 
    85 
    75 static const AiDefaultRailBlock _raildata_ai_5 = {
    86 static const AiDefaultRailBlock _raildata_ai_4 = {
    76 	MKHDR(1, 2, 2, 0, 255)
    87 	1, 2, 2, 0, 255, _raildata_ai_4_data
       
    88 };
       
    89 
       
    90 static const AiDefaultBlockData _raildata_ai_5_data[] = {
    77 	MKSTATION(0x14, 0, 0),
    91 	MKSTATION(0x14, 0, 0),
    78 	MKCLRRAIL(0, -1, 0),
    92 	MKCLRRAIL(0, -1, 0),
    79 	MKCLRRAIL(2, 2, 0),
    93 	MKCLRRAIL(2, 2, 0),
    80 	MKEND
    94 	MKEND
    81 };
    95 };
    82 
    96 
    83 static const AiDefaultRailBlock _raildata_ai_6 = {
    97 static const AiDefaultRailBlock _raildata_ai_5 = {
    84 	MKHDR(2, 3, 1, 0, 1)
    98 	1, 2, 2, 0, 255, _raildata_ai_5_data
       
    99 };
       
   100 
       
   101 static const AiDefaultBlockData _raildata_ai_6_data[] = {
    85 	MKSTATION(0x27, 0, -2),
   102 	MKSTATION(0x27, 0, -2),
    86 	MKRAIL(0xC2, 0, 1),
   103 	MKRAIL(0xC2, 0, 1),
    87 	MKRAIL(0xC2, 1, 1),
   104 	MKRAIL(0xC2, 1, 1),
    88 	MKRAIL(0x1A, 0, 2),
   105 	MKRAIL(0x1A, 0, 2),
    89 	MKRAIL(0x26, 1, 2),
   106 	MKRAIL(0x26, 1, 2),
    90 	MKDEPOT(3, 1, 3),
   107 	MKDEPOT(3, 1, 3),
    91 	MKCLRRAIL(1, 0, 3),
   108 	MKCLRRAIL(1, 0, 3),
    92 	MKEND
   109 	MKEND
    93 };
   110 };
    94 
   111 
    95 static const AiDefaultRailBlock _raildata_ai_7 = {
   112 static const AiDefaultRailBlock _raildata_ai_6 = {
    96 	MKHDR(2, 3, 1, 0, 3)
   113 	2, 3, 1, 0, 1, _raildata_ai_6_data
       
   114 };
       
   115 
       
   116 static const AiDefaultBlockData _raildata_ai_7_data[] = {
    97 	MKDEPOT(1, 0, -3),
   117 	MKDEPOT(1, 0, -3),
    98 	MKRAIL(0x1A, 0, -2),
   118 	MKRAIL(0x1A, 0, -2),
    99 	MKRAIL(0x26, 1, -2),
   119 	MKRAIL(0x26, 1, -2),
   100 	MKRAIL(0xC2, 0, -1),
   120 	MKRAIL(0xC2, 0, -1),
   101 	MKRAIL(0xC2, 1, -1),
   121 	MKRAIL(0xC2, 1, -1),
   102 	MKSTATION(0x27, 0, 0),
   122 	MKSTATION(0x27, 0, 0),
   103 	MKCLRRAIL(3, 1, -3),
   123 	MKCLRRAIL(3, 1, -3),
   104 	MKEND
   124 	MKEND
   105 };
   125 };
   106 
   126 
   107 static const AiDefaultRailBlock _raildata_ai_8 = {
   127 static const AiDefaultRailBlock _raildata_ai_7 = {
   108 	MKHDR(2, 3, 1, 0, 2)
   128 	2, 3, 1, 0, 3, _raildata_ai_7_data
       
   129 };
       
   130 
       
   131 static const AiDefaultBlockData _raildata_ai_8_data[] = {
   109 	MKSTATION(0x26, -2, 0),
   132 	MKSTATION(0x26, -2, 0),
   110 	MKRAIL(0xC1, 1, 0),
   133 	MKRAIL(0xC1, 1, 0),
   111 	MKRAIL(0xC1, 1, 1),
   134 	MKRAIL(0xC1, 1, 1),
   112 	MKRAIL(0x29, 2, 0),
   135 	MKRAIL(0x29, 2, 0),
   113 	MKRAIL(0x15, 2, 1),
   136 	MKRAIL(0x15, 2, 1),
   114 	MKDEPOT(0, 3, 0),
   137 	MKDEPOT(0, 3, 0),
   115 	MKCLRRAIL(2, 3, 1),
   138 	MKCLRRAIL(2, 3, 1),
   116 	MKEND
   139 	MKEND
   117 };
   140 };
   118 
   141 
   119 static const AiDefaultRailBlock _raildata_ai_9 = {
   142 static const AiDefaultRailBlock _raildata_ai_8 = {
   120 	MKHDR(2, 3, 1, 0, 0)
   143 	2, 3, 1, 0, 2, _raildata_ai_8_data
       
   144 };
       
   145 
       
   146 static const AiDefaultBlockData _raildata_ai_9_data[] = {
   121 	MKDEPOT(2, -3, -1),
   147 	MKDEPOT(2, -3, -1),
   122 	MKRAIL(0x29, -2, -1),
   148 	MKRAIL(0x29, -2, -1),
   123 	MKRAIL(0x15, -2, 0),
   149 	MKRAIL(0x15, -2, 0),
   124 	MKRAIL(0xC1, -1, -1),
   150 	MKRAIL(0xC1, -1, -1),
   125 	MKRAIL(0xC1, -1, 0),
   151 	MKRAIL(0xC1, -1, 0),
   126 	MKSTATION(0x26, 0, -1),
   152 	MKSTATION(0x26, 0, -1),
   127 	MKCLRRAIL(0, -3, 0),
   153 	MKCLRRAIL(0, -3, 0),
   128 	MKEND
   154 	MKEND
   129 };
   155 };
   130 
   156 
   131 static const AiDefaultRailBlock _raildata_ai_10 = {
   157 static const AiDefaultRailBlock _raildata_ai_9 = {
   132 	MKHDR(2, 3, 2, 0, 255)
   158 	2, 3, 1, 0, 0, _raildata_ai_9_data
       
   159 };
       
   160 
       
   161 static const AiDefaultBlockData _raildata_ai_10_data[] = {
   133 	MKRAIL(0x1A, 0, -3),
   162 	MKRAIL(0x1A, 0, -3),
   134 	MKRAIL(0x20, 1, -3),
   163 	MKRAIL(0x20, 1, -3),
   135 	MKRAIL(0xC2, 0, -2),
   164 	MKRAIL(0xC2, 0, -2),
   136 	MKRAIL(0xC2, 1, -2),
   165 	MKRAIL(0xC2, 1, -2),
   137 	MKSTATION(0x27, 0, -1),
   166 	MKSTATION(0x27, 0, -1),
   142 	MKCLRRAIL(3, 0, -4),
   171 	MKCLRRAIL(3, 0, -4),
   143 	MKCLRRAIL(1, 0, 4),
   172 	MKCLRRAIL(1, 0, 4),
   144 	MKEND
   173 	MKEND
   145 };
   174 };
   146 
   175 
   147 static const AiDefaultRailBlock _raildata_ai_11 = {
   176 static const AiDefaultRailBlock _raildata_ai_10 = {
   148 	MKHDR(2, 3, 2, 0, 255)
   177 	2, 3, 2, 0, 255, _raildata_ai_10_data
       
   178 };
       
   179 
       
   180 static const AiDefaultBlockData _raildata_ai_11_data[] = {
   149 	MKRAIL(0x29, -3, 0),
   181 	MKRAIL(0x29, -3, 0),
   150 	MKRAIL(0x10, -3, 1),
   182 	MKRAIL(0x10, -3, 1),
   151 	MKRAIL(0xC1, -2, 0),
   183 	MKRAIL(0xC1, -2, 0),
   152 	MKRAIL(0xC1, -2, 1),
   184 	MKRAIL(0xC1, -2, 1),
   153 	MKSTATION(0x26, -1, 0),
   185 	MKSTATION(0x26, -1, 0),
   158 	MKCLRRAIL(0, -4, 0),
   190 	MKCLRRAIL(0, -4, 0),
   159 	MKCLRRAIL(2, 4, 0),
   191 	MKCLRRAIL(2, 4, 0),
   160 	MKEND
   192 	MKEND
   161 };
   193 };
   162 
   194 
   163 static const AiDefaultRailBlock _raildata_ai_12 = {
   195 static const AiDefaultRailBlock _raildata_ai_11 = {
   164 	MKHDR(2, 3, 2, 1, 3)
   196 	2, 3, 2, 0, 255, _raildata_ai_11_data
       
   197 };
       
   198 
       
   199 static const AiDefaultBlockData _raildata_ai_12_data[] = {
   165 	MKRAIL(0x88, -1, -3),
   200 	MKRAIL(0x88, -1, -3),
   166 	MKRAIL(0x6, 0, -3),
   201 	MKRAIL(0x6, 0, -3),
   167 	MKRAIL(0x2, -1, -2),
   202 	MKRAIL(0x2, -1, -2),
   168 	MKRAIL(0x42, 0, -2),
   203 	MKRAIL(0x42, 0, -2),
   169 	MKRAIL(0x2, -1, -1),
   204 	MKRAIL(0x2, -1, -1),
   177 	MKCLRRAIL(3, 0, -4),
   212 	MKCLRRAIL(3, 0, -4),
   178 	MKCLRRAIL(1, -1, 3),
   213 	MKCLRRAIL(1, -1, 3),
   179 	MKEND
   214 	MKEND
   180 };
   215 };
   181 
   216 
   182 static const AiDefaultRailBlock _raildata_ai_13 = {
   217 static const AiDefaultRailBlock _raildata_ai_12 = {
   183 	MKHDR(2, 3, 2, 1, 0)
   218 	2, 3, 2, 1, 3, _raildata_ai_12_data
       
   219 };
       
   220 
       
   221 static const AiDefaultBlockData _raildata_ai_13_data[] = {
   184 	MKRAIL(0x21, -3, 0),
   222 	MKRAIL(0x21, -3, 0),
   185 	MKRAIL(0x50, -3, 1),
   223 	MKRAIL(0x50, -3, 1),
   186 	MKRAIL(0x81, -2, 0),
   224 	MKRAIL(0x81, -2, 0),
   187 	MKRAIL(0x1, -2, 1),
   225 	MKRAIL(0x1, -2, 1),
   188 	MKRAIL(0x1, -1, 0),
   226 	MKRAIL(0x1, -1, 0),
   196 	MKCLRRAIL(0, -4, 0),
   234 	MKCLRRAIL(0, -4, 0),
   197 	MKCLRRAIL(2, 3, 1),
   235 	MKCLRRAIL(2, 3, 1),
   198 	MKEND
   236 	MKEND
   199 };
   237 };
   200 
   238 
   201 static const AiDefaultRailBlock _raildata_ai_14 = {
   239 static const AiDefaultRailBlock _raildata_ai_13 = {
   202 	MKHDR(2, 3, 2, 1, 1)
   240 	2, 3, 2, 1, 0, _raildata_ai_13_data
       
   241 };
       
   242 
       
   243 static const AiDefaultBlockData _raildata_ai_14_data[] = {
   203 	MKRAIL(0x88, -1, -3),
   244 	MKRAIL(0x88, -1, -3),
   204 	MKRAIL(0x6, 0, -3),
   245 	MKRAIL(0x6, 0, -3),
   205 	MKRAIL(0x2, -1, -2),
   246 	MKRAIL(0x2, -1, -2),
   206 	MKRAIL(0x42, 0, -2),
   247 	MKRAIL(0x42, 0, -2),
   207 	MKRAIL(0x2, -1, -1),
   248 	MKRAIL(0x2, -1, -1),
   215 	MKCLRRAIL(1, -1, 3),
   256 	MKCLRRAIL(1, -1, 3),
   216 	MKCLRRAIL(3, 0, -4),
   257 	MKCLRRAIL(3, 0, -4),
   217 	MKEND
   258 	MKEND
   218 };
   259 };
   219 
   260 
   220 static const AiDefaultRailBlock _raildata_ai_15 = {
   261 static const AiDefaultRailBlock _raildata_ai_14 = {
   221 	MKHDR(2, 3, 2, 1, 2)
   262 	2, 3, 2, 1, 1, _raildata_ai_14_data
       
   263 };
       
   264 
       
   265 static const AiDefaultBlockData _raildata_ai_15_data[] = {
   222 	MKRAIL(0x21, -3, 0),
   266 	MKRAIL(0x21, -3, 0),
   223 	MKRAIL(0x50, -3, 1),
   267 	MKRAIL(0x50, -3, 1),
   224 	MKRAIL(0x81, -2, 0),
   268 	MKRAIL(0x81, -2, 0),
   225 	MKRAIL(0x1, -2, 1),
   269 	MKRAIL(0x1, -2, 1),
   226 	MKRAIL(0x1, -1, 0),
   270 	MKRAIL(0x1, -1, 0),
   234 	MKCLRRAIL(2, 3, 1),
   278 	MKCLRRAIL(2, 3, 1),
   235 	MKCLRRAIL(0, -4, 0),
   279 	MKCLRRAIL(0, -4, 0),
   236 	MKEND
   280 	MKEND
   237 };
   281 };
   238 
   282 
   239 static const AiDefaultRailBlock _raildata_ai_16 = {
   283 static const AiDefaultRailBlock _raildata_ai_15 = {
   240 	MKHDR(1, 3, 1, 0, 1)
   284 	2, 3, 2, 1, 2, _raildata_ai_15_data
       
   285 };
       
   286 
       
   287 static const AiDefaultBlockData _raildata_ai_16_data[] = {
   241 	MKSTATION(0x17, 0, -2),
   288 	MKSTATION(0x17, 0, -2),
   242 	MKRAIL(0x1A, 0, 1),
   289 	MKRAIL(0x1A, 0, 1),
   243 	MKCLRRAIL(1, 0, 2),
   290 	MKCLRRAIL(1, 0, 2),
   244 	MKDEPOT(0, 1, 1),
   291 	MKDEPOT(0, 1, 1),
   245 	MKEND
   292 	MKEND
   246 };
   293 };
   247 
   294 
   248 static const AiDefaultRailBlock _raildata_ai_17 = {
   295 static const AiDefaultRailBlock _raildata_ai_16 = {
   249 	MKHDR(1, 3, 1, 0, 3)
   296 	1, 3, 1, 0, 1, _raildata_ai_16_data
       
   297 };
       
   298 
       
   299 static const AiDefaultBlockData _raildata_ai_17_data[] = {
   250 	MKCLRRAIL(3, 0, -2),
   300 	MKCLRRAIL(3, 0, -2),
   251 	MKRAIL(0x26, 0, -1),
   301 	MKRAIL(0x26, 0, -1),
   252 	MKDEPOT(2, -1, -1),
   302 	MKDEPOT(2, -1, -1),
   253 	MKSTATION(0x17, 0, 0),
   303 	MKSTATION(0x17, 0, 0),
   254 	MKEND
   304 	MKEND
   255 };
   305 };
   256 
   306 
   257 static const AiDefaultRailBlock _raildata_ai_18 = {
   307 static const AiDefaultRailBlock _raildata_ai_17 = {
   258 	MKHDR(1, 3, 1, 0, 0)
   308 	1, 3, 1, 0, 3, _raildata_ai_17_data
       
   309 };
       
   310 
       
   311 static const AiDefaultBlockData _raildata_ai_18_data[] = {
   259 	MKCLRRAIL(0, -2, 0),
   312 	MKCLRRAIL(0, -2, 0),
   260 	MKRAIL(0x29, -1, 0),
   313 	MKRAIL(0x29, -1, 0),
   261 	MKDEPOT(3, -1, 1),
   314 	MKDEPOT(3, -1, 1),
   262 	MKSTATION(0x16, 0, 0),
   315 	MKSTATION(0x16, 0, 0),
   263 	MKEND
   316 	MKEND
   264 };
   317 };
   265 
   318 
   266 static const AiDefaultRailBlock _raildata_ai_19 = {
   319 static const AiDefaultRailBlock _raildata_ai_18 = {
   267 	MKHDR(1, 3, 1, 0, 2)
   320 	1, 3, 1, 0, 0, _raildata_ai_18_data
       
   321 };
       
   322 
       
   323 static const AiDefaultBlockData _raildata_ai_19_data[] = {
   268 	MKSTATION(0x16, -2, 0),
   324 	MKSTATION(0x16, -2, 0),
   269 	MKDEPOT(2, 0, -1),
   325 	MKDEPOT(2, 0, -1),
   270 	MKRAIL(0x20, 1, -1),
   326 	MKRAIL(0x20, 1, -1),
   271 	MKRAIL(0x15, 1, 0),
   327 	MKRAIL(0x15, 1, 0),
   272 	MKCLRRAIL(2, 2, 0),
   328 	MKCLRRAIL(2, 2, 0),
   273 	MKEND
   329 	MKEND
   274 };
   330 };
   275 
   331 
   276 static const AiDefaultRailBlock _raildata_ai_20 = {
   332 static const AiDefaultRailBlock _raildata_ai_19 = {
   277 	MKHDR(2, 3, 1, 0, 1)
   333 	1, 3, 1, 0, 2, _raildata_ai_19_data
       
   334 };
       
   335 
       
   336 static const AiDefaultBlockData _raildata_ai_20_data[] = {
   278 	MKSTATION(0x26, -2, 0),
   337 	MKSTATION(0x26, -2, 0),
   279 	MKRAIL(0xC1, 1, 0),
   338 	MKRAIL(0xC1, 1, 0),
   280 	MKRAIL(0xC1, 1, 1),
   339 	MKRAIL(0xC1, 1, 1),
   281 	MKRAIL(0x26, 2, 0),
   340 	MKRAIL(0x26, 2, 0),
   282 	MKRAIL(0x26, 2, 1),
   341 	MKRAIL(0x26, 2, 1),
   283 	MKDEPOT(1, 2, -1),
   342 	MKDEPOT(1, 2, -1),
   284 	MKCLRRAIL(1, 2, 2),
   343 	MKCLRRAIL(1, 2, 2),
   285 	MKEND
   344 	MKEND
   286 };
   345 };
   287 
   346 
   288 static const AiDefaultRailBlock _raildata_ai_21 = {
   347 static const AiDefaultRailBlock _raildata_ai_20 = {
   289 	MKHDR(2, 3, 1, 0, 3)
   348 	2, 3, 1, 0, 1, _raildata_ai_20_data
       
   349 };
       
   350 
       
   351 static const AiDefaultBlockData _raildata_ai_21_data[] = {
   290 	MKDEPOT(2, -3, -1),
   352 	MKDEPOT(2, -3, -1),
   291 	MKRAIL(0x3F, -2, -1),
   353 	MKRAIL(0x3F, -2, -1),
   292 	MKRAIL(0x10, -2, 0),
   354 	MKRAIL(0x10, -2, 0),
   293 	MKRAIL(0xC1, -1, -1),
   355 	MKRAIL(0xC1, -1, -1),
   294 	MKRAIL(0xC1, -1, 0),
   356 	MKRAIL(0xC1, -1, 0),
   295 	MKSTATION(0x26, 0, -1),
   357 	MKSTATION(0x26, 0, -1),
   296 	MKCLRRAIL(3, -2, -2),
   358 	MKCLRRAIL(3, -2, -2),
   297 	MKEND
   359 	MKEND
   298 };
   360 };
   299 
   361 
   300 static const AiDefaultRailBlock _raildata_ai_22 = {
   362 static const AiDefaultRailBlock _raildata_ai_21 = {
   301 	MKHDR(2, 3, 1, 0, 0)
   363 	2, 3, 1, 0, 3, _raildata_ai_21_data
       
   364 };
       
   365 
       
   366 static const AiDefaultBlockData _raildata_ai_22_data[] = {
   302 	MKSTATION(0x27, 0, -2),
   367 	MKSTATION(0x27, 0, -2),
   303 	MKRAIL(0xC2, 0, 1),
   368 	MKRAIL(0xC2, 0, 1),
   304 	MKRAIL(0xC2, 1, 1),
   369 	MKRAIL(0xC2, 1, 1),
   305 	MKRAIL(0x15, 0, 2),
   370 	MKRAIL(0x15, 0, 2),
   306 	MKRAIL(0x4, 1, 2),
   371 	MKRAIL(0x4, 1, 2),
   308 	MKDEPOT(1, -1, 1),
   373 	MKDEPOT(1, -1, 1),
   309 	MKCLRRAIL(0, -2, 2),
   374 	MKCLRRAIL(0, -2, 2),
   310 	MKEND
   375 	MKEND
   311 };
   376 };
   312 
   377 
   313 static const AiDefaultRailBlock _raildata_ai_23 = {
   378 static const AiDefaultRailBlock _raildata_ai_22 = {
   314 	MKHDR(2, 3, 1, 0, 2)
   379 	2, 3, 1, 0, 0, _raildata_ai_22_data
       
   380 };
       
   381 
       
   382 static const AiDefaultBlockData _raildata_ai_23_data[] = {
   315 	MKDEPOT(1, 0, -3),
   383 	MKDEPOT(1, 0, -3),
   316 	MKRAIL(0x1A, 0, -2),
   384 	MKRAIL(0x1A, 0, -2),
   317 	MKRAIL(0x29, 1, -2),
   385 	MKRAIL(0x29, 1, -2),
   318 	MKRAIL(0xC2, 0, -1),
   386 	MKRAIL(0xC2, 0, -1),
   319 	MKRAIL(0xC2, 1, -1),
   387 	MKRAIL(0xC2, 1, -1),
   320 	MKSTATION(0x27, 0, 0),
   388 	MKSTATION(0x27, 0, 0),
   321 	MKCLRRAIL(2, 2, -2),
   389 	MKCLRRAIL(2, 2, -2),
   322 	MKEND
   390 	MKEND
   323 };
   391 };
   324 
   392 
   325 
   393 static const AiDefaultRailBlock _raildata_ai_23 = {
       
   394 	2, 3, 1, 0, 2, _raildata_ai_23_data
       
   395 };
   326 
   396 
   327 static const AiDefaultRailBlock * const _default_rail_track_data[] = {
   397 static const AiDefaultRailBlock * const _default_rail_track_data[] = {
   328 	&_raildata_ai_0,
   398 	&_raildata_ai_0,
   329 	&_raildata_ai_1,
   399 	&_raildata_ai_1,
   330 	&_raildata_ai_2,
   400 	&_raildata_ai_2,
   354 
   424 
   355 #undef MKHDR
   425 #undef MKHDR
   356 
   426 
   357 #define MKHDR(a) a,{
   427 #define MKHDR(a) a,{
   358 
   428 
   359 static const AiDefaultRoadBlock _roaddata_ai_0 = {
   429 static const AiDefaultBlockData _roaddata_ai_0_data[] = {
   360 	MKHDR(0)
       
   361 	MKDEPOT(2, -1,1),
   430 	MKDEPOT(2, -1,1),
   362 	MKSTATION(0x2, -1,0),
   431 	MKSTATION(0x2, -1,0),
   363 	MKRAIL(0xC, 0,0),
   432 	MKRAIL(0xC, 0,0),
   364 	MKRAIL(0x9, 0,1),
   433 	MKRAIL(0x9, 0,1),
   365 	MKCLRRAIL(0, 0,-1),
   434 	MKCLRRAIL(0, 0,-1),
   367 	MKCLRRAIL(0, 1,1),
   436 	MKCLRRAIL(0, 1,1),
   368 	MKCLRRAIL(0, 0,2),
   437 	MKCLRRAIL(0, 0,2),
   369 	MKEND
   438 	MKEND
   370 };
   439 };
   371 
   440 
   372 static const AiDefaultRoadBlock _roaddata_ai_1 = {
   441 static const AiDefaultRoadBlock _roaddata_ai_0 = {
   373 	MKHDR(0)
   442 	0, _roaddata_ai_0_data
       
   443 };
       
   444 
       
   445 static const AiDefaultBlockData _roaddata_ai_1_data[] = {
   374 	MKDEPOT(1, 0,-1),
   446 	MKDEPOT(1, 0,-1),
   375 	MKSTATION(0x1, 1,-1),
   447 	MKSTATION(0x1, 1,-1),
   376 	MKRAIL(0x3, 0,0),
   448 	MKRAIL(0x3, 0,0),
   377 	MKRAIL(0x9, 1,0),
   449 	MKRAIL(0x9, 1,0),
   378 	MKCLRRAIL(0, -1,0),
   450 	MKCLRRAIL(0, -1,0),
   380 	MKCLRRAIL(0, 1,1),
   452 	MKCLRRAIL(0, 1,1),
   381 	MKCLRRAIL(0, 2,0),
   453 	MKCLRRAIL(0, 2,0),
   382 	MKEND
   454 	MKEND
   383 };
   455 };
   384 
   456 
   385 static const AiDefaultRoadBlock _roaddata_ai_2 = {
   457 static const AiDefaultRoadBlock _roaddata_ai_1 = {
   386 	MKHDR(0)
   458 	0, _roaddata_ai_1_data
       
   459 };
       
   460 
       
   461 static const AiDefaultBlockData _roaddata_ai_2_data[] = {
   387 	MKDEPOT(3, 1,1),
   462 	MKDEPOT(3, 1,1),
   388 	MKSTATION(0x3, 0,1),
   463 	MKSTATION(0x3, 0,1),
   389 	MKRAIL(0x6, 0,0),
   464 	MKRAIL(0x6, 0,0),
   390 	MKRAIL(0xC, 1,0),
   465 	MKRAIL(0xC, 1,0),
   391 	MKCLRRAIL(0, -1,0),
   466 	MKCLRRAIL(0, -1,0),
   393 	MKCLRRAIL(0, 1,-1),
   468 	MKCLRRAIL(0, 1,-1),
   394 	MKCLRRAIL(0, 2,0),
   469 	MKCLRRAIL(0, 2,0),
   395 	MKEND
   470 	MKEND
   396 };
   471 };
   397 
   472 
   398 static const AiDefaultRoadBlock _roaddata_ai_3 = {
   473 static const AiDefaultRoadBlock _roaddata_ai_2 = {
   399 	MKHDR(0)
   474 	0, _roaddata_ai_2_data
       
   475 };
       
   476 
       
   477 static const AiDefaultBlockData _roaddata_ai_3_data[] = {
   400 	MKDEPOT(0, 1,0),
   478 	MKDEPOT(0, 1,0),
   401 	MKSTATION(0x0, 1,1),
   479 	MKSTATION(0x0, 1,1),
   402 	MKRAIL(0x6, 0,0),
   480 	MKRAIL(0x6, 0,0),
   403 	MKRAIL(0x3, 0,1),
   481 	MKRAIL(0x3, 0,1),
   404 	MKCLRRAIL(0, 0,-1),
   482 	MKCLRRAIL(0, 0,-1),
   406 	MKCLRRAIL(0, -1,1),
   484 	MKCLRRAIL(0, -1,1),
   407 	MKCLRRAIL(0, 0,2),
   485 	MKCLRRAIL(0, 0,2),
   408 	MKEND
   486 	MKEND
   409 };
   487 };
   410 
   488 
   411 static const AiDefaultRoadBlock _roaddata_ai_4 = {
   489 static const AiDefaultRoadBlock _roaddata_ai_3 = {
   412 	MKHDR(1)
   490 	0, _roaddata_ai_3_data
       
   491 };
       
   492 
       
   493 static const AiDefaultBlockData _roaddata_ai_4_data[] = {
   413 	MKSTATION(0x2, -1,0),
   494 	MKSTATION(0x2, -1,0),
   414 	MKRAIL(0x8, 0,0),
   495 	MKRAIL(0x8, 0,0),
   415 	MKCLRRAIL(0, 0,-1),
   496 	MKCLRRAIL(0, 0,-1),
   416 	MKCLRRAIL(0, 1,0),
   497 	MKCLRRAIL(0, 1,0),
   417 	MKCLRRAIL(0, 0,1),
   498 	MKCLRRAIL(0, 0,1),
   418 	MKEND
   499 	MKEND
   419 };
   500 };
   420 
   501 
   421 static const AiDefaultRoadBlock _roaddata_ai_5 = {
   502 static const AiDefaultRoadBlock _roaddata_ai_4 = {
   422 	MKHDR(1)
   503 	1, _roaddata_ai_4_data
       
   504 };
       
   505 
       
   506 static const AiDefaultBlockData _roaddata_ai_5_data[] = {
   423 	MKSTATION(0x3, 0,1),
   507 	MKSTATION(0x3, 0,1),
   424 	MKRAIL(0x4, 0,0),
   508 	MKRAIL(0x4, 0,0),
   425 	MKCLRRAIL(0, -1,0),
   509 	MKCLRRAIL(0, -1,0),
   426 	MKCLRRAIL(0, 0,-1),
   510 	MKCLRRAIL(0, 0,-1),
   427 	MKCLRRAIL(0, 1,0),
   511 	MKCLRRAIL(0, 1,0),
   428 	MKEND
   512 	MKEND
   429 };
   513 };
   430 
   514 
   431 static const AiDefaultRoadBlock _roaddata_ai_6 = {
   515 static const AiDefaultRoadBlock _roaddata_ai_5 = {
   432 	MKHDR(1)
   516 	1, _roaddata_ai_5_data
       
   517 };
       
   518 
       
   519 static const AiDefaultBlockData _roaddata_ai_6_data[] = {
   433 	MKSTATION(0x0, 1,1),
   520 	MKSTATION(0x0, 1,1),
   434 	MKRAIL(0x2, 0,1),
   521 	MKRAIL(0x2, 0,1),
   435 	MKCLRRAIL(0, 0,0),
   522 	MKCLRRAIL(0, 0,0),
   436 	MKCLRRAIL(0, -1,0),
   523 	MKCLRRAIL(0, -1,0),
   437 	MKCLRRAIL(0, 0,2),
   524 	MKCLRRAIL(0, 0,2),
   438 	MKEND
   525 	MKEND
   439 };
   526 };
   440 
   527 
   441 static const AiDefaultRoadBlock _roaddata_ai_7 = {
   528 static const AiDefaultRoadBlock _roaddata_ai_6 = {
   442 	MKHDR(1)
   529 	1, _roaddata_ai_6_data
       
   530 };
       
   531 
       
   532 static const AiDefaultBlockData _roaddata_ai_7_data[] = {
   443 	MKSTATION(0x1, 1,-1),
   533 	MKSTATION(0x1, 1,-1),
   444 	MKRAIL(0x1, 1,0),
   534 	MKRAIL(0x1, 1,0),
   445 	MKCLRRAIL(0, 0,0),
   535 	MKCLRRAIL(0, 0,0),
   446 	MKCLRRAIL(0, 1,1),
   536 	MKCLRRAIL(0, 1,1),
   447 	MKCLRRAIL(0, 2,0),
   537 	MKCLRRAIL(0, 2,0),
   448 	MKEND
   538 	MKEND
       
   539 };
       
   540 
       
   541 static const AiDefaultRoadBlock _roaddata_ai_7 = {
       
   542 	1, _roaddata_ai_7_data
   449 };
   543 };
   450 
   544 
   451 
   545 
   452 static const AiDefaultRoadBlock * const _road_default_block_data[] = {
   546 static const AiDefaultRoadBlock * const _road_default_block_data[] = {
   453 	&_roaddata_ai_0,
   547 	&_roaddata_ai_0,