mirror of https://github.com/OpenTTD/OpenTTD
(svn r8096) -Codechange: Invert the check if you are allowed to clear a road tile so there are not so many negations (too confusing) and added some comments to further clarify what happens.
parent
0edc029f9f
commit
fc78ef95e1
|
@ -558,21 +558,24 @@ static int32 RemoveRoadDepot(TileIndex tile, uint32 flags)
|
|||
return _price.remove_road_depot;
|
||||
}
|
||||
|
||||
#define M(x) (1<<(x))
|
||||
|
||||
static int32 ClearTile_Road(TileIndex tile, byte flags)
|
||||
{
|
||||
switch (GetRoadTileType(tile)) {
|
||||
case ROAD_TILE_NORMAL: {
|
||||
RoadBits b = GetRoadBits(tile);
|
||||
|
||||
if (!((1 << b) & (M(1)|M(2)|M(4)|M(8))) &&
|
||||
(!(flags & DC_AI_BUILDING) || !IsTileOwner(tile, OWNER_TOWN)) &&
|
||||
flags & DC_AUTO) {
|
||||
return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST);
|
||||
#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))) ||
|
||||
((flags & DC_AI_BUILDING) && IsTileOwner(tile, OWNER_TOWN)) ||
|
||||
!(flags & DC_AUTO)
|
||||
) {
|
||||
return DoCommand(tile, b, 0, flags, CMD_REMOVE_ROAD);
|
||||
}
|
||||
return DoCommand(tile, b, 0, flags, CMD_REMOVE_ROAD);
|
||||
}
|
||||
return_cmd_error(STR_1801_MUST_REMOVE_ROAD_FIRST);
|
||||
} break;
|
||||
#undef M
|
||||
|
||||
case ROAD_TILE_CROSSING: {
|
||||
int32 ret;
|
||||
|
|
Loading…
Reference in New Issue