1353 TileIndex tile; |
1353 TileIndex tile; |
1354 |
1354 |
1355 for (tile = 0; tile != MapSize(); tile++) { |
1355 for (tile = 0; tile != MapSize(); tile++) { |
1356 if (IsTileType(tile, MP_TUNNEL)) { |
1356 if (IsTileType(tile, MP_TUNNEL)) { |
1357 if (HASBIT(_m[tile].m5, 7)) { /* Bridge */ |
1357 if (HASBIT(_m[tile].m5, 7)) { /* Bridge */ |
|
1358 DiagDirection dd = GB(_m[tile].m5, 0, 2); |
|
1359 SB(_m[tile].m5, 0, 2, 0); |
1358 if (GB(_m[tile].m5, 2, 2) == 0) { /* Railway Bridge */ |
1360 if (GB(_m[tile].m5, 2, 2) == 0) { /* Railway Bridge */ |
1359 SetTileType(tile, MP_RAILWAY_BRIDGE); |
1361 SetTileType(tile, MP_RAILWAY_BRIDGE); |
|
1362 if (dd == DIAGDIR_NE || dd == DIAGDIR_SW) { |
|
1363 SETBIT(_m[tile].m5, 0); |
|
1364 } else { |
|
1365 SETBIT(_m[tile].m5, 1); |
|
1366 } |
1360 } else { |
1367 } else { |
1361 SetTileType(tile, MP_STREET_BRIDGE); |
1368 SetTileType(tile, MP_STREET_BRIDGE); |
1362 } |
1369 } |
1363 CLRBIT(_m[tile].m5, 7); |
1370 CLRBIT(_m[tile].m5, 7); |
1364 SB(_m[tile].m5, 2, 2, 0); |
1371 SB(_m[tile].m5, 2, 2, 0); |
1365 SB(_m[tile].m4, 5, 2, GB(_m[tile].m5, 0, 2)); |
1372 SB(_m[tile].m4, 5, 2, dd); |
1366 SB(_m[tile].m5, 0, 2, 0); |
|
1367 } else { /* Tunnel */ |
1373 } else { /* Tunnel */ |
1368 SetTileType(tile, MP_TUNNEL); |
1374 SetTileType(tile, MP_TUNNEL); |
1369 } |
1375 } |
1370 } |
1376 } |
1371 } |
1377 } |