Old revision #pjv8ib4iq | New revision #ps2m2br1i | ||
---|---|---|---|
12 | MarkCanalsAndRiversAroundDirty(tile); | 12 | MarkCanalsAndRiversAroundDirty(tile); |
13 | } | 13 | } |
14 | 14 | ||
15 | @@ -1234,6 +1236,7 @@ | 15 | @@ -1233,6 +1235,7 @@ |
16 | |||
16 | static TrackStatus GetTileTrackStatus_Water(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) | 17 | static TrackStatus GetTileTrackStatus_Water(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) |
17 | { | 18 | { |
19 | + static const byte clear_tracks[] = {63, 32, 4, 0, 16, 0, 0, 8, 8, 0, 0, 16, 0, 4, 32, 63}; | ||
18 | static const byte coast_tracks[] = {0, 32, 4, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0}; | 20 | static const byte coast_tracks[] = {0, 32, 4, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0}; |
19 | |||
20 | 21 | ||
21 | TrackBits ts; | 22 | TrackBits ts; |
22 | |||
23 | @@ -1240,7 +1243,7 @@ | 23 | @@ -1240,7 +1243,7 @@ |
24 | if (mode != TRANSPORT_WATER) return 0; | 24 | if (mode != TRANSPORT_WATER) return 0; |
25 | 25 | ||
26 | switch (GetWaterTileType(tile)) { | 26 | switch (GetWaterTileType(tile)) { |
27 | - case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : TRACK_BIT_NONE; break; | 27 | - case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : TRACK_BIT_NONE; break; |
28 | + case WATER_TILE_CLEAR: ts = | 28 | + case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : (TrackBits)clear_tracks[GetTileSlope(tile) & 0xF]; break; |
29 | case WATER_TILE_COAST: ts = (TrackBits)coast_tracks[GetTileSlope(tile) & 0xF]; break; | 29 | case WATER_TILE_COAST: ts = (TrackBits)coast_tracks[GetTileSlope(tile) & 0xF]; break; |
30 | case WATER_TILE_LOCK: ts = DiagDirToDiagTrackBits(GetLockDirection(tile)); break; | 30 | case WATER_TILE_LOCK: ts = DiagDirToDiagTrackBits(GetLockDirection(tile)); break; |
31 | case WATER_TILE_DEPOT: ts = AxisToTrackBits(GetShipDepotAxis(tile)); break; | 31 | case WATER_TILE_DEPOT: ts = AxisToTrackBits(GetShipDepotAxis(tile)); break; |