当前位置: 首页>>代码示例>>C++>>正文


C++ config类代码示例

本文整理汇总了C++中config的典型用法代码示例。如果您正苦于以下问题:C++ config类的具体用法?C++ config怎么用?C++ config使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了config类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: get_node

bool persist_file_context::set_var(const std::string &global,const config &val, bool immediate)
{
	config bak;
	config bactive;
	if (immediate) {
		bak = cfg_;
		bactive = get_node(bak, namespace_, true)->child_or_add("variables");
		load();
	}

	config *active = get_node(cfg_, namespace_, true);
	config &cfg = active->child_or_add("variables");
	if (val.has_attribute(global)) {
		if (val[global].empty()) {
			clear_var(global,immediate);
		} else {
			cfg[global] = val[global];
			if (immediate) bactive[global] = val[global];
		}
	} else {
		cfg.clear_children(global);
		cfg.append(val);
		if (immediate) {
			bactive.clear_children(global);
			bactive.append(val);
		}
	}
//	dirty_ = true;
	if (!in_transaction_)
		return save_context();
	else if (immediate) {
		bool ret = save_context();
		cfg_ = bak;
		active = get_node(cfg_, namespace_, true);
		active->clear_children("variables");
		active->remove_attribute("variables");
		active->add_child("variables",bactive);
		return ret;
	} else
		return true;
}
开发者ID:Martin9295,项目名称:wesnoth,代码行数:41,代码来源:persist_context.cpp

示例2: id

tcontrol_definition::tcontrol_definition(const config& cfg)
	: id(cfg["id"])
	, description(cfg["description"].t_str())
	, resolutions()
{
/*WIKI
 * @page = GUIWidgetDefinitionWML
 * @order = 1
 *
 * {{Autogenerated}}
 *
 * = Widget definition =
 *
 * This page describes the definition of all widgets in the toolkit. Every
 * widget has some parts in common, first of all; every definition has the
 * following fields.
 * @begin{parent}{name="generic/"}
 * @begin{tag}{name=widget_definition}{min=0}{max=1}
 * @begin{table}{config}
 *     id & string & &               Unique id for this gui (theme). $
 *     description & t_string & &    Unique translatable name for this gui. $
 *
 *     resolution & section & &      The definitions of the widget in various
 *                                   resolutions. $
 * @end{table}
 * @end{tag}{name=widget_definition}
 * @end{parent}{name="generic/"}
 */

	VALIDATE(!id.empty(), missing_mandatory_wml_key("control", "id"));
	VALIDATE(!description.empty()
			, missing_mandatory_wml_key("control", "description"));

	/*
	 * Do this validation here instead of in load_resolutions so the
	 * translatable string is not in the header and we don't need to pull in
	 * extra header dependencies.
	 */
	config::const_child_itors itors = cfg.child_range("resolution");
	VALIDATE(itors.first != itors.second, _("No resolution defined."));
}
开发者ID:suxinde2009,项目名称:Rose,代码行数:41,代码来源:widget_definition.cpp

示例3: set_living

/*
 * Set the initial 'alive' cells.
 * 
 * INPUT: &cnfg Config file to store initial 'alive' cells
 */
void reader::set_living(config &cnfg)
{
	int start, end;

	// Check if the keyword exists
	start = data.find("Initial");
	if (start == string::npos || start >= data.size()) return; 

	// Find the start and end index of the "Initial" statement
	start = data.find("{", start+7);
	end = data.find("}", start+1);
	// Make sure a complete statement exists
	if (start == string::npos || start >= data.size() || end == string::npos || end >= data.size()) return;	

	int x, y;
	bool done = false;
	istringstream stream(data.substr(start, end-start+1));
	
	while (stream.good()) {
		// Find the next 'Y' char
		if (stream.peek() == 'Y') {
			done = false;

			// Process the column of alive cells (current row in .aut file)
			while (!done) {
				// Grab the y coordinate
				if (isdigit(stream.peek()) || stream.peek() == '-') {
					stream >> y;

					// Grab the x coordinates
					while (1) {
						if (isdigit(stream.peek()) || stream.peek() == '-') {
							stream >> x;	
							cnfg.add(x, y);
						}
						else if (stream.peek() == ';') break;
						else stream.get();
					} // End x coordinates

					done = true;
				}
开发者ID:argrieve,项目名称:game_of_life,代码行数:46,代码来源:reader.cpp

示例4: enter_connect_mode

static void enter_connect_mode(game_display& disp, const config& game_config,
                               mp::chat& chat, config& gamelist, const mp_game_settings& params,
                               const int num_turns, mp::controller default_controller, bool local_players_only = false)
{
    mp::ui::result res;
    game_state state;
    const network::manager net_manager(1,1);
    network_game_manager m;

    gamelist.clear();
    statistics::fresh_stats();

    {
        mp::connect ui(disp, game_config, chat, gamelist, params, num_turns, default_controller, local_players_only);
        run_lobby_loop(disp, ui);

        res = ui.get_result();

        // start_game() updates the parameters to reflect game start,
        // so it must be called before get_level()
        if (res == mp::ui::PLAY) {
            ui.start_game();
            state = ui.get_state();
        }
    }

    switch (res) {
    case mp::ui::PLAY:
        play_game(disp, state, game_config, IO_SERVER);
        recorder.clear();

        break;
    case mp::ui::CREATE:
        enter_create_mode(disp, game_config, chat, gamelist, default_controller, local_players_only);
        break;
    case mp::ui::QUIT:
    default:
        network::send_data(config("refresh_lobby"), 0);
        break;
    }
}
开发者ID:aelthwin,项目名称:Battle-for-Wesnoth--Zombie-Edition,代码行数:41,代码来源:multiplayer.cpp

示例5: best_slider_length_

builder_slider::builder_slider(const config& cfg)
    : implementation::builder_styled_widget(cfg)
    , best_slider_length_(cfg["best_slider_length"])
    , minimum_value_(cfg["minimum_value"])
    , maximum_value_(cfg["maximum_value"])
    , step_size_(cfg["step_size"])
    , value_(cfg["value"])
    , minimum_value_label_(cfg["minimum_value_label"].t_str())
    , maximum_value_label_(cfg["maximum_value_label"].t_str())
    , value_labels_()
{
    const config& labels = cfg.child("value_labels");
    if(!labels) {
        return;
    }

    for(const auto & label : labels.child_range("value"))
    {
        value_labels_.push_back(label["label"]);
    }
}
开发者ID:GregoryLundberg,项目名称:wesnoth,代码行数:21,代码来源:slider.cpp

示例6:

timage_definition::tresolution::tresolution(const config& cfg)
	: tresolution_definition_(cfg)
{
/*WIKI
 * @page = GUIWidgetDefinitionWML
 * @order = 1_image
 *
 * == Image ==
 *
 * @macro = image_description
 *
 * The definition of an image. The label field of the widget is used as the
 * name of file to show. The widget normally has no event interaction so only
 * one state is defined.
 *
 * The following states exist:
 * * state_enabled, the image is enabled.
 */
	// Note the order should be the same as the enum tstate in image.hpp.
	state.push_back(tstate_definition(cfg.child("state_enabled")));
}
开发者ID:aelthwin,项目名称:Battle-for-Wesnoth--Zombie-Edition,代码行数:21,代码来源:image.cpp

示例7: convert_old_saves_1_11_0

//changes done during 1.11.0-dev
static void convert_old_saves_1_11_0(config& cfg)
{
	if(!cfg.has_child("snapshot")){
		return;
	}

	const config& snapshot = cfg.child("snapshot");
	const config& replay_start = cfg.child("replay_start");
	const config& replay = cfg.child("replay");

	if(!cfg.has_child("carryover_sides") && !cfg.has_child("carryover_sides_start")){
		config carryover;
		//copy rng and menu items from toplevel to new carryover_sides
		carryover["random_seed"] = cfg["random_seed"];
		carryover["random_calls"] = cfg["random_calls"];
		BOOST_FOREACH(const config& menu_item, cfg.child_range("menu_item")){
			carryover.add_child("menu_item", menu_item);
		}
		carryover["difficulty"] = cfg["difficulty"];
		carryover["random_mode"] = cfg["random_mode"];
		//the scenario to be played is always stored as next_scenario in carryover_sides_start
		carryover["next_scenario"] = cfg["scenario"];

		config carryover_start = carryover;

		//copy sides from either snapshot or replay_start to new carryover_sides
		if(!snapshot.empty()){
			BOOST_FOREACH(const config& side, snapshot.child_range("side")){
				carryover.add_child("side", side);
			}
			//for compatibility with old savegames that use player instead of side
			BOOST_FOREACH(const config& side, snapshot.child_range("player")){
				carryover.add_child("side", side);
			}
			//save the sides from replay_start in carryover_sides_start
			BOOST_FOREACH(const config& side, replay_start.child_range("side")){
				carryover_start.add_child("side", side);
			}
			//for compatibility with old savegames that use player instead of side
			BOOST_FOREACH(const config& side, replay_start.child_range("player")){
				carryover_start.add_child("side", side);
			}
		} else if (!replay_start.empty()){
开发者ID:pax2you4now,项目名称:wesnoth,代码行数:44,代码来源:savegame.cpp

示例8: gamedata_

game_state::game_state(const config & level, play_controller & pc, game_board& board) :
	gamedata_(level),
	board_(board),
	tod_manager_(level),
	pathfind_manager_(new pathfind::manager(level)),
	reports_(new reports()),
	lua_kernel_(new game_lua_kernel(NULL, *this, pc, *reports_)),
	events_manager_(new game_events::manager()),
	player_number_(level["playing_team"].to_int() + 1),
	end_level_data_(),
	init_side_done_(level["init_side_done"].to_bool(false)),
	first_human_team_(-1)
{
	events_manager_->read_scenario(level);
	if(const config& endlevel_cfg = level.child("end_level_data")) {
		end_level_data el_data;
		el_data.read(endlevel_cfg);
		el_data.transient.carryover_report = false;
		end_level_data_ = el_data;
	}
}
开发者ID:sunny975,项目名称:wesnoth,代码行数:21,代码来源:game_state.cpp

示例9: angular

      matrix<math::real, 3>  angular(const rigid::skeleton& skel, const config& at) {
	const natural n = skel.size();
	assert( at.rows() == n );
      
	mat res = mat::Zero(3, 6*n);
	
	const vec3 c = com(skel) ( at );
	
	skel.each( [&](math::natural i) {
	    res.block<3, 3>(0, 6*i) = at(i).rotation().matrix() * skel.topology[i].inertia.asDiagonal();
	  
	    const vec3 ri = at(i).translation()  - c;
	  
	    res.block<3, 3>(0, 6*i + 3) = skel.topology[i].mass * math::hat( ri )
	      * at(i).rotation().matrix();
	  });
      
      
	return std::move(res);

      }
开发者ID:Jorjor70,项目名称:meuh,代码行数:21,代码来源:momentum.cpp

示例10: get_text

std::vector<std::string> get_text(const std::string &campaign, bool split_multiline_headers)
{
	std::vector< std::string > res;

	config::child_itors about_entries = about_list.child_range("about");

	if (!campaign.empty()) {
		for (const config &about : about_entries) {
			// just finished a particular campaign
			if (campaign == about["id"]) {
				add_lines(res, about, split_multiline_headers);
			}
		}
	}

	for (const config &about : about_entries) {
		add_lines(res, about, split_multiline_headers);
	}

	return res;
}
开发者ID:ArtBears,项目名称:wesnoth,代码行数:21,代码来源:about.cpp

示例11: object

theme::status_item::status_item(const config& cfg) :
	object(cfg),
	prefix_(cfg["prefix"] + cfg["prefix_literal"]),
	postfix_(cfg["postfix_literal"] + cfg["postfix"]),
	label_(),
	font_(atoi(cfg["font_size"].c_str())),
	font_rgb_set_(false),
	font_rgb_(DefaultFontRGB)
{
	if(font_ == 0)
		font_ = DefaultFontSize;

	const config* const label_child = cfg.child("label");
	if(label_child != NULL) {
		label_ = label(*label_child);
	}

	if(cfg["font_rgb"].size()){
	  std::vector<std::string> rgb_vec = utils::split(cfg["font_rgb"]);
	  if(3 <= rgb_vec.size()){
	    std::vector<std::string>::iterator c=rgb_vec.begin();
	    int r,g,b;
	    r = (atoi(c->c_str()));
	    c++;
	    if(c != rgb_vec.end()){
	      g = (atoi(c->c_str()));
	    }else{
	      g=0;
	    }
	    c++;
	    if(c != rgb_vec.end()){
	      b=(atoi(c->c_str()));
	    }else{
	      b=0;
	    }
	    font_rgb_ = (((r<<16) & 0x00FF0000) + ((g<<8) & 0x0000FF00) + ((b) & 0x000000FF));
	    font_rgb_set_=true;
	  }
	}
}
开发者ID:dodikk,项目名称:iWesnoth,代码行数:40,代码来源:theme.cpp

示例12: id

tcontrol_definition::tcontrol_definition(const config& cfg) :
	id(cfg["id"]),
	description(cfg["description"]),
	resolutions()
{

/*WIKI
 * @page = GUIWidgetDefinitionWML
 * @order = 1
 *
 * THIS PAGE IS AUTOMATICALLY GENERATED, DO NOT MODIFY DIRECTLY !!!
 *
 * = Widget definition =
 *
 * This page describes the definition of all widgets in the toolkit. Every
 * widget has some parts in common, first of all every definition has the
 * following fields.
 *
 * @start_table = config
 *     id (string)                   Unique id for this gui (theme).
 *     description (t_string)        Unique translatable name for this gui.
 *
 *     resolution (section)          The definitions of the widget in various
 *                                   resolutions.
 * @end_table
 *
 */

	VALIDATE(!id.empty(), missing_mandatory_wml_key("gui", "id"));
	VALIDATE(!description.empty()
			, missing_mandatory_wml_key("gui", "description"));

	/*
	 * Do this validation here instead of in load_resolutions so the
	 * translatable string is not in the header and we don't need to pull in
	 * extra header dependencies.
	 */
	config::const_child_itors itors = cfg.child_range("resolution");
	VALIDATE(itors.first != itors.second, _("No resolution defined."));
}
开发者ID:Alexander--,项目名称:Wesnoth-1.8-for-Android,代码行数:40,代码来源:widget_definition.cpp

示例13: level_to_gamestate

void level_to_gamestate(const config& level, saved_game& state)
{
    game_classification::CAMPAIGN_TYPE type = state.classification().campaign_type;
    bool show_connect = state.mp_settings().show_connect;
    state = saved_game(level);
    state.classification().campaign_type = type;
    state.mp_settings().show_connect = show_connect;
    // Any replay data is only temporary and should be removed from
    // the level data in case we want to save the game later.
    if (const config& replay_data = level.child("replay"))
    {
        LOG_NW << "setting replay\n";
        recorder = replay(replay_data);
        if (!recorder.empty()) {
            recorder.set_skip(false);
            recorder.set_to_end();
        }
    }


    //save id setting  was moved to play_controller.
}
开发者ID:Kanac,项目名称:wesnoth,代码行数:22,代码来源:mp_game_utils.cpp

示例14: tresolution_definition_

tstacked_widget_definition::tresolution::tresolution(const config& cfg)
	: tresolution_definition_(cfg)
	, grid(NULL)
{
/*WIKI
 * @page = GUIWidgetDefinitionWML
 * @order = 1_stacked_widget
 *
 * == Multi page ==
 *
 * The documentation is not written yet.
 */

	// Add a dummy state since every widget needs a state.
	static config dummy ("draw");
	state.push_back(tstate_definition(dummy));

	const config &child = cfg.child("grid");
	VALIDATE(child, _("No grid defined."));

	grid = new tbuilder_grid(child);
}
开发者ID:Alexander--,项目名称:Wesnoth-1.8-for-Android,代码行数:22,代码来源:stacked_widget.cpp

示例15: init_textdomains

void init_textdomains(const config& cfg)
{
	foreach (const config &t, cfg.child_range("textdomain"))
	{
		const std::string &name = t["name"];
		const std::string &path = t["path"];

		if(path.empty()) {
			t_string::add_textdomain(name, get_intl_dir());
		} else {
			std::string location = get_binary_dir_location("", path);

			if (location.empty()) {
				//if location is empty, this causes a crash on Windows, so we
				//disallow adding empty domains
				ERR_G << "no location found for '" << path << "', skipping textdomain\n";
			} else {
				t_string::add_textdomain(name, location);
			}
		}
	}
}
开发者ID:SkyPrayerStudio,项目名称:War-Of-Kingdom,代码行数:22,代码来源:language.cpp


注:本文中的config类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。