Author: zaroth
Date: Thu Jun 9 11:53:16 2011
New Revision: 49821
URL: http://svn.gna.org/viewcvs/wesnoth?rev=49821&view=rev
Log:
added controller, era and label options to commandline_options
Modified:
trunk/src/commandline_options.cpp
trunk/src/game_controller.cpp
trunk/src/tests/test_commandline_options.cpp
Modified: trunk/src/commandline_options.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/commandline_options.cpp?rev=49821&r1=49820&r2=49821&view=diff
==============================================================================
--- trunk/src/commandline_options.cpp (original)
+++ trunk/src/commandline_options.cpp Thu Jun 9 11:53:16 2011
@@ -171,11 +171,14 @@
po::options_description multiplayer_opts("Multiplayer options");
multiplayer_opts.add_options()
("multiplayer,m", "Starts a multiplayer game. There are
additional options that can be used as explained below:")
- ("ai-config", po::value<std::vector<std::string>
>()->composing(), "arg should have format side:value\nselects a configuration
file to load for this side.")
+ ("ai-config", po::value<std::vector<std::string>
>()->composing(), "selects a configuration file to load for this side. <arg>
should have format side:value")
+ ("controller", po::value<std::vector<std::string>
>()->composing(), "selects the controller for this side. <arg> should have
format side:value")
+ ("era", po::value<std::string>(), "selects the era to be played
in by its id.")
("exit-at-end", "exit Wesnoth at the end of the scenario.")
+ ("label", po::value<std::string>(), "sets the label for AIs.")
//TODO is the description precise? this option was undocumented before.
("nogui", "runs the game without the GUI.")
("scenario", po::value<std::string>(), "selects a multiplayer
scenario. The default scenario is \"multiplayer_The_Freelands\".")
- ("side", po::value<std::vector<std::string> >()->composing(),
"<arg> should have format side:value. selects a faction of the current era for
this side by id.")
+ ("side", po::value<std::vector<std::string> >()->composing(),
"selects a faction of the current era for this side by id. <arg> should have
format side:value.")
("turns", po::value<std::string>(), "sets the number of turns.
The default is \"50\".")
;
@@ -227,6 +230,8 @@
config_dir = vm["config-dir"].as<std::string>();
if (vm.count("config-path"))
config_path = true;
+ if (vm.count("controller"))
+ multiplayer_controller =
parse_to_uint_string_tuples_(vm["controller"].as<std::vector<std::string> >());
if (vm.count("data-dir"))
data_dir = vm["data-dir"].as<std::string>();
if (vm.count("debug"))
@@ -239,6 +244,8 @@
#endif
if (vm.count("editor"))
editor = vm["editor"].as<std::string>();
+ if (vm.count("era"))
+ multiplayer_era = vm["era"].as<std::string>();
if (vm.count("exit-at-end"))
multiplayer_exit_at_end = true;
if (vm.count("fps"))
@@ -251,6 +258,8 @@
gzip = vm["gzip"].as<std::string>();
if (vm.count("help"))
help = true;
+ if (vm.count("label"))
+ multiplayer_label = vm["label"].as<std::string>();
if (vm.count("load"))
load = vm["load"].as<std::string>();
if (vm.count("log-error"))
Modified: trunk/src/game_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_controller.cpp?rev=49821&r1=49820&r2=49821&view=diff
==============================================================================
--- trunk/src/game_controller.cpp (original)
+++ trunk/src/game_controller.cpp Thu Jun 9 11:53:16 2011
@@ -478,8 +478,26 @@
side_ai_configs[side] = ai_cfg_name;
}
}
+ 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_scenario)
scenario = *cmdline_opts_.multiplayer_scenario;
if (cmdline_opts_.multiplayer_side)
@@ -518,13 +536,7 @@
const bool last_digit = isdigit(name_tail) ? true:false;
const size_t side = name_tail - '0';
- if(name == "--era") {
- era = value;
- } else if(name == "--label") {
- label = value;
- } else if(last_digit && name_head == "--controller") {
- side_controllers[side] = value;
- } else if(last_digit && name_head == "--algorithm") {
+ if(last_digit && name_head == "--algorithm") {
side_algorithms[side] = value;
} else if(last_digit && name_head == "--parm") {
const std::vector<std::string> name_value =
utils::split(value, ':');
@@ -655,7 +667,6 @@
try {
recorder.add_log_data("ai_log","ai_label",label);
-
state_.snapshot = level;
play_game(disp(), state_, game_config());
} catch (game::load_game_exception &) {
Modified: trunk/src/tests/test_commandline_options.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/tests/test_commandline_options.cpp?rev=49821&r1=49820&r2=49821&view=diff
==============================================================================
--- trunk/src/tests/test_commandline_options.cpp (original)
+++ trunk/src/tests/test_commandline_options.cpp Thu Jun 9 11:53:16 2011
@@ -191,6 +191,8 @@
"--clock",
"--config-dir=configdirfoo",
"--config-path",
+ "--controller=1:confoo",
+ "--controller=2:conbar",
"--data-dir=datadirfoo",
"--debug",
#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
@@ -198,12 +200,14 @@
"--debug-dot-level=dlfoo",
#endif
"--editor=editfoo",
+ "--era=erafoo",
"--exit-at-end",
"--fps",
"--fullscreen",
"--gunzip=gunzipfoo.gz",
"--gzip=gzipfoo",
"--help",
+ "--label=labelfoo",
"--load=loadfoo",
"--log-error=errfoo,errbar/*",
"--log-warning=warnfoo,warnfoo/bar",
@@ -285,10 +289,12 @@
BOOST_CHECK(co.multiplayer_ai_config->at(0).get<0>() == 1 &&
co.multiplayer_ai_config->at(0).get<1>() == "aifoo");
BOOST_CHECK(co.multiplayer_ai_config->at(1).get<0>() == 2 &&
co.multiplayer_ai_config->at(1).get<1>() == "aibar");
BOOST_CHECK(!co.multiplayer_algorithm);
- BOOST_CHECK(!co.multiplayer_controller);
- BOOST_CHECK(!co.multiplayer_era);
+ BOOST_CHECK(co.multiplayer_controller);
+ BOOST_CHECK(co.multiplayer_controller->at(0).get<0>() == 1 &&
co.multiplayer_controller->at(0).get<1>() == "confoo");
+ BOOST_CHECK(co.multiplayer_controller->at(1).get<0>() == 2 &&
co.multiplayer_controller->at(1).get<1>() == "conbar");
+ BOOST_CHECK(co.multiplayer_era && *co.multiplayer_era == "erafoo");
BOOST_CHECK(co.multiplayer_exit_at_end);
- BOOST_CHECK(!co.multiplayer_label);
+ BOOST_CHECK(co.multiplayer_label && *co.multiplayer_label ==
"labelfoo");
BOOST_CHECK(!co.multiplayer_parm);
BOOST_CHECK(co.multiplayer_scenario && *co.multiplayer_scenario ==
"scenfoo");
BOOST_CHECK(co.multiplayer_side);
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits