Remove the old and now unused commandline MP game function:

play_multiplayer_mode()
This commit is contained in:
Matthias Schoeck 2013-01-17 00:34:19 +00:00
parent 2c5b1fb336
commit 183c92b61f
6 changed files with 0 additions and 280 deletions

View file

@ -528,10 +528,6 @@ static int do_gameloop(int argc, char** argv)
return 0;
}
//if(game->play_multiplayer_mode() == false) {
// return 0;
//}
if(game->play_screenshot_mode() == false) {
return 0;
}

View file

@ -366,274 +366,6 @@ bool game_controller::play_screenshot_mode()
return false;
}
bool game_controller::play_multiplayer_mode()
{
state_ = game_state();
if(!cmdline_opts_.multiplayer) {
return true;
}
std::string era = "era_default";
std::string scenario = "multiplayer_The_Freelands";
std::map<int,std::string> side_types, side_controllers, side_algorithms, side_ai_configs;
std::map<int,utils::string_map> side_parameters;
std::string turns = "50";
std::string label = "";
size_t sides_counted = 0;
if (cmdline_opts_.multiplayer_ai_config)
{
for(std::vector<boost::tuple<unsigned int, std::string> >::const_iterator it=cmdline_opts_.multiplayer_ai_config->begin(); it!=cmdline_opts_.multiplayer_ai_config->end(); ++it)
{
const unsigned int side = it->get<0>();
const std::string ai_cfg_name = it->get<1>();
if (side > sides_counted)
{
std::cerr << "counted sides: " << side << "\n";
sides_counted = side;
}
side_ai_configs[side] = ai_cfg_name;
}
}
if (cmdline_opts_.multiplayer_algorithm)
{
for(std::vector<boost::tuple<unsigned int, std::string> >::const_iterator it=cmdline_opts_.multiplayer_algorithm->begin(); it!=cmdline_opts_.multiplayer_algorithm->end(); ++it)
{
const unsigned int side = it->get<0>();
const std::string algorithm_id = it->get<1>();
if (side > sides_counted)
{
std::cerr << "counted sides: " << side << "\n";
sides_counted = side;
}
side_algorithms[side] = algorithm_id;
}
}
if (cmdline_opts_.multiplayer_controller)
{
for(std::vector<boost::tuple<unsigned int, std::string> >::const_iterator it=cmdline_opts_.multiplayer_controller->begin(); it!=cmdline_opts_.multiplayer_controller->end(); ++it)
{
const unsigned int side = it->get<0>();
const std::string controller_id = it->get<1>();
if (side > sides_counted)
{
std::cerr << "counted sides: " << side << "\n";
sides_counted = side;
}
side_controllers[side] = controller_id;
}
}
if (cmdline_opts_.multiplayer_era)
era = *cmdline_opts_.multiplayer_era;
if (cmdline_opts_.multiplayer_exit_at_end)
game_config::exit_at_end = true;
if (cmdline_opts_.multiplayer_label)
label = *cmdline_opts_.multiplayer_label;
if (cmdline_opts_.multiplayer_parm)
{
for(std::vector<boost::tuple<unsigned int, std::string, std::string> >::const_iterator it=cmdline_opts_.multiplayer_parm->begin(); it!=cmdline_opts_.multiplayer_parm->end(); ++it)
{
const unsigned int side = it->get<0>();
const std::string param_name = it->get<1>();
const std::string param_value = it->get<2>();
side_parameters[side][param_name] = param_value;
}
}
if (cmdline_opts_.multiplayer_scenario)
scenario = *cmdline_opts_.multiplayer_scenario;
if (cmdline_opts_.multiplayer_side)
{
for(std::vector<boost::tuple<unsigned int, std::string> >::const_iterator it=cmdline_opts_.multiplayer_side->begin(); it!=cmdline_opts_.multiplayer_side->end(); ++it)
{
const unsigned int side = it->get<0>();
const std::string faction_id = it->get<1>();
if (side > sides_counted)
{
std::cerr << "counted sides: " << side << "\n";
sides_counted = side;
}
side_types[side] = faction_id;
}
}
if (cmdline_opts_.multiplayer_turns)
turns = *cmdline_opts_.multiplayer_turns;
const config &lvl = game_config().find_child("multiplayer", "id", scenario);
if (!lvl) {
std::cerr << "Could not find scenario '" << scenario << "'\n";
return false;
}
state_.classification().campaign_type = "multiplayer";
state_.carryover_sides_start["next_scenario"] = "";
state_.snapshot = config();
config level = lvl;
const config &era_cfg = game_config().find_child("era","id",era);
if (!era_cfg) {
std::cerr << "Could not find era '" << era << "'\n";
return false;
}
level["turns"] = turns;
const config &side = era_cfg.child("multiplayer_side");
if (!side) {
std::cerr << "Could not find multiplayer side\n";
return false;
}
while (level.child_count("side") < sides_counted) {
std::cerr << "now adding side...\n";
level.add_child("side");
}
int side_num = 1;
BOOST_FOREACH(config &s, level.child_range("side"))
{
std::map<int,std::string>::const_iterator type = side_types.find(side_num),
controller = side_controllers.find(side_num),
algorithm = side_algorithms.find(side_num),
ai_config = side_ai_configs.find(side_num);
const config* side = type == side_types.end() ?
&era_cfg.find_child("multiplayer_side", "random_faction", "yes") :
&era_cfg.find_child("multiplayer_side", "id", type->second);
if (!*side) {
std::string side_name = (type == side_types.end() ? "default" : type->second);
std::cerr << "Could not find side '" << side_name << "' for side " << side_num << "\n";
return false;
}
if ((*side)["random_faction"].to_bool())
{
std::vector<std::string> faction_choices, faction_excepts;
faction_choices = utils::split((*side)["choices"]);
if(faction_choices.size() == 1 && faction_choices.front() == "") {
faction_choices.clear();
}
faction_excepts = utils::split((*side)["except"]);;
if(faction_excepts.size() == 1 && faction_excepts.front() == "") {
faction_excepts.clear();
}
unsigned j = 0;
BOOST_FOREACH(const config &faction, era_cfg.child_range("multiplayer_side"))
{
if (faction["random_faction"].to_bool()) continue;
const std::string &faction_id = faction["id"];
if (!faction_choices.empty() &&
std::find(faction_choices.begin(), faction_choices.end(), faction_id) == faction_choices.end())
continue;
if (!faction_excepts.empty() &&
std::find(faction_excepts.begin(), faction_excepts.end(), faction_id) != faction_excepts.end())
continue;
if (rand() % ++j == 0)
side = &faction;
}
if ((*side)["random_faction"].to_bool()) {
std::cerr << "Could not find any non-random faction for side " << side_num << "\n";
return false;
}
std::cerr << " Faction " << (*side)["name"] <<
" selected for side " << side_num << ".\n";
}
s["side"] = side_num;
s["canrecruit"] = true;
s.append(*side);
if(controller != side_controllers.end()) {
s["controller"] = controller->second;
}
if(algorithm != side_algorithms.end()) {
s["ai_algorithm"] = algorithm->second;
}
if(ai_config != side_ai_configs.end()) {
s["ai_config"] = ai_config->second;
}
// Choose a random leader
std::vector<std::string> types = utils::split(s["random_leader"]);
if (!types.empty()) {
const int lchoice = rand() % types.size();
s["type"] = types[lchoice];
} else {
// If random_leader= doesn't exists, we use leader=
types = utils::split(s["leader"]);
if (!types.empty()) {
const int lchoice = rand() % types.size();
s["type"] = types[lchoice];
} else {
std::cerr << "Could not find any valid leader type for side " << side_num << "\n";
return false;
}
}
// Set gender for the leader
const unit_type *ut = unit_types.find(s["type"]);
if (ut) {
const std::vector<unit_race::GENDER> glist = ut->genders();
const int gchoice = rand() % glist.size();
unit_race::GENDER sgender = glist[gchoice];
switch (sgender)
{
case unit_race::FEMALE:
s["gender"] = unit_race::s_female;
break;
case unit_race::MALE:
s["gender"] = unit_race::s_male;
break;
default:
s["gender"] = "null";
}
} else {
std::cerr << "Could not obtain genders for leader of side " << side_num << "\n";
return false;
}
std::cerr << " " << s["type"] << " of " << s["gender"] << " gender selected as leader.\n";
config& ai_params = s.add_child("ai");
//now add in any arbitrary parameters given to the side
for(utils::string_map::const_iterator j = side_parameters[side_num].begin(); j != side_parameters[side_num].end(); ++j) {
s[j->first] = j->second;
ai_params[j->first] = j->second;
}
++side_num;
}
level.add_child("era", era_cfg);
try {
recorder.add_log_data("ai_log","ai_label",label);
state_.snapshot = level;
level.add_child("replay_start", level);
state_.replay_start() = level.child("replay_start");
play_game(disp(), state_, game_config());
} catch (game::load_game_exception &) {
//the user's trying to load a game, so go into the normal title screen loop and load one
return true;
} catch(twml_exception& e) {
e.show(disp());
return false;
} catch(std::exception& e) {
std::cerr << "caught exception: " << e.what() << "\n";
} catch(...) {
std::cerr << "caught unknown error playing level...\n";
}
return false;
}
bool game_controller::is_loading() const
{
return !game::load_game_exception::game.empty();

View file

@ -51,7 +51,6 @@ public:
bool init_config() { return init_config(false); }
bool play_test();
bool play_multiplayer_mode();
bool play_screenshot_mode();
void reload_changed_game_config();

View file

@ -36,7 +36,6 @@ public:
bool init_language();
bool init_joystick();
virtual bool play_test() = 0;
virtual bool play_multiplayer_mode() = 0;
virtual bool play_screenshot_mode() = 0;
virtual void reload_changed_game_config() = 0;

View file

@ -39,11 +39,6 @@ bool game_controller_new::play_test()
return true;
}
bool game_controller_new::play_multiplayer_mode()
{
return true;
}
bool game_controller_new::play_screenshot_mode()
{
return true;

View file

@ -27,7 +27,6 @@ public:
bool init_config();
bool play_test();
bool play_multiplayer_mode();
bool play_screenshot_mode();
void reload_changed_game_config();