Author: zaroth
Date: Thu Jun 9 11:53:08 2011
New Revision: 49818
URL: http://svn.gna.org/viewcvs/wesnoth?rev=49818&view=rev
Log:
Added campaign, campaign-difficulty and campaign-scenario to
commandline_options. (previous option was --campaign with weird syntax
afterwards)
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=49818&r1=49817&r2=49818&view=diff
==============================================================================
--- trunk/src/commandline_options.cpp (original)
+++ trunk/src/commandline_options.cpp Thu Jun 9 11:53:08 2011
@@ -141,6 +141,9 @@
po::options_description campaign_opts("Campaign options");
campaign_opts.add_options()
+ ("campaign,c",
po::value<std::string>()->implicit_value(std::string()), "goes directly to the
campaign with id <arg>. A selection menu will appear if no id was specified")
+ ("campaign-difficulty", po::value<int>(), "the difficulty of
the specified campaign (1 to max - default is 1)")
+ ("campaign-scenario", po::value<std::string>(),"the id of the
scenario from the specified campaign")
;
po::options_description display_opts("Display options");
@@ -206,6 +209,12 @@
multiplayer_ai_config =
parse_to_int_string_tuples_(vm["ai-config"].as<std::vector<std::string> >());
if (vm.count("bpp"))
bpp = vm["bpp"].as<int>();
+ if (vm.count("campaign"))
+ campaign = vm["campaign"].as<std::string>();
+ if (vm.count("campaign-difficulty"))
+ campaign_difficulty = vm["campaign-difficulty"].as<int>();
+ if (vm.count("campaign-scenario"))
+ campaign_scenario = vm["campaign-scenario"].as<std::string>();
if (vm.count("clock"))
clock = true;
if (vm.count("config-dir"))
Modified: trunk/src/game_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_controller.cpp?rev=49818&r1=49817&r2=49818&view=diff
==============================================================================
--- trunk/src/game_controller.cpp (original)
+++ trunk/src/game_controller.cpp Thu Jun 9 11:53:08 2011
@@ -119,6 +119,23 @@
if (cmdline_opts_.bpp)
force_bpp_ = *cmdline_opts_.bpp;
+ if (cmdline_opts_.campaign)
+ {
+ jump_to_campaign_.jump_ = true;
+ jump_to_campaign_.campaign_id_ = *cmdline_opts_.campaign;
+ std::cerr<<"selected campaign id:
["<<jump_to_campaign_.campaign_id_<<"]\n";
+ if (cmdline_opts_.campaign_difficulty)
+ jump_to_campaign_.difficulty_ =
*cmdline_opts_.campaign_difficulty;
+ else
+ jump_to_campaign_.difficulty_ = 1; // it's the default
+ std::cerr<<"selected difficulty:
["<<jump_to_campaign_.difficulty_<<"]\n";
+
+ if (cmdline_opts_.campaign_scenario)
+ {
+ jump_to_campaign_.scenario_id_ =
*cmdline_opts_.campaign_scenario;
+ std::cerr<<"selected scenario id:
["<<jump_to_campaign_.scenario_id_<<"]\n";
+ }
+ }
if (cmdline_opts_.clock)
gui2::show_debug_clock_button = true;
if (cmdline_opts_.debug) {
@@ -253,42 +270,6 @@
if (cmdline_opts_.with_replay)
game::load_game_exception::show_replay = true;
- for(arg_ = 1; arg_ != argc_; ++arg_) {
- const std::string val(argv_[arg_]);
- if(val.empty()) {
- continue;
- }
- else if(val.find("--campaign") == 0 || val.find("-c") == 0) {
- // campaign starting template:
- // -c[[<difficulty>] <id_campaign> [<id_scenario>]]
- // --campaign[[<difficulty>] <id_campaign>
[<id_scenario>]]
- jump_to_campaign_.jump_ = true;
-
- // we don't know if the next argument is from --campaign
- // or for setting the data directory, so we assume is
the latter
- if (arg_ + 2 < argc_ && argv_[arg_+1][0] != '-')
- {
- // we parse difficulty only here, since a
campaign is supplied from command line
- if (isdigit(val[val.size()-1]))
- jump_to_campaign_.difficulty_ =
lexical_cast<int>(val[val.size()-1]);
-
- ++arg_;
- jump_to_campaign_.campaign_id_ =
std::string(argv_[arg_]);
- std::cerr<<"selected campaign id:
["<<jump_to_campaign_.campaign_id_
- <<"] | difficulty:
["<<jump_to_campaign_.difficulty_<<"]\n";
- }
-
- if (arg_ + 2 < argc_ && argv_[arg_+1][0] != '-')
- {
- ++arg_;
- jump_to_campaign_.scenario_id_ =
std::string(argv_[arg_]);
- std::cerr<<"selected scenario id:
["<<jump_to_campaign_.scenario_id_<<"]\n";
- }
- } else if(val[0] == '-') {
- std::cerr << "unknown option: " << val << std::endl;
- //throw config::error("unknown option"); TODO will be
unnecessary here once commandline_options is completed
- }
- }
std::cerr << '\n';
std::cerr << "Data directory: " << game_config::path
<< "\nUser configuration directory: " << get_user_config_dir()
Modified: trunk/src/tests/test_commandline_options.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/tests/test_commandline_options.cpp?rev=49818&r1=49817&r2=49818&view=diff
==============================================================================
--- trunk/src/tests/test_commandline_options.cpp (original)
+++ trunk/src/tests/test_commandline_options.cpp Thu Jun 9 11:53:08 2011
@@ -97,6 +97,7 @@
const char *argv[] =
{
"wesnoth",
+ "--campaign",
"--editor",
"--logdomains",
"--preprocess-output-macros",
@@ -107,7 +108,7 @@
commandline_options co(argc,const_cast<char**>(argv));
BOOST_CHECK(!co.bpp);
- BOOST_CHECK(!co.campaign);
+ BOOST_CHECK(co.campaign && co.campaign->empty());
BOOST_CHECK(!co.campaign_difficulty);
BOOST_CHECK(!co.campaign_scenario);
BOOST_CHECK(!co.clock);
@@ -180,6 +181,9 @@
"--ai-config=1:aifoo",
"--ai-config=2:aibar",
"--bpp=32",
+ "--campaign=campfoo",
+ "--campaign-difficulty=16",
+ "--campaign-scenario=scenfoo",
"--clock",
"--config-dir=configdirfoo",
"--config-path",
@@ -236,9 +240,9 @@
commandline_options co(argc,const_cast<char**>(argv));
BOOST_CHECK(co.bpp && *co.bpp == 32);
- BOOST_CHECK(!co.campaign);
- BOOST_CHECK(!co.campaign_difficulty);
- BOOST_CHECK(!co.campaign_scenario);
+ BOOST_CHECK(co.campaign && *co.campaign == "campfoo");
+ BOOST_CHECK(co.campaign_difficulty && *co.campaign_difficulty == 16);
+ BOOST_CHECK(co.campaign_scenario && *co.campaign_scenario == "scenfoo");
BOOST_CHECK(co.clock);
BOOST_CHECK(co.config_path);
BOOST_CHECK(co.config_dir && *co.config_dir == "configdirfoo");
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits