summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-10-05 17:53:01 +0000
committerrubidium <rubidium@openttd.org>2007-10-05 17:53:01 +0000
commita88d0a88b8942ab307ff9c854de9156edd489a25 (patch)
tree61037e556e0a1dd552fe3c7d0196ac6cca36ad1c /src
parentcd1af1c870ee6cafca66667dc299dea76d591cd7 (diff)
downloadopenttd-a88d0a88b8942ab307ff9c854de9156edd489a25.tar.xz
(svn r11206) -Fix [FS#1299]: half tram bits could be removed in some cases. Based on patches by frosch and skidd13.
Diffstat (limited to 'src')
-rw-r--r--src/road_cmd.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index 2149b6270..eaf98c499 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -836,10 +836,9 @@ static CommandCost ClearTile_Road(TileIndex tile, byte flags)
case ROAD_TILE_NORMAL: {
RoadBits b = GetAllRoadBits(tile);
-#define M(x) (1 << (x))
/* Clear the road if only one piece is on the tile OR the AI tries
* to clear town road OR we are not using the DC_AUTO flag */
- if ((M(b) & (M(ROAD_NW) | M(ROAD_SW) | M(ROAD_SE) | M(ROAD_NE))) ||
+ if ((COUNTBITS(b) == 1 && GetRoadBits(tile, ROADTYPE_TRAM) == ROAD_NONE) ||
((flags & DC_AI_BUILDING) && IsTileOwner(tile, OWNER_TOWN)) ||
!(flags & DC_AUTO)
) {
@@ -856,7 +855,6 @@ static CommandCost ClearTile_Road(TileIndex tile, byte flags)
}
return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST);
}
-#undef M
case ROAD_TILE_CROSSING: {
RoadTypes rts = GetRoadTypes(tile);