equal
deleted
inserted
replaced
1380 ret = DoCommand(tile, 0, track, flags, CMD_REMOVE_SINGLE_RAIL); |
1380 ret = DoCommand(tile, 0, track, flags, CMD_REMOVE_SINGLE_RAIL); |
1381 if (CmdFailed(ret)) return CMD_ERROR; |
1381 if (CmdFailed(ret)) return CMD_ERROR; |
1382 cost.AddCost(ret); |
1382 cost.AddCost(ret); |
1383 } |
1383 } |
1384 |
1384 |
1385 if (water_ground) { |
1385 /* when bankrupting, don't make water dirty, there could be a ship on lower halftile */ |
|
1386 if (water_ground && !(flags & DC_BANKRUPT)) { |
|
1387 if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; |
|
1388 |
1386 /* The track was removed, and left a coast tile. Now also clear the water. */ |
1389 /* The track was removed, and left a coast tile. Now also clear the water. */ |
1387 if (flags & DC_EXEC) DoClearSquare(tile); |
1390 if (flags & DC_EXEC) DoClearSquare(tile); |
1388 cost.AddCost(_price.clear_water); |
1391 cost.AddCost(_price.clear_water); |
1389 } |
1392 } |
1390 |
1393 |
2110 } |
2113 } |
2111 |
2114 |
2112 |
2115 |
2113 static TrackStatus GetTileTrackStatus_Track(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) |
2116 static TrackStatus GetTileTrackStatus_Track(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) |
2114 { |
2117 { |
|
2118 /* Case of half tile slope with water. */ |
|
2119 if (mode == TRANSPORT_WATER && IsPlainRailTile(tile) && GetRailGroundType(tile) == RAIL_GROUND_WATER) { |
|
2120 TrackBits tb = GetTrackBits(tile); |
|
2121 switch (tb) { |
|
2122 default: NOT_REACHED(); |
|
2123 case TRACK_BIT_UPPER: tb = TRACK_BIT_LOWER; break; |
|
2124 case TRACK_BIT_LOWER: tb = TRACK_BIT_UPPER; break; |
|
2125 case TRACK_BIT_LEFT: tb = TRACK_BIT_RIGHT; break; |
|
2126 case TRACK_BIT_RIGHT: tb = TRACK_BIT_LEFT; break; |
|
2127 } |
|
2128 return CombineTrackStatus(TrackBitsToTrackdirBits(tb), TRACKDIR_BIT_NONE); |
|
2129 } |
|
2130 |
2115 if (mode != TRANSPORT_RAIL) return 0; |
2131 if (mode != TRANSPORT_RAIL) return 0; |
2116 |
2132 |
2117 TrackBits trackbits = TRACK_BIT_NONE; |
2133 TrackBits trackbits = TRACK_BIT_NONE; |
2118 TrackdirBits red_signals = TRACKDIR_BIT_NONE; |
2134 TrackdirBits red_signals = TRACKDIR_BIT_NONE; |
2119 |
2135 |