configure_engine::configure_engine(saved_game& state, const config* initial)
	: state_(state)
	, parameters_(state_.mp_settings())
	, initial_(initial ? initial : &state_.get_starting_pos())
{
	set_use_map_settings(use_map_settings_default());
}
示例#2
0
configure_engine::configure_engine(saved_game& state) :
	state_(state),
	parameters_(state_.mp_settings()),
	side_cfg_(state_.get_starting_pos().child_or_empty("side"))
{
	if (!state_.get_starting_pos().has_child("side")) {
		std::stringstream msg;
		msg << "Configure Engine: No sides found in scenario, aborting.";
		std::cerr << msg.str();
		std::cerr << "Full scenario config:\n";
		std::cerr << state_.to_config().debug();
		throw game::error(msg.str());
	}

	set_use_map_settings(use_map_settings_default());
	if(state_.classification().get_tagname() == "scenario") {
		BOOST_FOREACH(const config& scenario,
			game_config_manager::get()->game_config().child_range(state_.classification().get_tagname())) {

			if (scenario["allow_new_game"].to_bool(true) || game_config::debug) {

				const std::string& title = (!scenario["new_game_title"].empty()) ?
					scenario["new_game_title"] : scenario["name"];

				entry_points_.push_back(&scenario);
				entry_point_titles_.push_back(title);
			}
		}
	}
void configure_engine::set_default_values()
{
	set_use_map_settings(use_map_settings_default());
	set_game_name(game_name_default());
	set_num_turns(num_turns_default());
	set_village_gold(village_gold_default());
	set_village_support(village_support_default());
	set_xp_modifier(xp_modifier_default());
	set_mp_countdown_init_time(mp_countdown_init_time_default());
	set_mp_countdown_reservoir_time(mp_countdown_reservoir_time_default());
	set_mp_countdown_action_bonus(mp_countdown_action_bonus_default());
	set_mp_countdown(mp_countdown_default());
	set_random_start_time(random_start_time_default());
	set_fog_game(fog_game_default());
	set_shroud_game(shroud_game_default());
	set_random_faction_mode(random_faction_mode_default());
}