# HG changeset patch # User yexo # Date 2009-08-20 15:59:35 # Node ID 308cf6c9a8ace18be3a1b201fabdfecf9b36ebf3 # Parent edb51729a58e818893843de3abd67183f68a288f (svn r17239) -Change [FS#2802]: allow overbuilding the front tile of a roadstation / roaddepot with road to be consistent with overbuilding the front tile of tunnels/bridges and also to make it easier for AIs to connect roadstations and roaddepots to the road in front of it diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -516,9 +516,11 @@ CommandCost CmdBuildRoad(TileIndex tile, if (HasTileRoadType(tile, rt)) return_cmd_error(STR_ERROR_ALREADY_BUILT); break; - default: case ROAD_TILE_DEPOT: + if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_ERROR_ALREADY_BUILT); goto do_clear; + + default: NOT_REACHED(); } break; @@ -565,6 +567,7 @@ CommandCost CmdBuildRoad(TileIndex tile, } case MP_STATION: { + if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_ERROR_ALREADY_BUILT); if (!IsDriveThroughStopTile(tile)) goto do_clear; RoadBits curbits = AxisToRoadBits(DiagDirToAxis(GetRoadStopDir(tile))); @@ -575,8 +578,8 @@ CommandCost CmdBuildRoad(TileIndex tile, } break; case MP_TUNNELBRIDGE: - if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR; - if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) return CMD_ERROR; + if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) goto do_clear; + if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) goto do_clear; if (HasTileRoadType(tile, rt)) return_cmd_error(STR_ERROR_ALREADY_BUILT); /* Don't allow adding roadtype to the bridge/tunnel when vehicles are already driving on it */ if (HasVehicleOnTunnelBridge(tile, GetOtherTunnelBridgeEnd(tile))) return CMD_ERROR;