Configure Engine: formatting cleanup

This commit is contained in:
Charles Dang 2017-10-05 16:58:07 +11:00
parent 5d18b5b01c
commit 2caf266413
2 changed files with 334 additions and 164 deletions

View file

@ -12,28 +12,30 @@
*/
#include "game_initialization/configure_engine.hpp"
#include "formula/string_utils.hpp"
#include "game_config_manager.hpp"
#include "mp_game_settings.hpp"
#include "preferences/credentials.hpp"
#include "settings.hpp"
#include "tod_manager.hpp"
#include "preferences/credentials.hpp"
#include <cassert>
#include <sstream>
#include <iostream>
#include <sstream>
namespace ng {
configure_engine::configure_engine(saved_game& state, const config* intial)
namespace ng
{
configure_engine::configure_engine(saved_game& state, const config* initial)
: state_(state)
, parameters_(state_.mp_settings())
, initial_(intial ? intial : &state_.get_starting_pos())
, initial_(initial ? initial : &state_.get_starting_pos())
{
set_use_map_settings(use_map_settings_default());
}
void configure_engine::set_default_values() {
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());
@ -50,171 +52,159 @@ void configure_engine::set_default_values() {
set_random_faction_mode(random_faction_mode_default());
}
bool configure_engine::force_lock_settings() const {
bool configure_engine::force_lock_settings() const
{
return initial_cfg()["force_lock_settings"].to_bool(!state_.classification().is_normal_mp_game());
}
std::string configure_engine::game_name() const { return parameters_.name; }
int configure_engine::num_turns() const { return parameters_.num_turns; }
int configure_engine::village_gold() const { return parameters_.village_gold; }
int configure_engine::village_support() const { return parameters_.village_support; }
int configure_engine::xp_modifier() const { return parameters_.xp_modifier; }
int configure_engine::mp_countdown_init_time() const { return parameters_.mp_countdown_init_time; }
int configure_engine::mp_countdown_reservoir_time() const { return parameters_.mp_countdown_reservoir_time; }
int configure_engine::mp_countdown_turn_bonus() const { return parameters_.mp_countdown_turn_bonus; }
int configure_engine::mp_countdown_action_bonus() const { return parameters_.mp_countdown_action_bonus; }
bool configure_engine::mp_countdown() const { return parameters_.mp_countdown; }
bool configure_engine::use_map_settings() const { return parameters_.use_map_settings; }
bool configure_engine::random_start_time() const { return parameters_.random_start_time; }
bool configure_engine::fog_game() const { return parameters_.fog_game; }
bool configure_engine::shroud_game() const { return parameters_.shroud_game; }
bool configure_engine::allow_observers() const { return parameters_.allow_observers; }
bool configure_engine::registered_users_only() const { return parameters_.registered_users_only; }
bool configure_engine::shuffle_sides() const { return parameters_.shuffle_sides; }
mp_game_settings::RANDOM_FACTION_MODE configure_engine::random_faction_mode() const { return parameters_.random_faction_mode; }
const config& configure_engine::options() const { return parameters_.options; }
void configure_engine::set_game_name(std::string val) { parameters_.name = val; }
void configure_engine::set_game_password(std::string val) { parameters_.password = val; }
void configure_engine::set_num_turns(int val) { parameters_.num_turns = val; }
void configure_engine::set_village_gold(int val) { parameters_.village_gold = val; }
void configure_engine::set_village_support(int val) { parameters_.village_support = val; }
void configure_engine::set_xp_modifier(int val) { parameters_.xp_modifier = val; }
void configure_engine::set_mp_countdown_init_time(int val) { parameters_.mp_countdown_init_time = val; }
void configure_engine::set_mp_countdown_reservoir_time(int val) { parameters_.mp_countdown_reservoir_time = val; }
void configure_engine::set_mp_countdown_turn_bonus(int val) { parameters_.mp_countdown_turn_bonus = val; }
void configure_engine::set_mp_countdown_action_bonus(int val) { parameters_.mp_countdown_action_bonus = val; }
void configure_engine::set_mp_countdown(bool val) { parameters_.mp_countdown = val; }
void configure_engine::set_use_map_settings(bool val) { parameters_.use_map_settings = val; }
void configure_engine::set_random_start_time(bool val) { parameters_.random_start_time = val; }
void configure_engine::set_fog_game(bool val) { parameters_.fog_game = val; }
void configure_engine::set_shroud_game(bool val) { parameters_.shroud_game = val; }
void configure_engine::set_allow_observers(bool val) { parameters_.allow_observers = val; }
void configure_engine::set_registered_users_only(bool val) { parameters_.registered_users_only = val; }
void configure_engine::set_oos_debug(bool val) { state_.classification().oos_debug = val; }
void configure_engine::set_shuffle_sides(bool val) { parameters_.shuffle_sides = val; }
void configure_engine::set_random_faction_mode(mp_game_settings::RANDOM_FACTION_MODE val) { parameters_.random_faction_mode = val;}
void configure_engine::set_options(const config& cfg) { parameters_.options = cfg; }
std::string configure_engine::game_name_default() {
std::string configure_engine::game_name_default()
{
utils::string_map i18n_symbols;
i18n_symbols["login"] = preferences::login();
return vgettext("$login|s game", i18n_symbols);
}
int configure_engine::num_turns_default() const {
return use_map_settings() ?
settings::get_turns(initial_cfg()["turns"]) :
preferences::turns();
int configure_engine::num_turns_default() const
{
return use_map_settings() ? settings::get_turns(initial_cfg()["turns"]) : preferences::turns();
}
int configure_engine::village_gold_default() const {
return use_map_settings() ?
settings::get_village_gold(initial_cfg()["mp_village_gold"], &state_.classification()) :
preferences::village_gold();
int configure_engine::village_gold_default() const
{
return use_map_settings()
? settings::get_village_gold(initial_cfg()["mp_village_gold"], &state_.classification())
: preferences::village_gold();
}
int configure_engine::village_support_default() const {
return use_map_settings() ?
settings::get_village_support(initial_cfg()["mp_village_support"]) :
preferences::village_support();
int configure_engine::village_support_default() const
{
return use_map_settings()
? settings::get_village_support(initial_cfg()["mp_village_support"])
: preferences::village_support();
}
int configure_engine::xp_modifier_default() const {
return use_map_settings() ?
settings::get_xp_modifier(initial_cfg()["experience_modifier"]) :
preferences::xp_modifier();
int configure_engine::xp_modifier_default() const
{
return use_map_settings()
? settings::get_xp_modifier(initial_cfg()["experience_modifier"])
: preferences::xp_modifier();
}
int configure_engine::mp_countdown_init_time_default() const {
int configure_engine::mp_countdown_init_time_default() const
{
return preferences::countdown_init_time();
}
int configure_engine::mp_countdown_reservoir_time_default() const {
int configure_engine::mp_countdown_reservoir_time_default() const
{
return preferences::countdown_reservoir_time();
}
int configure_engine::mp_countdown_turn_bonus_default() const {
int configure_engine::mp_countdown_turn_bonus_default() const
{
return preferences::countdown_turn_bonus();
}
int configure_engine::mp_countdown_action_bonus_default() const {
int configure_engine::mp_countdown_action_bonus_default() const
{
return preferences::countdown_action_bonus();
}
bool configure_engine::mp_countdown_default() const {
bool configure_engine::mp_countdown_default() const
{
return preferences::countdown();
}
bool configure_engine::use_map_settings_default() const {
bool configure_engine::use_map_settings_default() const
{
return force_lock_settings() || preferences::use_map_settings();
}
bool configure_engine::random_start_time_default() const {
return use_map_settings() ?
initial_cfg()["random_start_time"].to_bool(false) :
preferences::random_start_time();
bool configure_engine::random_start_time_default() const
{
return use_map_settings()
? initial_cfg()["random_start_time"].to_bool(false)
: preferences::random_start_time();
}
bool configure_engine::fog_game_default() const {
return use_map_settings() ?
initial_cfg()["mp_fog"].to_bool(state_.classification().is_normal_mp_game()) :
preferences::fog();
bool configure_engine::fog_game_default() const
{
return use_map_settings()
? initial_cfg()["mp_fog"].to_bool(state_.classification().is_normal_mp_game())
: preferences::fog();
}
bool configure_engine::shroud_game_default() const {
return use_map_settings() ?
initial_cfg()["mp_shroud"].to_bool(false) :
preferences::shroud();
bool configure_engine::shroud_game_default() const
{
return use_map_settings() ? initial_cfg()["mp_shroud"].to_bool(false) : preferences::shroud();
}
bool configure_engine::allow_observers_default() const {
bool configure_engine::allow_observers_default() const
{
return preferences::allow_observers();
}
bool configure_engine::registered_users_only_default() const
{
return preferences::registered_users_only();
}
bool configure_engine::shuffle_sides_default() const {
bool configure_engine::shuffle_sides_default() const
{
return preferences::shuffle_sides();
}
mp_game_settings::RANDOM_FACTION_MODE configure_engine::random_faction_mode_default() const {
return mp_game_settings::RANDOM_FACTION_MODE::string_to_enum(preferences::random_faction_mode(), mp_game_settings::RANDOM_FACTION_MODE::DEFAULT);
mp_game_settings::RANDOM_FACTION_MODE configure_engine::random_faction_mode_default() const
{
return mp_game_settings::RANDOM_FACTION_MODE::string_to_enum(
preferences::random_faction_mode(), mp_game_settings::RANDOM_FACTION_MODE::DEFAULT);
}
const config& configure_engine::options_default() const {
const config& configure_engine::options_default() const
{
return preferences::options();
}
const mp_game_settings& configure_engine::get_parameters() const {
return parameters_;
}
void configure_engine::write_parameters()
{
config& scenario = this->state_.get_starting_pos();
const mp_game_settings& params = this->state_.mp_settings();
if (params.random_start_time) {
if (!tod_manager::is_start_ToD(scenario["random_start_time"])) {
if(params.random_start_time) {
if(!tod_manager::is_start_ToD(scenario["random_start_time"])) {
scenario["random_start_time"] = true;
}
}
else {
} else {
scenario["random_start_time"] = false;
}
scenario["experience_modifier"] = params.xp_modifier;
scenario["turns"] = params.num_turns;
for (config& side : scenario.child_range("side"))
{
if (!params.use_map_settings) {
for(config& side : scenario.child_range("side")) {
if(!params.use_map_settings) {
side["fog"] = params.fog_game;
side["shroud"] = params.shroud_game;
side["village_gold"] = params.village_gold;
side["village_support"] = params.village_support;
}
else {
if (side["fog"].empty()) {
} else {
if(side["fog"].empty()) {
side["fog"] = params.fog_game;
}
if (side["shroud"].empty()) {
if(side["shroud"].empty()) {
side["shroud"] = params.shroud_game;
}
if (side["village_gold"].empty()) {
if(side["village_gold"].empty()) {
side["village_gold"] = params.village_gold;
}
if (side["village_support"].empty()) {
if(side["village_support"].empty()) {
side["village_support"] = params.village_support;
}
}
}
}
} //end namespace ng
} // end namespace ng

View file

@ -15,12 +15,12 @@
#pragma once
#include "gettext.hpp"
#include "preferences/game.hpp"
#include "mp_game_settings.hpp"
#include "preferences/game.hpp"
#include "saved_game.hpp"
namespace ng {
namespace ng
{
/**
* configure_engine
*
@ -30,59 +30,226 @@ namespace ng {
class configure_engine
{
public:
configure_engine(saved_game& state, const config* intial = nullptr);
configure_engine(saved_game& state, const config* initial = nullptr);
// Set all parameters to their default values
/** Set all parameters to their default values. */
void set_default_values();
// check force_lock_settings in config
/** Checks force_lock_settings in config. */
bool force_lock_settings() const;
// getter methods
std::string game_name() const;
int num_turns() const;
int village_gold() const;
int village_support() const;
int xp_modifier() const;
int mp_countdown_init_time() const;
int mp_countdown_reservoir_time() const;
int mp_countdown_turn_bonus() const;
int mp_countdown_action_bonus() const;
bool mp_countdown() const;
bool use_map_settings() const;
bool random_start_time() const;
bool fog_game() const;
bool shroud_game() const;
bool allow_observers() const;
bool registered_users_only() const;
bool shuffle_sides() const;
mp_game_settings::RANDOM_FACTION_MODE random_faction_mode() const;
const config& options() const;
//
// Getter methods
//
// setter methods
void set_game_name(std::string name);
void set_game_password(std::string name);
void set_num_turns(int val);
void set_village_gold(int val);
void set_village_support(int val);
void set_xp_modifier(int val);
void set_mp_countdown_init_time(int val);
void set_mp_countdown_reservoir_time(int val);
void set_mp_countdown_turn_bonus(int val);
void set_mp_countdown_action_bonus(int val);
void set_mp_countdown(bool val);
void set_use_map_settings(bool val);
void set_random_start_time(bool val);
void set_fog_game(bool val);
void set_shroud_game(bool val);
void set_allow_observers(bool val);
void set_registered_users_only(bool val);
void set_oos_debug(bool val);
void set_shuffle_sides(bool val);
void set_random_faction_mode(mp_game_settings::RANDOM_FACTION_MODE val);
void set_options(const config& cfg);
std::string game_name() const
{
return parameters_.name;
}
int num_turns() const
{
return parameters_.num_turns;
}
int village_gold() const
{
return parameters_.village_gold;
}
int village_support() const
{
return parameters_.village_support;
}
int xp_modifier() const
{
return parameters_.xp_modifier;
}
int mp_countdown_init_time() const
{
return parameters_.mp_countdown_init_time;
}
int mp_countdown_reservoir_time() const
{
return parameters_.mp_countdown_reservoir_time;
}
int mp_countdown_turn_bonus() const
{
return parameters_.mp_countdown_turn_bonus;
}
int mp_countdown_action_bonus() const
{
return parameters_.mp_countdown_action_bonus;
}
bool mp_countdown() const
{
return parameters_.mp_countdown;
}
bool use_map_settings() const
{
return parameters_.use_map_settings;
}
bool random_start_time() const
{
return parameters_.random_start_time;
}
bool fog_game() const
{
return parameters_.fog_game;
}
bool shroud_game() const
{
return parameters_.shroud_game;
}
bool allow_observers() const
{
return parameters_.allow_observers;
}
bool registered_users_only() const
{
return parameters_.registered_users_only;
}
bool shuffle_sides() const
{
return parameters_.shuffle_sides;
}
mp_game_settings::RANDOM_FACTION_MODE random_faction_mode() const
{
return parameters_.random_faction_mode;
}
const config& options() const
{
return parameters_.options;
}
//
// Setter methods
//
void set_game_name(std::string name)
{
parameters_.name = name;
}
void set_game_password(std::string name)
{
parameters_.password = name;
}
void set_num_turns(int val)
{
parameters_.num_turns = val;
}
void set_village_gold(int val)
{
parameters_.village_gold = val;
}
void set_village_support(int val)
{
parameters_.village_support = val;
}
void set_xp_modifier(int val)
{
parameters_.xp_modifier = val;
}
void set_mp_countdown_init_time(int val)
{
parameters_.mp_countdown_init_time = val;
}
void set_mp_countdown_reservoir_time(int val)
{
parameters_.mp_countdown_reservoir_time = val;
}
void set_mp_countdown_turn_bonus(int val)
{
parameters_.mp_countdown_turn_bonus = val;
}
void set_mp_countdown_action_bonus(int val)
{
parameters_.mp_countdown_action_bonus = val;
}
void set_mp_countdown(bool val)
{
parameters_.mp_countdown = val;
}
void set_use_map_settings(bool val)
{
parameters_.use_map_settings = val;
}
void set_random_start_time(bool val)
{
parameters_.random_start_time = val;
}
void set_fog_game(bool val)
{
parameters_.fog_game = val;
}
void set_shroud_game(bool val)
{
parameters_.shroud_game = val;
}
void set_allow_observers(bool val)
{
parameters_.allow_observers = val;
}
void set_registered_users_only(bool val)
{
parameters_.registered_users_only = val;
}
void set_oos_debug(bool val)
{
state_.classification().oos_debug = val;
}
void set_shuffle_sides(bool val)
{
parameters_.shuffle_sides = val;
}
void set_random_faction_mode(mp_game_settings::RANDOM_FACTION_MODE val)
{
parameters_.random_faction_mode = val;
}
void set_options(const config& cfg)
{
parameters_.options = cfg;
}
//
// Parameter defaults
//
// parameter defaults
static std::string game_name_default();
int num_turns_default() const;
int village_gold_default() const;
@ -103,32 +270,45 @@ public:
mp_game_settings::RANDOM_FACTION_MODE random_faction_mode_default() const;
const config& options_default() const;
// parameters_ accessor
const mp_game_settings& get_parameters() const;
const mp_game_settings& get_parameters() const
{
return parameters_;
}
const std::vector<std::string>& entry_point_titles() const;
void write_parameters();
void update_initial_cfg(const config& cfg)
{
initial_ = &cfg;
}
const std::vector<std::string>& entry_point_titles() const;
private:
saved_game& state_;
mp_game_settings& parameters_;
/// Never nullptr.
const config* initial_;
// village gold, village support, fog, and shroud are per player, always show values of player 1.
/**
* @todo This might not be 100% correct, but at the moment
* it is not possible to show the fog and shroud per player.
* This might change in the future.
* Village gold, village support, fog, and shroud are per player but always show the
* player 1's values.
*
* @todo This might not be 100% correct, but at the moment it is not possible to show
* fog and shroud per player. This might change in the future.
*
* @todo: Is the above even still true?
* -- vultraz, 2017-10-05
*
* NOTE when 'load game' is selected there are no sides.
*/
const config& side_cfg() const
{
return initial_->child_or_empty("side");
}
const config& initial_cfg() const
{
return *initial_;