Author: zaroth
Date: Thu Jun 9 11:53:18 2011
New Revision: 49822
URL: http://svn.gna.org/viewcvs/wesnoth?rev=49822&view=rev
Log:
Added algorithm option 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=49822&r1=49821&r2=49822&view=diff
==============================================================================
--- trunk/src/commandline_options.cpp (original)
+++ trunk/src/commandline_options.cpp Thu Jun 9 11:53:18 2011
@@ -172,6 +172,7 @@
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(), "selects a configuration file to load for this side. <arg>
should have format side:value")
+ ("algorithm", po::value<std::vector<std::string>
>()->composing(), "selects a non-standard algorithm to be used by the AI
controller 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.")
@@ -216,6 +217,8 @@
if (vm.count("ai-config"))
multiplayer_ai_config =
parse_to_uint_string_tuples_(vm["ai-config"].as<std::vector<std::string> >());
+ if (vm.count("algorithm"))
+ multiplayer_algorithm =
parse_to_uint_string_tuples_(vm["algorithm"].as<std::vector<std::string> >());
if (vm.count("bpp"))
bpp = vm["bpp"].as<int>();
if (vm.count("campaign"))
Modified: trunk/src/game_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_controller.cpp?rev=49822&r1=49821&r2=49822&view=diff
==============================================================================
--- trunk/src/game_controller.cpp (original)
+++ trunk/src/game_controller.cpp Thu Jun 9 11:53:18 2011
@@ -478,6 +478,20 @@
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)
@@ -536,9 +550,7 @@
const bool last_digit = isdigit(name_tail) ? true:false;
const size_t side = name_tail - '0';
- if(last_digit && name_head == "--algorithm") {
- side_algorithms[side] = value;
- } else if(last_digit && name_head == "--parm") {
+ if(last_digit && name_head == "--parm") {
const std::vector<std::string> name_value =
utils::split(value, ':');
if(name_value.size() != 2) {
std::cerr << "argument to '" << name <<
"' must be in the format name:value\n";
Modified: trunk/src/tests/test_commandline_options.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/tests/test_commandline_options.cpp?rev=49822&r1=49821&r2=49822&view=diff
==============================================================================
--- trunk/src/tests/test_commandline_options.cpp (original)
+++ trunk/src/tests/test_commandline_options.cpp Thu Jun 9 11:53:18 2011
@@ -184,6 +184,8 @@
"wesnoth",
"--ai-config=1:aifoo",
"--ai-config=2:aibar",
+ "--algorithm=3:algfoo",
+ "--algorithm=4:algbar",
"--bpp=32",
"--campaign=campfoo",
"--campaign-difficulty=16",
@@ -191,8 +193,8 @@
"--clock",
"--config-dir=configdirfoo",
"--config-path",
- "--controller=1:confoo",
- "--controller=2:conbar",
+ "--controller=5:confoo",
+ "--controller=6:conbar",
"--data-dir=datadirfoo",
"--debug",
#ifdef DEBUG_WINDOW_LAYOUT_GRAPHS
@@ -288,10 +290,12 @@
BOOST_CHECK(co.multiplayer_ai_config->size() == 2);
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_algorithm);
+ BOOST_CHECK(co.multiplayer_algorithm->at(0).get<0>() == 3 &&
co.multiplayer_algorithm->at(0).get<1>() == "algfoo");
+ BOOST_CHECK(co.multiplayer_algorithm->at(1).get<0>() == 4 &&
co.multiplayer_algorithm->at(1).get<1>() == "algbar");
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_controller->at(0).get<0>() == 5 &&
co.multiplayer_controller->at(0).get<1>() == "confoo");
+ BOOST_CHECK(co.multiplayer_controller->at(1).get<0>() == 6 &&
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 && *co.multiplayer_label ==
"labelfoo");
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits