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

Reply via email to