]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Remove conditional compilation of ATCDCL
[flightgear.git] / src / Main / options.cxx
index 06b2b7f896fcc46370595083b28b7404d926f13e..b5b28a0ecac2e7d94be9ee57d8fe85217b2577f3 100644 (file)
@@ -56,7 +56,9 @@
 #include "util.hxx"
 #include "viewmgr.hxx"
 #include <Main/viewer.hxx>
+
 #include <simgear/version.h>
+#include <osg/Version>
 
 using std::string;
 using std::sort;
@@ -237,7 +239,8 @@ fgSetDefaults ()
     fgSetInt("/sim/multiplay/txport", 0);
     
     fgSetString("/sim/version/flightgear", FLIGHTGEAR_VERSION);
-    //fgSetString("/sim/version/simgear", FLIGHTGEAR_VERSION);
+    fgSetString("/sim/version/simgear", SG_STRINGIZE(SIMGEAR_VERSION));
+    fgSetString("/sim/version/openscenegraph", osgGetVersion());
     fgSetString("/sim/version/revision", REVISION);
     fgSetInt("/sim/version/build-number", HUDSON_BUILD_NUMBER);
     fgSetString("/sim/version/build-id", HUDSON_BUILD_ID);
@@ -993,6 +996,7 @@ fgOptVisibilityMeters( const char *arg )
 {
     double visibility = atof( arg );
     fgDefaultWeatherValue("visibility-m", visibility);
+    fgSetDouble("/environment/visibility-m", visibility);
     return FG_OPTIONS_OK;
 }
 
@@ -1001,6 +1005,7 @@ fgOptVisibilityMiles( const char *arg )
 {
     double visibility = atof( arg ) * 5280.0 * SG_FEET_TO_METER;
     fgDefaultWeatherValue("visibility-m", visibility);
+    fgSetDouble("/environment/visibility-m", visibility);
     return FG_OPTIONS_OK;
 }
 
@@ -1251,6 +1256,26 @@ fgOptFgviewer(const char* arg)
     return FG_OPTIONS_OK;
 }
 
+static int
+fgOptCallSign(const char * arg)
+{
+    int i;
+    char callsign[11];
+    strncpy(callsign,arg,10);
+    callsign[10]=0;
+    for (i=0;callsign[i];i++)
+    {
+        char c = callsign[i];
+        if (c >= 'A' && c <= 'Z') continue;
+        if (c >= 'a' && c <= 'z') continue;
+        if (c >= '0' && c <= '9') continue;
+        if (c == '-' || c == '_') continue;
+        // convert any other illegal characters
+        callsign[i]='-';
+    }
+    fgSetString("sim/multiplay/callsign", callsign );
+    return FG_OPTIONS_OK;
+}
 
 
 static map<string,size_t> fgOptionMap;
@@ -1435,7 +1460,7 @@ struct OptionDesc {
     {"joyclient",                    true,  OPTION_CHANNEL, "", false, "", 0 },
     {"jsclient",                     true,  OPTION_CHANNEL, "", false, "", 0 },
     {"proxy",                        true,  OPTION_FUNC,    "", false, "", fgSetupProxy },
-    {"callsign",                     true, OPTION_STRING,  "sim/multiplay/callsign", false, "", 0 },
+    {"callsign",                     true,  OPTION_FUNC,    "", false, "", fgOptCallSign},
     {"multiplay",                    true,  OPTION_CHANNEL, "", false, "", 0 },
     {"trace-read",                   true,  OPTION_FUNC,   "", false, "", fgOptTraceRead },
     {"trace-write",                  true,  OPTION_FUNC,   "", false, "", fgOptTraceWrite },
@@ -1547,6 +1572,10 @@ parse_option (const string& arg)
             SG_LOG( SG_GENERAL, SG_ALERT, "Bad property assignment: " << arg );
             return FG_OPTIONS_ERROR;
         }
+    } else if ( arg.find("-psn_") == 0) {
+    // on Mac, when launched from the GUI, we are passed the ProcessSerialNumber
+    // as an argument (and no others). Silently ignore the argument here.
+        return FG_OPTIONS_OK;
     } else if ( arg.find( "--" ) == 0 ) {
         size_t pos = arg.find( '=' );
         string arg_name, arg_value;