]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/options.cpp
Persist most dialogs across runs
[r2c2.git] / source / engineer / options.cpp
index 89e1fd109be155a3172aa488afc2619bf89d42fe..0108ba5925e44d376d3244cc2418133e3e20578b 100644 (file)
@@ -13,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;
 
@@ -23,8 +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())
@@ -38,12 +42,9 @@ Options::Options(int argc, char **argv):
                        throw usage_error("Invalid resolution");
        }
 
-       const vector<string> &args = getopt.get_args();
-       if(args.empty())
-               throw usage_error("No layout given");
-
-       layout_fn = args[0];
-
        if(state_fn.empty())
                state_fn = FS::basepart(layout_fn)+".state";
+
+       if(uistate_fn.empty())
+               uistate_fn = FS::basepart(layout_fn)+".uistate";
 }