Adjust namespaces for mp and sp

moved engine code into "ng" namespace. Moved sp code into "sp" namespace.
Also, renamed some files to reflect the change.
This commit is contained in:
Nathan Walker 2014-07-11 01:31:02 -05:00
parent d06ec5c775
commit efdea6573f
35 changed files with 242 additions and 236 deletions

View file

@ -5,7 +5,7 @@
###
[window]
id = "mp_depcheck_confirm_change"
id = "depcheck_confirm_change"
description = "Enable/disable modifications"
[resolution]

View file

@ -5,7 +5,7 @@
###
[window]
id = "mp_depcheck_select_new"
id = "depcheck_select_new"
description = "Select new era or scenario"
[resolution]

View file

@ -813,8 +813,8 @@ set(wesnoth-main_SRC
gui/dialogs/mp_connect.cpp
gui/dialogs/mp_create_game.cpp
gui/dialogs/mp_create_game_set_password.cpp
gui/dialogs/mp_depcheck_confirm_change.cpp
gui/dialogs/mp_depcheck_select_new.cpp
gui/dialogs/depcheck_confirm_change.cpp
gui/dialogs/depcheck_select_new.cpp
gui/dialogs/mp_host_game_prompt.cpp
gui/dialogs/mp_login.cpp
gui/dialogs/mp_method_selection.cpp
@ -841,17 +841,17 @@ set(wesnoth-main_SRC
mouse_events.cpp
mouse_handler_base.cpp
movetype.cpp
mp_depcheck.cpp
depcheck.cpp
mp_game_settings.cpp
mp_game_utils.cpp
mp_options.cpp
multiplayer.cpp
multiplayer_configure.cpp
multiplayer_configure_engine.cpp
configure_engine.cpp
multiplayer_connect.cpp
multiplayer_connect_engine.cpp
connect_engine.cpp
multiplayer_create.cpp
multiplayer_create_engine.cpp
create_engine.cpp
multiplayer_lobby.cpp
multiplayer_ui.cpp
multiplayer_wait.cpp

View file

@ -397,8 +397,8 @@ wesnoth_sources = Split("""
gui/dialogs/mp_connect.cpp
gui/dialogs/mp_create_game.cpp
gui/dialogs/mp_create_game_set_password.cpp
gui/dialogs/mp_depcheck_confirm_change.cpp
gui/dialogs/mp_depcheck_select_new.cpp
gui/dialogs/depcheck_confirm_change.cpp
gui/dialogs/depcheck_select_new.cpp
gui/dialogs/mp_host_game_prompt.cpp
gui/dialogs/mp_login.cpp
gui/dialogs/mp_method_selection.cpp
@ -464,17 +464,17 @@ wesnoth_sources = Split("""
mouse_events.cpp
mouse_handler_base.cpp
movetype.cpp
mp_depcheck.cpp
depcheck.cpp
mp_game_settings.cpp
mp_game_utils.cpp
mp_options.cpp
multiplayer.cpp
multiplayer_configure.cpp
multiplayer_configure_engine.cpp
configure_engine.cpp
multiplayer_connect.cpp
multiplayer_connect_engine.cpp
connect_engine.cpp
multiplayer_create.cpp
multiplayer_create_engine.cpp
create_engine.cpp
multiplayer_lobby.cpp
multiplayer_ui.cpp
multiplayer_wait.cpp

View file

@ -1,8 +1,8 @@
#include "multiplayer_configure_engine.hpp"
#include "configure_engine.hpp"
#include "formula_string_utils.hpp"
#include "settings.hpp"
namespace mp {
namespace ng {
configure_engine::configure_engine(saved_game& state) :
state_(state),
@ -143,4 +143,4 @@ const mp_game_settings& configure_engine::get_parameters() const {
return parameters_;
}
} //end namespace mp
} //end namespace ng

View file

@ -19,7 +19,7 @@
#include "game_preferences.hpp"
#include "saved_game.hpp"
namespace mp {
namespace ng {
/**
* configure_engine
@ -112,6 +112,6 @@ private:
const config &cfg_;
};
} // end namespace mp
} // end namespace ng
#endif

View file

@ -11,7 +11,7 @@
See the COPYING file for more details.
*/
#include "multiplayer_connect_engine.hpp"
#include "connect_engine.hpp"
#include "ai/configuration.hpp"
#include "formula_string_utils.hpp"
@ -68,7 +68,7 @@ const std::string attributes_to_trim[] = {
}
namespace mp {
namespace ng {
connect_engine::connect_engine(saved_game& state,
const bool local_players_only, const bool first_scenario) :
@ -87,7 +87,7 @@ connect_engine::connect_engine(saved_game& state,
connected_users_()
{
// Initial level config from the mp_game_settings.
level_ = initial_level_config(state_);
level_ = mp::initial_level_config(state_);
if (level_.empty()) {
return;
}
@ -451,7 +451,7 @@ void connect_engine::start_game(LOAD_USERS load_users)
save_reserved_sides_information();
// Build the gamestate object after updating the level.
level_to_gamestate(level_, state_);
mp::level_to_gamestate(level_, state_);
network::send_data(config("start_game"), 0);
}
@ -570,7 +570,7 @@ void connect_engine::start_game_commandline(
save_reserved_sides_information();
// Build the gamestate object after updating the level
level_to_gamestate(level_, state_);
mp::level_to_gamestate(level_, state_);
network::send_data(config("start_game"), 0);
}
@ -1090,9 +1090,9 @@ bool side_engine::ready_for_start() const
return true;
}
if ((controller_ == mp::CNTR_COMPUTER) ||
(controller_ == mp::CNTR_EMPTY) ||
(controller_ == mp::CNTR_LOCAL)) {
if ((controller_ == CNTR_COMPUTER) ||
(controller_ == CNTR_EMPTY) ||
(controller_ == CNTR_LOCAL)) {
return true;
}
@ -1136,7 +1136,7 @@ bool side_engine::swap_sides_on_drop_target(const unsigned drop_target) {
side_engine& target = *parent_.side_engines_[drop_target];
const std::string target_id = target.player_id_;
const mp::controller target_controller = target.controller_;
const ng::controller target_controller = target.controller_;
const std::string target_ai = target.ai_algorithm_;
if ((controller_lock_ || target.controller_lock_) &&
@ -1261,7 +1261,7 @@ void side_engine::update_current_controller_index()
bool side_engine::controller_changed(const int selection)
{
const mp::controller selected_cntr = controller_options_[selection].first;
const ng::controller selected_cntr = controller_options_[selection].first;
if (selected_cntr == CNTR_LAST) {
return false;
}
@ -1280,7 +1280,7 @@ bool side_engine::controller_changed(const int selection)
return true;
}
void side_engine::set_controller(mp::controller controller)
void side_engine::set_controller(ng::controller controller)
{
controller_ = controller;
@ -1306,7 +1306,7 @@ void side_engine::set_controller_commandline(const std::string& controller_name)
player_id_.clear();
}
void side_engine::add_controller_option(mp::controller controller,
void side_engine::add_controller_option(ng::controller controller,
const std::string& name, const std::string& controller_value)
{
if (controller_lock_ && !cfg_["controller"].empty() &&
@ -1318,4 +1318,4 @@ void side_engine::add_controller_option(mp::controller controller,
controller_options_.push_back(std::make_pair(controller, name));
}
} // end namespace mp
} // end namespace ng

View file

@ -22,7 +22,7 @@
#include "saved_game.hpp"
#include <boost/scoped_ptr.hpp>
namespace mp {
namespace ng {
enum controller {
CNTR_NETWORK = 0,
@ -38,7 +38,7 @@ class side_engine;
typedef boost::scoped_ptr<connect_engine> connect_engine_ptr;
typedef boost::shared_ptr<side_engine> side_engine_ptr;
typedef std::pair<mp::controller, std::string> controller_option;
typedef std::pair<ng::controller, std::string> controller_option;
class connect_engine
{
@ -120,7 +120,7 @@ private:
const mp_game_settings& params_;
const mp::controller default_controller_;
const ng::controller default_controller_;
const bool local_players_only_;
const bool first_scenario_;
@ -165,7 +165,7 @@ public:
void update_controller_options();
void update_current_controller_index();
bool controller_changed(const int selection);
void set_controller(mp::controller controller);
void set_controller(ng::controller controller);
// Game set up from command line helpers.
void set_faction_commandline(const std::string& faction_name);
@ -178,7 +178,7 @@ public:
const std::vector<controller_option>& controller_options()
{ return controller_options_; }
const config& cfg() const { return cfg_; }
mp::controller controller() const { return controller_; }
ng::controller controller() const { return controller_; }
unsigned current_controller_index() const
{ return current_controller_index_; }
int index() const { return index_; }
@ -214,13 +214,13 @@ private:
side_engine(const side_engine& engine);
void operator=(const side_engine&);
void add_controller_option(mp::controller controller,
void add_controller_option(ng::controller controller,
const std::string& name, const std::string& controller_value);
config cfg_;
connect_engine& parent_;
mp::controller controller_;
ng::controller controller_;
unsigned current_controller_index_;
std::vector<controller_option> controller_options_;
@ -242,6 +242,6 @@ private:
flg_manager flg_;
};
} // end namespace mp
} // end namespace ng
#endif

View file

@ -11,7 +11,7 @@
See the COPYING file for more details.
*/
#include "multiplayer_create_engine.hpp"
#include "create_engine.hpp"
#include "game_config_manager.hpp"
#include "game_launcher.hpp"
@ -67,7 +67,7 @@ bool contains_ignore_case(const std::string& str1, const std::string& str2)
}
}
namespace mp {
namespace ng {
static bool less_campaigns_rank(const create_engine::level_ptr& a, const create_engine::level_ptr& b) {
return a->data()["rank"].to_int(1000) < b->data()["rank"].to_int(1000);
@ -1182,4 +1182,4 @@ saved_game& create_engine::get_state()
return state_;
}
} // end namespace mp
} // end namespace ng

View file

@ -17,7 +17,7 @@
#include "config.hpp"
#include "map.hpp"
#include "generators/mapgen.hpp"
#include "mp_depcheck.hpp"
#include "depcheck.hpp"
#include "mp_game_settings.hpp"
#include "game_display.hpp"
@ -27,8 +27,7 @@
class saved_game;
namespace mp {
namespace ng {
class level
{
public:
@ -285,6 +284,5 @@ private:
util::scoped_ptr<map_generator> generator_;
};
} // end namespace mp
} // end namespace ng
#endif

View file

@ -12,7 +12,7 @@
See the COPYING file for more details.
*/
#include "mp_depcheck.hpp"
#include "depcheck.hpp"
#include <algorithm>
@ -20,8 +20,8 @@
#include "gettext.hpp"
#include "log.hpp"
#include "gui/dialogs/mp_depcheck_confirm_change.hpp"
#include "gui/dialogs/mp_depcheck_select_new.hpp"
#include "gui/dialogs/depcheck_confirm_change.hpp"
#include "gui/dialogs/depcheck_select_new.hpp"
#include "gui/dialogs/message.hpp"
static lg::log_domain log_mp_create_depcheck("mp/create/depcheck");
@ -52,7 +52,7 @@ void copy_keys(config& out,
}
} //anonymous namespace
namespace mp
namespace ng
{
namespace depcheck
@ -429,7 +429,7 @@ bool manager::enable_mods_dialog(const std::vector<std::string>& mods,
items.push_back(depinfo_.find_child("modification", "id", mod)["name"]);
}
gui2::tmp_depcheck_confirm_change dialog(true, items, requester);
gui2::tdepcheck_confirm_change dialog(true, items, requester);
return dialog.show(video_);
}
@ -441,7 +441,7 @@ bool manager::disable_mods_dialog(const std::vector<std::string>& mods,
items.push_back(depinfo_.find_child("modification", "id", mod)["name"]);
}
gui2::tmp_depcheck_confirm_change dialog(false, items, requester);
gui2::tdepcheck_confirm_change dialog(false, items, requester);
return dialog.show(video_);
}
@ -452,7 +452,7 @@ std::string manager::change_era_dialog(const std::vector<std::string>& eras)
items.push_back(depinfo_.find_child("era", "id", era)["name"]);
}
gui2::tmp_depcheck_select_new dialog(ERA, items);
gui2::tdepcheck_select_new dialog(ERA, items);
if (dialog.show(video_)) {
return eras[dialog.result()];
@ -469,7 +469,7 @@ std::string
items.push_back(depinfo_.find_child("scenario", "id", scenario)["name"]);
}
gui2::tmp_depcheck_select_new dialog(SCENARIO, items);
gui2::tdepcheck_select_new dialog(SCENARIO, items);
if (dialog.show(video_)) {
return scenarios[dialog.result()];
}
@ -744,4 +744,4 @@ bool manager::change_modifications
} //namespace depcheck
} //namespace mp
} //namespace ng

View file

@ -22,7 +22,7 @@
class CVideo;
namespace mp
namespace ng
{
namespace depcheck
@ -364,6 +364,6 @@ private:
} //namespace depcheck
} //namespace mp
} //namespace ng
#endif

View file

@ -21,7 +21,7 @@
#include <boost/foreach.hpp>
namespace mp {
namespace ng {
#ifdef LOW_MEM
std::string get_RC_suffix(const std::string&, const int)
@ -584,4 +584,4 @@ int flg_manager::gender_index(const std::string& gender) const
return std::distance(choosable_genders_.begin(), it);
}
} // end namespace mp
} // end namespace ng

View file

@ -21,7 +21,7 @@
class config;
namespace mp {
namespace ng {
const std::string random_enemy_picture("units/random-dice.png");
@ -133,6 +133,6 @@ private:
const config* default_leader_cfg_;
};
} // end namespace mp
} // end namespace ng
#endif

View file

@ -41,7 +41,7 @@
#include "log.hpp" // for LOG_STREAM, logger, general, etc
#include "map_exception.hpp"
#include "multiplayer.hpp" // for start_client, etc
#include "multiplayer_create_engine.hpp"
#include "create_engine.hpp"
#include "network.hpp"
#include "playcampaign.hpp" // for play_game, etc
#include "preferences.hpp" // for disable_preferences_save, etc
@ -690,7 +690,7 @@ bool game_launcher::new_campaign()
state_ = saved_game();
state_.classification().campaign_type = game_classification::SCENARIO;
return sp_create_mode(disp(), resources::config_manager->game_config(),
return sp::enter_create_mode(disp(), resources::config_manager->game_config(),
state_, jump_to_campaign_, true);
}

View file

@ -18,7 +18,7 @@
#include "gui/dialogs/dialog.hpp"
#include "config.hpp"
#include "multiplayer_create_engine.hpp"
#include "create_engine.hpp"
namespace gui2
{
@ -26,7 +26,7 @@ namespace gui2
class tcampaign_selection : public tdialog
{
public:
explicit tcampaign_selection(const std::vector<mp::create_engine::level_ptr>& campaigns)
explicit tcampaign_selection(const std::vector<ng::create_engine::level_ptr>& campaigns)
: campaigns_(campaigns), choice_(-1), deterministic_(false)
{
@ -58,7 +58,7 @@ private:
void post_show(twindow& window);
/** Contains the config objects for all campaigns. */
const std::vector<mp::create_engine::level_ptr>& campaigns_;
const std::vector<ng::create_engine::level_ptr>& campaigns_;
/** The chosen campaign. */
int choice_;

View file

@ -14,7 +14,7 @@
#define GETTEXT_DOMAIN "wesnoth-lib"
#include "gui/dialogs/mp_depcheck_confirm_change.hpp"
#include "gui/dialogs/depcheck_confirm_change.hpp"
#include "gui/widgets/settings.hpp"
#include "gui/widgets/window.hpp"
@ -26,9 +26,9 @@ namespace gui2
/*WIKI
* @page = GUIWindowDefinitionWML
* @order = 2_mp_depcheck_confirm_change
* @order = 2_depcheck_confirm_change
*
* == MP Dependency Check: Confirm Change ==
* == SP/MP Dependency Check: Confirm Change ==
*
* Asks the user to confirm a change required to proceed. Currently used
* for enabling/disabling modifications
@ -50,9 +50,9 @@ namespace gui2
* @end{table}
*/
REGISTER_DIALOG(mp_depcheck_confirm_change)
REGISTER_DIALOG(depcheck_confirm_change)
tmp_depcheck_confirm_change::tmp_depcheck_confirm_change(
tdepcheck_confirm_change::tdepcheck_confirm_change(
bool action,
const std::vector<std::string>& mods,
const std::string& requester)

View file

@ -22,7 +22,7 @@
namespace gui2
{
class tmp_depcheck_confirm_change : public tdialog
class tdepcheck_confirm_change : public tdialog
{
public:
/**
@ -34,7 +34,7 @@ public:
* @param requester the name of the component which requests the change
*
*/
tmp_depcheck_confirm_change(bool action,
tdepcheck_confirm_change(bool action,
const std::vector<std::string>& mods,
const std::string& requester);

View file

@ -14,7 +14,7 @@
#define GETTEXT_DOMAIN "wesnoth-lib"
#include "gui/dialogs/mp_depcheck_select_new.hpp"
#include "gui/dialogs/depcheck_select_new.hpp"
#include "gui/auxiliary/find_widget.tpp"
#include "gui/widgets/settings.hpp"
@ -27,9 +27,9 @@ namespace gui2
/*WIKI
* @page = GUIWindowDefinitionWML
* @order = 2_mp_depcheck_select_new
* @order = 2_depcheck_select_new
*
* == MP Dependency Check: Select New ==
* == SP/MP Dependency Check: Select New ==
*
* Offers a list of compatible items if a currently selected one is
* incompatible. Currently used for switching era or map.
@ -52,10 +52,10 @@ namespace gui2
*
*/
REGISTER_DIALOG(mp_depcheck_select_new)
REGISTER_DIALOG(depcheck_select_new)
tmp_depcheck_select_new::tmp_depcheck_select_new(
mp::depcheck::component_type name,
tdepcheck_select_new::tdepcheck_select_new(
ng::depcheck::component_type name,
const std::vector<std::string>& items)
: items_(items), result_(-1)
{
@ -63,17 +63,17 @@ tmp_depcheck_select_new::tmp_depcheck_select_new(
std::string message;
switch(name) {
case mp::depcheck::SCENARIO:
case ng::depcheck::SCENARIO:
message = _("The currently chosen scenario "
"is not compatible with your setup."
"\nPlease select a compatible one.");
break;
case mp::depcheck::ERA:
case ng::depcheck::ERA:
message = _("The currently chosen era "
"is not compatible with your setup."
"\nPlease select a compatible one.");
break;
case mp::depcheck::MODIFICATION:
case ng::depcheck::MODIFICATION:
// currently this can't happen, but be prepared for anything...
message = _("The currently chosen modification "
"is not compatible with your setup."
@ -83,7 +83,7 @@ tmp_depcheck_select_new::tmp_depcheck_select_new(
register_label("message", false, message);
}
void tmp_depcheck_select_new::pre_show(CVideo& /*video*/, twindow& window)
void tdepcheck_select_new::pre_show(CVideo& /*video*/, twindow& window)
{
tlistbox& listbox = find_widget<tlistbox>(&window, "itemlist", false);
@ -98,7 +98,7 @@ void tmp_depcheck_select_new::pre_show(CVideo& /*video*/, twindow& window)
listbox.select_row(0);
}
void tmp_depcheck_select_new::post_show(twindow& window)
void tdepcheck_select_new::post_show(twindow& window)
{
if(get_retval() == twindow::OK) {
tlistbox& listbox = find_widget<tlistbox>(&window, "itemlist", false);

View file

@ -16,14 +16,14 @@
#define GUI_DIALOGS_MP_DEPCHECK_SELECT_NEW_HPP_INCLUDED
#include "gui/dialogs/dialog.hpp"
#include "mp_depcheck.hpp"
#include "depcheck.hpp"
#include <vector>
namespace gui2
{
class tmp_depcheck_select_new : public tdialog
class tdepcheck_select_new : public tdialog
{
public:
/**
@ -32,7 +32,7 @@ public:
* @param name the type of which we want to select a new item
* @param options the names of the components which can be choosed
*/
tmp_depcheck_select_new(mp::depcheck::component_type name,
tdepcheck_select_new(ng::depcheck::component_type name,
const std::vector<std::string>& options);
/**

View file

@ -36,7 +36,7 @@ namespace options
config to_event(const config& options);
// TODO: there's an identical enum in mp_depcheck.hpp, maybe we should factor
// TODO: there's an identical enum in depcheck.hpp, maybe we should factor
// out?
enum elem_type
{

View file

@ -30,7 +30,7 @@
#include "generators/map_create.hpp"
#include "mp_game_utils.hpp"
#include "multiplayer_configure.hpp"
#include "multiplayer_configure_engine.hpp"
#include "configure_engine.hpp"
#include "multiplayer_connect.hpp"
#include "multiplayer_create.hpp"
#include "multiplayer_error_codes.hpp"
@ -490,7 +490,7 @@ static bool enter_connect_mode(game_display& disp, const config& game_config,
statistics::fresh_stats();
{
mp::connect_engine_ptr connect_engine(new mp::connect_engine(state, local_players_only, true));
ng::connect_engine_ptr connect_engine(new ng::connect_engine(state, local_players_only, true));
mp::connect ui(disp, state.mp_settings().name, game_config, gamechat, gamelist,
*connect_engine);
run_lobby_loop(disp, ui);
@ -868,7 +868,7 @@ void start_local_game_commandline(game_display& disp, const config& game_config,
statistics::fresh_stats();
{
mp::connect_engine_ptr connect_engine(new mp::connect_engine(state, true, true));
ng::connect_engine_ptr connect_engine(new ng::connect_engine(state, true, true));
mp::connect ui(disp, parameters.name, game_config, gamechat, gamelist,
*connect_engine);
@ -912,7 +912,7 @@ void start_client(game_display& disp, const config& game_config,
}
}
mp::ui::result goto_mp_connect(game_display& disp, connect_engine& engine,
mp::ui::result goto_mp_connect(game_display& disp, ng::connect_engine& engine,
const config& game_config, const std::string& game_name)
{
mp::ui::result res;

View file

@ -16,7 +16,7 @@
#include "commandline_options.hpp"
#include "mp_game_settings.hpp"
#include "multiplayer_connect_engine.hpp"
#include "connect_engine.hpp"
#include "multiplayer_ui.hpp"
class config;
@ -60,7 +60,7 @@ void start_client(game_display& disp, const config& game_config,
* Opens mp::connect screen and sets game state according to the
* changes made.
*/
mp::ui::result goto_mp_connect(game_display& disp, connect_engine& engine,
mp::ui::result goto_mp_connect(game_display& disp, ng::connect_engine& engine,
const config& game_config, const std::string& game_name);
/**

View file

@ -15,7 +15,7 @@
#ifndef MULTIPLAYER_CONFIGURE_HPP_INCLUDED
#define MULTIPLAYER_CONFIGURE_HPP_INCLUDED
#include "mp_depcheck.hpp"
#include "depcheck.hpp"
#include "mp_game_settings.hpp"
#include "multiplayer_ui.hpp"
#include "widgets/slider.hpp"
@ -24,7 +24,7 @@
#include "generators/mapgen.hpp"
#include "tooltips.hpp"
#include "mp_options.hpp"
#include "multiplayer_configure_engine.hpp"
#include "configure_engine.hpp"
class saved_game;
namespace mp {
@ -97,7 +97,7 @@ private:
bool force_use_map_settings_check_;
saved_game& state_;
mp_game_settings& parameters_;
configure_engine engine_;
ng::configure_engine engine_;
options::manager options_manager_;
};

View file

@ -39,17 +39,17 @@ static lg::log_domain log_mp_connect("mp/connect");
namespace mp {
std::vector<std::string> controller_options_names(
const std::vector<controller_option>& controller_options)
const std::vector<ng::controller_option>& controller_options)
{
std::vector<std::string> names;
BOOST_FOREACH(const controller_option& option, controller_options) {
BOOST_FOREACH(const ng::controller_option& option, controller_options) {
names.push_back(option.second);
}
return names;
}
connect::side::side(connect& parent, side_engine_ptr engine) :
connect::side::side(connect& parent, ng::side_engine_ptr engine) :
parent_(&parent),
engine_(engine),
gold_lock_(engine_->cfg()["gold_lock"].to_bool(
@ -343,7 +343,7 @@ void connect::side::update_controller_ui()
// Adjust the visibility of AI algorithm combo
// and original controller label.
if (!parent_->hidden()) {
if (engine_->controller() == CNTR_COMPUTER) {
if (engine_->controller() == ng::CNTR_COMPUTER) {
// Computer selected, show AI combo.
combo_ai_algorithm_.hide(false);
@ -362,7 +362,7 @@ void connect::side::update_controller_ui()
connect::connect(game_display& disp, const std::string& game_name,
const config& game_config, chat& c, config& gamelist,
connect_engine& engine) :
ng::connect_engine& engine) :
mp::ui(disp, _("Game Lobby: ") + game_name, game_config, c, gamelist),
player_colors_(),
ai_algorithms_(),
@ -409,7 +409,7 @@ connect::connect(game_display& disp, const std::string& game_name,
}
// Sides.
BOOST_FOREACH(side_engine_ptr s, engine_.side_engines()) {
BOOST_FOREACH(ng::side_engine_ptr s, engine_.side_engines()) {
sides_.push_back(side(*this, s));
}
if (sides_.empty() && !game_config::debug) {

View file

@ -18,7 +18,7 @@
#define MULTIPLAYER_CONNECT_H_INCLUDED
#include "commandline_options.hpp"
#include "multiplayer_connect_engine.hpp"
#include "connect_engine.hpp"
#include "multiplayer_ui.hpp"
#include "widgets/combo_drag.hpp"
#include "widgets/scrollpane.hpp"
@ -32,7 +32,7 @@ namespace mp {
// Helper function to retrieve controller names.
std::vector<std::string> controller_options_names(
const std::vector<controller_option>& controller_options);
const std::vector<ng::controller_option>& controller_options);
class connect : public mp::ui
{
@ -40,7 +40,7 @@ public:
class side {
public:
side(connect& parent, side_engine_ptr engine);
side(connect& parent, ng::side_engine_ptr engine);
side(const side& a);
~side();
@ -53,8 +53,8 @@ public:
void add_widgets_to_scrollpane(gui::scrollpane& pane, int pos);
side_engine_ptr engine() { return engine_; }
const side_engine_ptr engine() const { return engine_; }
ng::side_engine_ptr engine() { return engine_; }
const ng::side_engine_ptr engine() const { return engine_; }
private:
// Update UI methods and their helper(s).
@ -63,7 +63,7 @@ public:
// The mp::connect widget owning this mp::connect::side.
connect* parent_;
side_engine_ptr engine_;
ng::side_engine_ptr engine_;
// Flags for controlling which configuration widgets should be locked.
bool gold_lock_;
@ -93,7 +93,7 @@ public:
connect(game_display& disp, const std::string& game_name,
const config& game_config, chat& c, config& gamelist,
connect_engine& engine);
ng::connect_engine& engine);
~connect();
// Updates the current game state, resolves random factions, and sends a
@ -130,7 +130,7 @@ private:
std::vector<ai::description*> ai_algorithms_;
side_list sides_;
connect_engine& engine_;
ng::connect_engine& engine_;
gui::label waiting_label_;
gui::label type_title_label_;

View file

@ -100,16 +100,16 @@ create::create(game_display& disp, const config& cfg, saved_game& state,
levels_menu_.set_numeric_keypress_selection(false);
typedef std::pair<level::TYPE, std::string> level_type_info;
typedef std::pair<ng::level::TYPE, std::string> level_type_info;
std::vector<level_type_info> all_level_types;
all_level_types.push_back(std::make_pair(level::SCENARIO, _("Scenarios")));
all_level_types.push_back(std::make_pair(level::CAMPAIGN, _("Campaigns")));
all_level_types.push_back(std::make_pair(level::USER_MAP, _("User Maps")));
all_level_types.push_back(std::make_pair(level::USER_SCENARIO, _("User Scenarios")));
all_level_types.push_back(std::make_pair(level::RANDOM_MAP, _("Random Maps")));
all_level_types.push_back(std::make_pair(ng::level::SCENARIO, _("Scenarios")));
all_level_types.push_back(std::make_pair(ng::level::CAMPAIGN, _("Campaigns")));
all_level_types.push_back(std::make_pair(ng::level::USER_MAP, _("User Maps")));
all_level_types.push_back(std::make_pair(ng::level::USER_SCENARIO, _("User Scenarios")));
all_level_types.push_back(std::make_pair(ng::level::RANDOM_MAP, _("Random Maps")));
if (game_config::debug) {
all_level_types.push_back(std::make_pair(level::SP_CAMPAIGN,
all_level_types.push_back(std::make_pair(ng::level::SP_CAMPAIGN,
"SP Campaigns"));
}
@ -134,7 +134,7 @@ create::create(game_display& disp, const config& cfg, saved_game& state,
// Set level selection according to the preferences, if possible.
size_t type_index = 0;
BOOST_FOREACH(level::TYPE type, available_level_types_) {
BOOST_FOREACH(ng::level::TYPE type, available_level_types_) {
if (preferences::level_type() == type) {
break;
}
@ -153,7 +153,7 @@ create::create(game_display& disp, const config& cfg, saved_game& state,
init_level_type_changed(level_new_selection);
const std::vector<std::string>& era_names =
engine_.extras_menu_item_names(create_engine::ERA);
engine_.extras_menu_item_names(ng::create_engine::ERA);
if(era_names.empty()) {
gui2::show_transient_message(disp.video(), "", _("No eras found."));
throw config::error(_("No eras found"));
@ -161,11 +161,11 @@ create::create(game_display& disp, const config& cfg, saved_game& state,
eras_menu_.set_items(era_names);
// Set era selection according to the preferences, if possible.
int era_new_selection = engine_.find_extra_by_id(create_engine::ERA,
int era_new_selection = engine_.find_extra_by_id(ng::create_engine::ERA,
preferences::era());
eras_menu_.move_selection((era_new_selection != -1) ? era_new_selection : 0);
std::vector<std::string> mods = engine_.extras_menu_item_names(create_engine::MOD);
std::vector<std::string> mods = engine_.extras_menu_item_names(ng::create_engine::MOD);
BOOST_FOREACH(std::string& mod, mods) {
std::stringstream newval;
newval << IMAGE_PREFIX << "buttons/checkbox.png" << COLUMN_SEPARATOR << mod;
@ -198,7 +198,7 @@ create::~create()
// Save values for next game
DBG_MP << "storing parameter values in preferences" << std::endl;
preferences::set_era(engine_.current_extra(create_engine::ERA).id);
preferences::set_era(engine_.current_extra(ng::create_engine::ERA).id);
preferences::set_level(engine_.current_level().id());
preferences::set_level_type(engine_.current_level_type());
preferences::set_modifications(engine_.active_mods());
@ -226,8 +226,8 @@ void create::process_event()
engine_.prepare_for_era_and_mods();
if (engine_.current_level_type() == level::CAMPAIGN ||
engine_.current_level_type() == level::SP_CAMPAIGN) {
if (engine_.current_level_type() == ng::level::CAMPAIGN ||
engine_.current_level_type() == ng::level::SP_CAMPAIGN) {
std::string difficulty = engine_.select_campaign_difficulty();
if (difficulty == "CANCEL") {
@ -288,7 +288,7 @@ void create::process_event()
if (update_mod_button_label) {
mod_selection_ = mods_menu_.selection();
engine_.set_current_mod_index(mod_selection_);
set_description(engine_.current_extra(create_engine::MOD).description);
set_description(engine_.current_extra(ng::create_engine::MOD).description);
if (engine_.dependency_manager().is_modification_active(mod_selection_)) {
select_mod_.set_label(_("Deactivate"));
} else {
@ -302,7 +302,7 @@ void create::process_event()
if (era_changed) {
engine_.set_current_era_index(era_selection_);
set_description(engine_.current_extra(create_engine::ERA).description);
set_description(engine_.current_extra(ng::create_engine::ERA).description);
synchronize_selections();
}
@ -353,23 +353,23 @@ void create::process_event()
set_description(engine_.current_level().description());
switch (engine_.current_level_type()) {
case level::SCENARIO:
case level::USER_MAP:
case level::USER_SCENARIO:
case level::RANDOM_MAP: {
case ng::level::SCENARIO:
case ng::level::USER_MAP:
case ng::level::USER_SCENARIO:
case ng::level::RANDOM_MAP: {
scenario* current_scenario =
dynamic_cast<scenario*>(&engine_.current_level());
ng::scenario* current_scenario =
dynamic_cast<ng::scenario*>(&engine_.current_level());
players << current_scenario->num_players();
map_size << _("Size: ") << current_scenario->map_size();
break;
}
case level::CAMPAIGN:
case level::SP_CAMPAIGN: {
campaign* current_campaign =
dynamic_cast<campaign*>(&engine_.current_level());
case ng::level::CAMPAIGN:
case ng::level::SP_CAMPAIGN: {
ng::campaign* current_campaign =
dynamic_cast<ng::campaign*>(&engine_.current_level());
players << current_campaign->min_players();
if (current_campaign->max_players() !=
@ -446,13 +446,13 @@ void create::synchronize_selections()
process_event();
}
if (engine_.current_level_type() != level::CAMPAIGN &&
engine_.current_level_type() != level::SP_CAMPAIGN) {
if (engine_.current_level_type() != ng::level::CAMPAIGN &&
engine_.current_level_type() != ng::level::SP_CAMPAIGN) {
if (engine_.current_level().id() !=
engine_.dependency_manager().get_scenario()) {
// Match scenario and scenario type
level::TYPE level_type_at_index;
ng::level::TYPE level_type_at_index;
int index = engine_.find_level_by_id(
engine_.dependency_manager().get_scenario());
size_t type_index;
@ -468,7 +468,7 @@ void create::synchronize_selections()
levels_menu_.set_items(engine_.levels_menu_item_names());
levels_menu_.move_selection(index);
type_index = 0;
BOOST_FOREACH(level::TYPE type, available_level_types_) {
BOOST_FOREACH(ng::level::TYPE type, available_level_types_) {
if (level_type_at_index == type) {
level_type_combo_.set_selected(type_index);
break;
@ -681,7 +681,7 @@ void create::layout_children(const SDL_Rect& rect)
eras_menu_.set_location(xpos, ypos);
// Menu dimensions are only updated when items are set. So do this now.
int erasel_save = eras_menu_.selection();
eras_menu_.set_items(engine_.extras_menu_item_names(create_engine::ERA));
eras_menu_.set_items(engine_.extras_menu_item_names(ng::create_engine::ERA));
eras_menu_.move_selection(erasel_save);
ypos += eras_menu_height;

View file

@ -17,8 +17,8 @@
#ifndef MULTIPLAYER_CREATE_HPP_INCLUDED
#define MULTIPLAYER_CREATE_HPP_INCLUDED
#include "mp_depcheck.hpp"
#include "multiplayer_create_engine.hpp"
#include "depcheck.hpp"
#include "create_engine.hpp"
#include "multiplayer_ui.hpp"
#include "widgets/slider.hpp"
#include "widgets/combo.hpp"
@ -91,9 +91,9 @@ private:
util::scoped_ptr<surface_restorer> image_restorer_;
SDL_Rect image_rect_;
std::vector<level::TYPE> available_level_types_;
std::vector<ng::level::TYPE> available_level_types_;
create_engine engine_;
ng::create_engine engine_;
};
} // end namespace mp

View file

@ -53,7 +53,7 @@ const int leader_pane_border = 10;
namespace mp {
wait::leader_preview_pane::leader_preview_pane(game_display& disp,
flg_manager& flg, const int color) :
ng::flg_manager& flg, const int color) :
gui::preview_pane(disp.video()),
flg_(flg),
color_(color),
@ -114,7 +114,7 @@ void wait::leader_preview_pane::draw_contents()
if (ut) {
const unit_type &utg = ut->get_gender_unit_type(flg_.current_gender());
image = utg.image() + get_RC_suffix(utg.flag_rgb(), color_);
image = utg.image() + ng::get_RC_suffix(utg.flag_rgb(), color_);
}
for(std::vector<std::string>::const_iterator itor = recruit_list.begin();
@ -349,7 +349,7 @@ void wait::join_game(bool observe)
const bool saved_game =
level_.child("multiplayer")["savegame"].to_bool();
flg_manager flg(era_factions, *side_choice, lock_settings, use_map_settings,
ng::flg_manager flg(era_factions, *side_choice, lock_settings, use_map_settings,
saved_game, color);
std::vector<std::string> choices;
@ -561,7 +561,7 @@ void wait::generate_menu()
leader_image = utg.image() + std::string("~RC(") + utg.flag_rgb() + ">" + RCcolor + ")";
#endif
} else {
leader_image = random_enemy_picture;
leader_image = ng::random_enemy_picture;
}
if (!leader_image.empty()) {
// Dumps the "image" part of the faction name, if any,

View file

@ -43,7 +43,7 @@ private:
class leader_preview_pane : public gui::preview_pane
{
public:
leader_preview_pane(game_display& disp, flg_manager& flg,
leader_preview_pane(game_display& disp, ng::flg_manager& flg,
const int color);
bool show_above() const;
@ -56,7 +56,7 @@ private:
virtual void process_event();
virtual void draw_contents();
flg_manager& flg_;
ng::flg_manager& flg_;
const int color_;

View file

@ -36,7 +36,7 @@
#include "map_exception.hpp"
#include "mp_game_utils.hpp"
#include "multiplayer.hpp"
#include "multiplayer_connect_engine.hpp"
#include "connect_engine.hpp"
#include "dialogs.hpp"
#include "gettext.hpp"
#include "resources.hpp"
@ -389,8 +389,8 @@ LEVEL_RESULT play_game(game_display& disp, saved_game& gamestate,
gamestate.mp_settings().saved_game = false;
gamestate.mp_settings().use_map_settings = starting_pos["force_lock_settings"].to_bool();
mp::connect_engine_ptr
connect_engine(new mp::connect_engine(gamestate,
ng::connect_engine_ptr
connect_engine(new ng::connect_engine(gamestate,
!network_game, false));
if (allow_new_game_flag || (game_config::debug && network::nconnections() == 0)) {
@ -405,7 +405,7 @@ LEVEL_RESULT play_game(game_display& disp, saved_game& gamestate,
} else {
// Start the next scenario immediately.
connect_engine->
start_game(mp::connect_engine::FORCE_IMPORT_USERS);
start_game(ng::connect_engine::FORCE_IMPORT_USERS);
}
}
else if (io_type == IO_NONE && gamestate.valid())

View file

@ -5,18 +5,20 @@
#include "gui/widgets/window.hpp"
#include "resources.hpp"
bool sp_create_mode(game_display& disp, const config& game_config,
namespace sp {
bool enter_create_mode(game_display& disp, const config& game_config,
saved_game& state, jump_to_campaign_info jump_to_campaign, bool local_players_only) {
bool configure_canceled = false;
do {
mp::create_engine create_eng(disp, state);
create_eng.set_current_level_type(mp::level::SP_CAMPAIGN);
ng::create_engine create_eng(disp, state);
create_eng.set_current_level_type(ng::level::SP_CAMPAIGN);
std::vector<mp::create_engine::level_ptr> campaigns(
create_eng.get_levels_by_type_unfiltered(mp::level::SP_CAMPAIGN));
std::vector<ng::create_engine::level_ptr> campaigns(
create_eng.get_levels_by_type_unfiltered(ng::level::SP_CAMPAIGN));
if (campaigns.empty()) {
gui2::show_error_message(disp.video(),
@ -85,7 +87,7 @@ bool sp_create_mode(game_display& disp, const config& game_config,
jump_to_campaign.campaign_id_ = "";
}
// canceled difficulty dialog, relaunch the campaign selection dialog
return sp_create_mode(disp, game_config, state, jump_to_campaign, local_players_only);
return enter_create_mode(disp, game_config, state, jump_to_campaign, local_players_only);
}
create_eng.prepare_for_campaign(selected_difficulty);
@ -104,26 +106,28 @@ bool sp_create_mode(game_display& disp, const config& game_config,
state.mp_settings().mp_era = "era_blank";
configure_canceled = !sp_configure_mode(disp, resources::config_manager->game_config(), state, local_players_only);
configure_canceled = !enter_configure_mode(disp, resources::config_manager->game_config(), state, local_players_only);
} while (configure_canceled);
return true;
}
bool sp_configure_mode(game_display& disp, const config& game_config,
bool enter_configure_mode(game_display& disp, const config& game_config,
saved_game& state, bool local_players_only) {
mp::configure_engine engine(state);
ng::configure_engine engine(state);
engine.set_default_values();
return sp_connect_mode(disp, game_config, state, local_players_only);
return enter_connect_mode(disp, game_config, state, local_players_only);
}
bool sp_connect_mode(game_display&, const config&,
bool enter_connect_mode(game_display&, const config&,
saved_game& state, bool local_players_only) {
mp::connect_engine engine(state, local_players_only, true);
ng::connect_engine engine(state, local_players_only, true);
engine.start_game();
return true;
}
} // end namespace sp

View file

@ -16,17 +16,21 @@
#define SINGLEPLAYER_HPP_INCLUDED
#include "game_launcher.hpp"
#include "multiplayer_create_engine.hpp"
#include "multiplayer_configure_engine.hpp"
#include "multiplayer_connect_engine.hpp"
#include "create_engine.hpp"
#include "configure_engine.hpp"
#include "connect_engine.hpp"
bool sp_create_mode(game_display& disp, const config& game_config,
namespace sp {
bool enter_create_mode(game_display& disp, const config& game_config,
saved_game& state, jump_to_campaign_info jump_to, bool local_players_only = true);
bool sp_configure_mode(game_display& disp, const config& game_config,
bool enter_configure_mode(game_display& disp, const config& game_config,
saved_game& state, bool local_players_only = true);
bool sp_connect_mode(game_display& disp, const config& game_config,
bool enter_connect_mode(game_display& disp, const config& game_config,
saved_game& state, bool local_players_only = true);
} // end namespace sp
#endif

View file

@ -55,8 +55,8 @@
#include "gui/dialogs/mp_connect.hpp"
#include "gui/dialogs/mp_create_game.hpp"
#include "gui/dialogs/mp_create_game_set_password.hpp"
#include "gui/dialogs/mp_depcheck_confirm_change.hpp"
#include "gui/dialogs/mp_depcheck_select_new.hpp"
#include "gui/dialogs/depcheck_confirm_change.hpp"
#include "gui/dialogs/depcheck_select_new.hpp"
#include "gui/dialogs/mp_login.hpp"
#include "gui/dialogs/mp_method_selection.hpp"
#include "gui/dialogs/simple_item_selector.hpp"
@ -72,7 +72,7 @@
#include "gui/widgets/settings.hpp"
#include "gui/widgets/window.hpp"
#include "language.hpp"
#include "multiplayer_create_engine.hpp"
#include "create_engine.hpp"
#include "tests/utils/fake_display.hpp"
#include "video.hpp"
#include "wml_exception.hpp"
@ -398,8 +398,8 @@ BOOST_AUTO_TEST_CASE(test_gui2)
test<gui2::tmp_connect>();
test<gui2::tmp_create_game>();
test<gui2::tmp_create_game_set_password>();
test<gui2::tmp_depcheck_confirm_change>();
test<gui2::tmp_depcheck_select_new>();
test<gui2::tdepcheck_confirm_change>();
test<gui2::tdepcheck_select_new>();
test<gui2::tmp_login>();
test<gui2::tmp_method_selection>();
test<gui2::tmp_server_list>();
@ -501,9 +501,9 @@ struct twrapper<gui2::tcampaign_selection>
{
static const config::const_child_itors &ci =
main_config.child_range("campaign");
static std::vector<mp::create_engine::level_ptr> levels;
static std::vector<ng::create_engine::level_ptr> levels;
BOOST_FOREACH(const config& campaign_cfg, ci) {
levels.push_back(mp::create_engine::level_ptr(new mp::campaign(campaign_cfg)));
levels.push_back(ng::create_engine::level_ptr(new ng::campaign(campaign_cfg)));
}
return new gui2::tcampaign_selection(levels);
}
@ -717,22 +717,22 @@ struct twrapper<gui2::tmp_create_game_set_password>
};
template<>
struct twrapper<gui2::tmp_depcheck_confirm_change>
struct twrapper<gui2::tdepcheck_confirm_change>
{
static gui2::tmp_depcheck_confirm_change* create()
static gui2::tdepcheck_confirm_change* create()
{
static std::vector<std::string> mods = boost::assign::list_of("mod_one")("some other")("more");
return new gui2::tmp_depcheck_confirm_change(true, mods, "requester");
return new gui2::tdepcheck_confirm_change(true, mods, "requester");
}
};
template<>
struct twrapper<gui2::tmp_depcheck_select_new>
struct twrapper<gui2::tdepcheck_select_new>
{
static gui2::tmp_depcheck_select_new* create()
static gui2::tdepcheck_select_new* create()
{
static std::vector<std::string> mods = boost::assign::list_of("mod_one")("some other")("more");
return new gui2::tmp_depcheck_select_new(mp::depcheck::MODIFICATION, mods);
return new gui2::tdepcheck_select_new(ng::depcheck::MODIFICATION, mods);
}
};

View file

@ -38,10 +38,10 @@ public:
{}
};*/
class test_mp_connect_engine : public mp::connect_engine {
class test_connect_engine : public ng::connect_engine {
public:
test_mp_connect_engine(game_display& /*disp*/, saved_game& gamestate) :
mp::connect_engine(gamestate, true, true)
test_connect_engine(game_display& /*disp*/, saved_game& gamestate) :
ng::connect_engine(gamestate, true, true)
{}
};
@ -100,21 +100,21 @@ struct mp_connect_fixture {
/* Test classes creation utilities */
static test_mp_connect_engine* create_test_mp_connect_engine()
static test_connect_engine* create_test_connect_engine()
{
test_mp_connect_engine* mp_connect_engine =
new test_mp_connect_engine(*disp, *state);
test_connect_engine* connect_engine =
new test_connect_engine(*disp, *state);
return mp_connect_engine;
return connect_engine;
}
static mp::side_engine* create_mp_side_engine(const config& defaults,
test_mp_connect_engine* connect_engine)
static ng::side_engine* create_side_engine(const config& defaults,
test_connect_engine* connect_engine)
{
config side_cfg = connect_engine->current_config()->child("side");
side_cfg.append(defaults);
return new mp::side_engine(side_cfg, *connect_engine, 0);
return new ng::side_engine(side_cfg, *connect_engine, 0);
}
@ -129,15 +129,15 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Set up side_engine and its dependencies.
state->mp_settings().use_map_settings = true;
state->mp_settings().saved_game = false;
boost::scoped_ptr<test_mp_connect_engine>
connect_engine(create_test_mp_connect_engine());
mp::side_engine_ptr side_engine;
boost::scoped_ptr<test_connect_engine>
connect_engine(create_test_connect_engine());
ng::side_engine_ptr side_engine;
config side;
// Recruit list with no faction.
side.clear();
side["recruit"] = "Elvish Archer";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
//BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
BOOST_CHECK_EQUAL( side_engine->new_config()["recruit"], "Elvish Archer" );
@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Custom faction, no recruits.
side.clear();
side["faction"] = "Custom";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
BOOST_CHECK_EQUAL( side_engine->new_config()["recruit"].empty(), true );
@ -153,21 +153,21 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Random faction.
side.clear();
side["faction"] = "Random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Random" );
// Valid faction.
side.clear();
side["faction"] = "Rebels";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Rebels" );
// Invalid faction.
side.clear();
side["faction"] = "ThisFactionDoesNotExist";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_factions().size() > 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Random" );
@ -175,7 +175,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side.clear();
side["recruit"] = "Elvish Archer";
side["faction"] = "Undead";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
//BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
//BOOST_CHECK_EQUAL( side_engine->new_config()["recruit"], "Elvish Archer" );
@ -183,7 +183,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Carried over recruits.
side.clear();
side["previous_recruits"] = "Elvish Archer";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_factions().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
BOOST_CHECK_EQUAL( side_engine->new_config()["previous_recruits"],
@ -192,7 +192,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Valid leader unit.
side.clear();
side["type"] = "Shadow";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "Shadow" );
BOOST_CHECK_EQUAL( side_engine->new_config()["type"], "Shadow" );
@ -200,28 +200,28 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Invalid leader unit.
side.clear();
side["type"] = "ThisUnitDoesNotExist";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "null" );
// No leader, Custom faction.
side.clear();
side["faction"] = "Custom";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_leaders().size() > 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "random" );
// No leader, Random faction.
side.clear();
side["faction"] = "Random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "null" );
// No leader, regular faction.
side.clear();
side["faction"] = "Undead";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_leaders().size() > 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "random" );
@ -232,34 +232,34 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
config& unit = side.add_child("unit");
unit["id"] = "LeaderID";
unit["type"] = "Elvish Ranger";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "Elvish Ranger" );
// Random leader.
side.clear();
side["type"] = "random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
// Leader with both genders.
side.clear();
side["type"] = "Elvish Archer";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 3 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "random" );
// Leader with only male gender.
side.clear();
side["type"] = "Swordsman";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "male" );
// Leader with only female gender.
side.clear();
side["type"] = "Elvish Druid";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "female" );
@ -267,7 +267,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side.clear();
side["type"] = "White Mage";
side["gender"] = "female";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "female" );
@ -275,7 +275,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side.clear();
side["type"] = "Troll";
side["gender"] = "female";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "male" );
@ -283,21 +283,21 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side.clear();
side["type"] = "White Mage";
side["gender"] = "random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
//BOOST_CHECK_EQUAL( side_engine->flg().choosable_genders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "random" );
// No leader.
side.clear();
side["no_leader"] = true;
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "null" );
// Resolve random faction.
side.clear();
side["faction"] = "Random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->resolve_random();
BOOST_CHECK( side_engine->flg().current_faction()["id"] != "Random" );
BOOST_CHECK( side_engine->flg().current_leader() != "random" &&
@ -309,7 +309,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side.clear();
side["faction"] = "Random";
side["type"] = "Troll";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->resolve_random();
BOOST_CHECK( side_engine->flg().current_faction()["id"] != "Random" );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "Troll" );
@ -321,7 +321,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
side["faction"] = "Random";
side["type"] = "White Mage";
side["gender"] = "male";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->resolve_random();
BOOST_CHECK( side_engine->flg().current_faction()["id"] != "Random" );
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "White Mage" );
@ -330,7 +330,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
// Resolve random leader.
side.clear();
side["type"] = "random";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->resolve_random();
BOOST_CHECK( side_engine->flg().current_leader() != "random" );
}
@ -340,22 +340,22 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings )
// Set up side_engine and its dependencies.
state->mp_settings().use_map_settings = false;
state->mp_settings().saved_game = false;
boost::scoped_ptr<test_mp_connect_engine>
connect_engine(create_test_mp_connect_engine());
mp::side_engine_ptr side_engine;
boost::scoped_ptr<test_connect_engine>
connect_engine(create_test_connect_engine());
ng::side_engine_ptr side_engine;
config side;
// Recruit list with no faction.
side.clear();
side["recruit"] = "Elvish Archer";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_factions().size() > 1 );
//BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
// Custom faction, no recruits.
side.clear();
side["faction"] = "Custom";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_factions().size() > 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
BOOST_CHECK_EQUAL( side_engine->new_config()["recruit"].empty(), true );
@ -363,7 +363,7 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings )
// Carried over recruits.
side.clear();
side["previous_recruits"] = "Elvish Archer";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_factions().size() > 1 );
BOOST_CHECK_EQUAL( side_engine->flg().current_faction()["id"], "Custom" );
BOOST_CHECK_EQUAL( side_engine->new_config()["previous_recruits"],
@ -372,7 +372,7 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings )
// Explicit leader for faction with multiple leaders.
side.clear();
side["type"] = "Goblin Impaler";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->flg().set_current_faction("Rebels");
BOOST_CHECK( side_engine->flg().choosable_leaders().size() > 1 );
@ -380,7 +380,7 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings )
side.clear();
side["faction"] = "Custom";
side["type"] = "Swordsman";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
BOOST_CHECK( side_engine->flg().choosable_leaders().size() > 1 );
const std::vector<std::string>& leaders =
side_engine->flg().choosable_leaders();
@ -390,7 +390,7 @@ BOOST_AUTO_TEST_CASE( flg_no_map_settings )
// Explicit gender for unit with both genders available.
side.clear();
side["gender"] = "female";
side_engine.reset(create_mp_side_engine(side, connect_engine.get()));
side_engine.reset(create_side_engine(side, connect_engine.get()));
side_engine->flg().set_current_faction("Rebels");
side_engine->flg().set_current_leader("Elvish Ranger");
BOOST_CHECK_EQUAL( side_engine->flg().current_gender(), "random" );