X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Foptions.cpp;h=0108ba5925e44d376d3244cc2418133e3e20578b;hb=abed4a255060d5a233ec0ac2dd60af9132e29201;hp=9861c10e7e6230f282f8f1f4aaa6159c0e3d76c5;hpb=651698847d5293cfb15b6fb23a394701388c0151;p=r2c2.git diff --git a/source/engineer/options.cpp b/source/engineer/options.cpp index 9861c10..0108ba5 100644 --- a/source/engineer/options.cpp +++ b/source/engineer/options.cpp @@ -1,11 +1,5 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #include +#include #include #include #include "options.h" @@ -19,7 +13,8 @@ Options::Options(int argc, char **argv): fullscreen(false), debug(false), network(false), - simulate(false) + simulate(false), + sim_speed(1.0f) { string res; @@ -29,7 +24,11 @@ Options::Options(int argc, char **argv): getopt.add_option('g', "debug", debug, GetOpt::NO_ARG); getopt.add_option('d', "driver", driver, GetOpt::REQUIRED_ARG); getopt.add_option('s', "simulate", simulate, GetOpt::NO_ARG); + getopt.add_option( "sim-speed", sim_speed, GetOpt::REQUIRED_ARG); getopt.add_option('n', "network", network, GetOpt::NO_ARG); + getopt.add_option( "state", state_fn, GetOpt::REQUIRED_ARG); + getopt.add_option( "uistate", uistate_fn, GetOpt::REQUIRED_ARG); + getopt.add_argument("layout", layout_fn, GetOpt::REQUIRED_ARG); getopt(argc, argv); if(!res.empty()) @@ -40,12 +39,12 @@ Options::Options(int argc, char **argv): screen_h = lexical_cast(m[2].str); } else - throw UsageError("Invalid resolution"); + throw usage_error("Invalid resolution"); } - const vector &args = getopt.get_args(); - if(args.empty()) - throw UsageError("No layout given"); + if(state_fn.empty()) + state_fn = FS::basepart(layout_fn)+".state"; - layout_fn = args[0]; + if(uistate_fn.empty()) + uistate_fn = FS::basepart(layout_fn)+".uistate"; }