]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
better error message to help users and support staff
[flightgear.git] / src / Main / options.cxx
index aef5b0577cdbea4da2220b793bf4dab21d70848d..11b5e7c0bd8f1cbe77eecc1c8b7f1b19fc31df0a 100644 (file)
@@ -2,7 +2,7 @@
 //
 // Written by Curtis Olson, started April 1998.
 //
-// Copyright (C) 1998  Curtis L. Olson  - curt@me.umn.edu
+// Copyright (C) 1998  Curtis L. Olson  - http://www.flightgear.org/~curt
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License as
@@ -597,6 +597,8 @@ clearLocation ()
     fgSetString("/sim/presets/airport-id", "");
     fgSetString("/sim/presets/vor-id", "");
     fgSetString("/sim/presets/ndb-id", "");
+    fgSetString("/sim/presets/carrier", "");
+    fgSetString("/sim/presets/parkpos", "");
     fgSetString("/sim/presets/fix", "");
 }
 
@@ -616,6 +618,21 @@ fgOptNDB( const char * arg )
     return FG_OPTIONS_OK;
 }
 
+static int
+fgOptCarrier( const char * arg )
+{
+    clearLocation();
+    fgSetString("/sim/presets/carrier", arg);
+    return FG_OPTIONS_OK;
+}
+
+static int
+fgOptParkpos( const char * arg )
+{
+    fgSetString("/sim/presets/parkpos", arg);
+    return FG_OPTIONS_OK;
+}
+
 static int
 fgOptFIX( const char * arg )
 {
@@ -1089,8 +1106,8 @@ fgOptNAV1( const char * arg )
 {
     double radial, freq;
     if (parse_colon(arg, &radial, &freq))
-        fgSetDouble("/radios/nav[0]/radials/selected-deg", radial);
-    fgSetDouble("/radios/nav[0]/frequencies/selected-mhz", freq);
+        fgSetDouble("/instrumentation/nav[0]/radials/selected-deg", radial);
+    fgSetDouble("/instrumentation/nav[0]/frequencies/selected-mhz", freq);
     return FG_OPTIONS_OK;
 }
 
@@ -1099,8 +1116,8 @@ fgOptNAV2( const char * arg )
 {
     double radial, freq;
     if (parse_colon(arg, &radial, &freq))
-        fgSetDouble("/radios/nav[1]/radials/selected-deg", radial);
-    fgSetDouble("/radios/nav[1]/frequencies/selected-mhz", freq);
+        fgSetDouble("/instrumentation/nav[1]/radials/selected-deg", radial);
+    fgSetDouble("/instrumentation/nav[1]/frequencies/selected-mhz", freq);
     return FG_OPTIONS_OK;
 }
 
@@ -1121,11 +1138,11 @@ fgOptDME( const char *arg )
     if (opt == "nav1") {
         fgSetInt("/instrumentation/dme/switch-position", 1);
         fgSetString("/instrumentation/dme/frequencies/source",
-                    "/radios/nav[0]/frequencies/selected-mhz");
+                    "/instrumentation/nav[0]/frequencies/selected-mhz");
     } else if (opt == "nav2") {
         fgSetInt("/instrumentation/dme/switch-position", 3);
         fgSetString("/instrumentation/dme/frequencies/source",
-                    "/radios/nav[1]/frequencies/selected-mhz");
+                    "/instrumentation/nav[1]/frequencies/selected-mhz");
     } else {
         fgSetInt("/instrumentation/dme/switch-position", 2);
         fgSetString("/instrumentation/dme/frequencies/source",
@@ -1215,6 +1232,8 @@ struct OptionDesc {
     {"runway",                       true,  OPTION_STRING, "/sim/presets/runway", false, "", 0 },
     {"vor",                          true,  OPTION_FUNC,   "", false, "", fgOptVOR },
     {"ndb",                          true,  OPTION_FUNC,   "", false, "", fgOptNDB },
+    {"carrier",                      true,  OPTION_FUNC,   "", false, "", fgOptCarrier },
+    {"parkpos",                      true,  OPTION_FUNC,   "", false, "", fgOptParkpos },
     {"fix",                          true,  OPTION_FUNC,   "", false, "", fgOptFIX },
     {"offset-distance",              true,  OPTION_DOUBLE, "/sim/presets/offset-distance", false, "", 0 },
     {"offset-azimuth",               true,  OPTION_DOUBLE, "/sim/presets/offset-azimuth", false, "", 0 },
@@ -1258,11 +1277,10 @@ struct OptionDesc {
     {"enable-specular-highlight",    false, OPTION_BOOL,   "/sim/rendering/specular-highlight", true, "", 0 },
     {"disable-clouds",               false, OPTION_BOOL,   "/environment/clouds/status", false, "", 0 },
     {"enable-clouds",                false, OPTION_BOOL,   "/environment/clouds/status", true, "", 0 },
-#ifdef FG_USE_CLOUDS_3D
-    {"disable-clouds3d",             false, OPTION_BOOL,   "/sim/rendering/clouds3d", false, "", 0 },
-    {"enable-clouds3d",              false, OPTION_BOOL,   "/sim/rendering/clouds3d", true, "", 0 },
-#endif
+    {"disable-clouds3d",             false, OPTION_BOOL,   "/sim/rendering/clouds3d-enable", false, "", 0 },
+    {"enable-clouds3d",              false, OPTION_BOOL,   "/sim/rendering/clouds3d-enable", true, "", 0 },
     {"fov",                          true,  OPTION_FUNC,   "", false, "", fgOptFov },
+    {"aspect-ratio-multiplier",      true,  OPTION_DOUBLE, "/sim/current-view/aspect-ratio-multiplier", false, "", 0 },
     {"disable-fullscreen",           false, OPTION_BOOL,   "/sim/startup/fullscreen", false, "", 0 },
     {"enable-fullscreen",            false, OPTION_BOOL,   "/sim/startup/fullscreen", true, "", 0 },
     {"shading-flat",                 false, OPTION_BOOL,   "/sim/rendering/shading", false, "", 0 },
@@ -1327,8 +1345,8 @@ struct OptionDesc {
     {"config",                       true,  OPTION_FUNC,   "", false, "", fgOptConfig },
     {"aircraft",                     true,  OPTION_STRING, "/sim/aircraft", false, "", 0 },
     {"failure",                      true,  OPTION_FUNC,   "", false, "", fgOptFailure },
-    {"com1",                         true,  OPTION_DOUBLE, "/radios/comm[0]/frequencies/selected-mhz", false, "", 0 },
-    {"com2",                         true,  OPTION_DOUBLE, "/radios/comm[1]/frequencies/selected-mhz", false, "", 0 },
+    {"com1",                         true,  OPTION_DOUBLE, "/instrumentation/comm[0]/frequencies/selected-mhz", false, "", 0 },
+    {"com2",                         true,  OPTION_DOUBLE, "/instrumentation/comm[1]/frequencies/selected-mhz", false, "", 0 },
     {"nav1",                         true,  OPTION_FUNC,   "", false, "", fgOptNAV1 },
     {"nav2",                         true,  OPTION_FUNC,   "", false, "", fgOptNAV2 },
     {"adf",                          true,  OPTION_FUNC,   "", false, "", fgOptADF },
@@ -1534,9 +1552,11 @@ fgParseOptions (const string& path) {
 #endif
 
         // catch extraneous (DOS) line ending character
-        if ( line[line.length() - 1] < 32 ) {
-            line = line.substr( 0, line.length()-1 );
-        }
+        int i;
+        for (i = line.length(); i > 0; i--)
+            if (line[i - 1] > 32)
+                break;
+        line = line.substr( 0, i );
 
        if ( parse_option( line ) == FG_OPTIONS_ERROR ) {
             cerr << endl << "Config file parse error: " << path << " '" 
@@ -1707,7 +1727,7 @@ static void fgSearchAircraft(const SGPath &path, string_list &aircraft,
    ulDirEnt* dire;
    ulDir *dirp = ulOpenDir(path.str().c_str());
    if (dirp == NULL) {
-      cerr << "Unable to open aircraft directory." << endl;
+      cerr << "Unable to open aircraft directory '" << path.str() << '\'' << endl;
       exit(-1);
    }