(svn r27157) -Fix: Mark bridge middle tiles dirty when building/removing/changing bridges.

This commit is contained in:
frosch
2015-02-22 14:01:24 +00:00
parent 9a601a1029
commit bd3a8bf9e4
6 changed files with 48 additions and 24 deletions

View File

@@ -246,12 +246,11 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
}
/* Mark tiles dirty that have been repaved */
MarkTileDirtyByTile(tile);
MarkTileDirtyByTile(other_end);
if (IsBridge(tile)) {
TileIndexDiff delta = TileOffsByDiagDir(GetTunnelBridgeDirection(tile));
for (TileIndex t = tile + delta; t != other_end; t += delta) MarkTileDirtyByTile(t);
MarkBridgeDirty(tile);
} else {
MarkTileDirtyByTile(tile);
MarkTileDirtyByTile(other_end);
}
}
} else {
@@ -747,12 +746,11 @@ do_clear:;
SetRoadOwner(tile, rt, company);
/* Mark tiles dirty that have been repaved */
MarkTileDirtyByTile(other_end);
MarkTileDirtyByTile(tile);
if (IsBridge(tile)) {
TileIndexDiff delta = TileOffsByDiagDir(GetTunnelBridgeDirection(tile));
for (TileIndex t = tile + delta; t != other_end; t += delta) MarkTileDirtyByTile(t);
MarkBridgeDirty(tile);
} else {
MarkTileDirtyByTile(other_end);
MarkTileDirtyByTile(tile);
}
break;
}