@ -516,9 +516,11 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
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, DoCommandFlag flags, uint32 p1, uint32
}
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, DoCommandFlag flags, uint32 p1, uint32
} 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 ;