1
0
Fork 0

(svn r16996) -Fix (r16995): the tiles under the bridge were not marked dirty when a bridge was replaced with another type

release/1.0
yexo 2009-07-30 19:51:29 +00:00
parent 70cb4c27fe
commit 60b68de98e
1 changed files with 9 additions and 3 deletions

View File

@ -373,8 +373,10 @@ CommandCost CmdBuildBridge(TileIndex end_tile, DoCommandFlag flags, uint32 p1, u
}
if (flags & DC_EXEC) {
/* We do this here because when replacing a bridge with another
* type calling SetBridgeMiddle isn't needed. After all, the
* tile alread has the has_bridge_above bits set. */
SetBridgeMiddle(tile, direction);
MarkTileDirtyByTile(tile);
}
}
@ -404,8 +406,12 @@ CommandCost CmdBuildBridge(TileIndex end_tile, DoCommandFlag flags, uint32 p1, u
default:
NOT_REACHED();
}
MarkTileDirtyByTile(tile_start);
MarkTileDirtyByTile(tile_end);
/* Mark all tiles dirty */
TileIndexDiff delta = (direction == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
for (TileIndex tile = tile_start; tile <= tile_end; tile += delta) {
MarkTileDirtyByTile(tile);
}
}
if ((flags & DC_EXEC) && transport_type == TRANSPORT_RAIL) {