Remove the old and now unused commandline MP game function:
play_multiplayer_mode()
This commit is contained in:
parent
2c5b1fb336
commit
183c92b61f
6 changed files with 0 additions and 280 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -27,7 +27,6 @@ public:
|
|||
|
||||
bool init_config();
|
||||
bool play_test();
|
||||
bool play_multiplayer_mode();
|
||||
bool play_screenshot_mode();
|
||||
|
||||
void reload_changed_game_config();
|
||||
|
|
Loading…
Add table
Reference in a new issue