summaryrefslogtreecommitdiff
path: root/src/road_cmd.cpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2015-02-22 14:01:24 +0000
committerfrosch <frosch@openttd.org>2015-02-22 14:01:24 +0000
commite8e49e5ddabf6bdc6c6b6a77a1d2ead377c27444 (patch)
treea6cd6584172b1917357ac22feb2779fd3e18e6f4 /src/road_cmd.cpp
parentff1f465191e9ea1651ad18070f53f8274c8c2f74 (diff)
downloadopenttd-e8e49e5ddabf6bdc6c6b6a77a1d2ead377c27444.tar.xz
(svn r27157) -Fix: Mark bridge middle tiles dirty when building/removing/changing bridges.
Diffstat (limited to 'src/road_cmd.cpp')
-rw-r--r--src/road_cmd.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index e56633696..e7cfa2382 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -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;
}