]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Added a <solve-weight> subtag of the approach/cruise parameters that can
[flightgear.git] / src / Main / options.cxx
index 006fea4e49a88dd45eac9b385979ecdec9e48b9f..1d76c20bdecc1574c7978df44371e068f4032076 100644 (file)
@@ -26,7 +26,7 @@
 #endif
 
 #include <simgear/compiler.h>
-#include <simgear/misc/exception.hxx>
+#include <simgear/structure/exception.hxx>
 #include <simgear/debug/logstream.hxx>
 
 #include <math.h>              // rint()
 #include <simgear/math/sg_random.h>
 #include <simgear/misc/sgstream.hxx>
 #include <simgear/misc/sg_path.hxx>
-#include <simgear/route/route.hxx>
-#include <simgear/route/waypoint.hxx>
 
 // #include <Include/general.hxx>
 // #include <Airports/simple.hxx>
 // #include <Cockpit/cockpit.hxx>
 // #include <FDM/flight.hxx>
 // #include <FDM/UIUCModel/uiuc_aircraftdir.h>
-#ifdef FG_NETWORK_OLK
-#  include <NetworkOLK/network.h>
-#endif
 
+#include <Autopilot/route_mgr.hxx>
 #include <GUI/gui.h>
 
 #include "globals.hxx"
@@ -181,7 +177,7 @@ fgSetDefaults ()
 #else
     fgSetString("/sim/startup/browser-app", "webrun.bat");
 #endif
-    fgSetInt("/sim/log-level", SG_WARN);
+    fgSetString("/sim/logging/priority", "alert");
 
                                // Features
     fgSetBool("/sim/hud/antialiased", false);
@@ -223,9 +219,6 @@ fgSetDefaults ()
     fgSetString("/sim/startup/time-offset-type", "system-offset");
     fgSetLong("/sim/time/cur-time-override", 0);
 
-    fgSetBool("/sim/networking/network-olk", false);
-    fgSetString("/sim/networking/call-sign", "Johnny");
-
                                 // Freeze options
     fgSetBool("/sim/freeze/master", false);
     fgSetBool("/sim/freeze/position", false);
@@ -556,7 +549,7 @@ setup_wind (double min_hdg, double max_hdg, double speed, double gust)
   min_hdg += 10;
   if (min_hdg > 360)
       min_hdg -= 360;
-  speed *= 1.2;
+  speed *= 1.1;
   fgSetDouble("/environment/config/boundary/entry[1]/wind-from-heading-deg",
               min_hdg);
   fgSetDouble("/environment/config/boundary/entry[1]/wind-speed-kt",
@@ -565,7 +558,7 @@ setup_wind (double min_hdg, double max_hdg, double speed, double gust)
   min_hdg += 20;
   if (min_hdg > 360)
       min_hdg -= 360;
-  speed *= 1.5;
+  speed *= 1.1;
   fgSetDouble("/environment/config/aloft/entry[0]/wind-from-heading-deg",
               min_hdg);
   fgSetDouble("/environment/config/aloft/entry[0]/wind-speed-kt",
@@ -574,7 +567,7 @@ setup_wind (double min_hdg, double max_hdg, double speed, double gust)
   min_hdg += 10;
   if (min_hdg > 360)
       min_hdg -= 360;
-  speed *= 1.2;
+  speed *= 1.1;
   fgSetDouble("/environment/config/aloft/entry[1]/wind-from-heading-deg",
               min_hdg);
   fgSetDouble("/environment/config/aloft/entry[1]/wind-speed-kt",
@@ -583,7 +576,7 @@ setup_wind (double min_hdg, double max_hdg, double speed, double gust)
   min_hdg += 10;
   if (min_hdg > 360)
       min_hdg -= 360;
-  speed *= 1.2;
+  speed *= 1.1;
   fgSetDouble("/environment/config/aloft/entry[2]/wind-from-heading-deg",
               min_hdg);
   fgSetDouble("/environment/config/aloft/entry[2]/wind-speed-kt",
@@ -624,8 +617,9 @@ parse_wp( const string& arg ) {
 
     FGAirport a;
     if ( fgFindAirportID( id, &a ) ) {
+        FGRouteMgr *rm = (FGRouteMgr *)globals->get_subsystem("route-manager");
        SGWayPoint wp( a.longitude, a.latitude, alt, SGWayPoint::WGS84, id );
-       globals->get_route()->add_waypoint( wp );
+       rm->add_waypoint( wp );
 
        return true;
     } else {
@@ -936,16 +930,6 @@ fgOptStartDateGmt( const char *arg )
     return FG_OPTIONS_OK;
 }
 
-#ifdef FG_NETWORK_OLK
-static int
-fgOptNetHud( const char *arg )
-{
-    fgSetBool("/sim/hud/net-display", true);
-    net_hud_display = 1;       // FIXME
-    return FG_OPTIONS_OK;
-}
-#endif
-
 static int
 fgOptTraceRead( const char *arg )
 {
@@ -956,6 +940,33 @@ fgOptTraceRead( const char *arg )
     return FG_OPTIONS_OK;
 }
 
+static int
+fgOptLogLevel( const char *arg )
+{
+    fgSetString("/sim/logging/classes", "all");
+    fgSetString("/sim/logging/priority", arg);
+
+    string priority = arg;
+    logbuf::set_log_classes(SG_ALL);
+    if (priority == "bulk") {
+      logbuf::set_log_priority(SG_BULK);
+    } else if (priority == "debug") {
+      logbuf::set_log_priority(SG_DEBUG);
+    } else if (priority == "info") {
+      logbuf::set_log_priority(SG_INFO);
+    } else if (priority == "warn") {
+      logbuf::set_log_priority(SG_WARN);
+    } else if (priority == "alert") {
+      logbuf::set_log_priority(SG_ALERT);
+    } else {
+      SG_LOG(SG_GENERAL, SG_WARN, "Unknown logging priority " << priority);
+    }
+    SG_LOG(SG_GENERAL, SG_DEBUG, "Logging priority is " << priority);
+
+    return FG_OPTIONS_OK;
+}
+
+
 static int
 fgOptTraceWrite( const char *arg )
 {
@@ -1013,7 +1024,7 @@ fgOptRandomWind( const char *arg )
 {
     double min_hdg = sg_random() * 360.0;
     double max_hdg = min_hdg + (20 - sqrt(sg_random() * 400));
-    double speed = 40 - sqrt(sg_random() * 1600.0);
+    double speed = sg_random() * sg_random() * 40;
     double gust = speed + (10 - sqrt(sg_random() * 100));
     setup_wind(min_hdg, max_hdg, speed, gust);
     return FG_OPTIONS_OK;
@@ -1147,8 +1158,8 @@ fgOptADF( const char * arg )
 {
     double rot, freq;
     if (parse_colon(arg, &rot, &freq))
-        fgSetDouble("/radios/kr-87/inputs/rotation-deg", rot);
-    fgSetDouble("/radios/kr-87/outputs/selected-khz", freq);
+        fgSetDouble("/instrumentation/adf/rotation-deg", rot);
+    fgSetDouble("/instrumentation/adf/frequencies/selected-khz", freq);
     return FG_OPTIONS_OK;
 }
 
@@ -1340,19 +1351,14 @@ struct OptionDesc {
     {"ray",                          true,  OPTION_CHANNEL, "", false, "", 0 },
     {"rul",                          true,  OPTION_CHANNEL, "", false, "", 0 },
     {"joyclient",                    true,  OPTION_CHANNEL, "", false, "", 0 },
-#ifdef FG_NETWORK_OLK
-    {"disable-network-olk",          false, OPTION_BOOL,   "/sim/networking/olk", false, "", 0 },
-    {"enable-network-olk",           false, OPTION_BOOL,   "/sim/networking/olk", true, "", 0 },
-    {"net-hud",                      false, OPTION_FUNC,   "", false, "", fgOptNetHud },
-    {"net-id",                       true,  OPTION_STRING, "sim/networking/call-sign", false, "", 0 },
-#endif
+    {"jsclient",                     true,  OPTION_CHANNEL, "", false, "", 0 },
 #ifdef FG_MPLAYER_AS
     {"callsign",                     true, OPTION_STRING,  "sim/multiplay/callsign", false, "", 0 },
     {"multiplay",                    true,  OPTION_CHANNEL, "", false, "", 0 },
 #endif
     {"trace-read",                   true,  OPTION_FUNC,   "", false, "", fgOptTraceRead },
     {"trace-write",                  true,  OPTION_FUNC,   "", false, "", fgOptTraceWrite },
-    {"log-level",                    true,  OPTION_INT,    "/sim/log-level", false, "", 0 },
+    {"log-level",                    true,  OPTION_FUNC,   "", false, "", fgOptLogLevel },
     {"view-offset",                  true,  OPTION_FUNC,   "", false, "", fgOptViewOffset },
     {"visibility",                   true,  OPTION_FUNC,   "", false, "", fgOptVisibilityMeters },
     {"visibility-miles",             true,  OPTION_FUNC,   "", false, "", fgOptVisibilityMiles },
@@ -1519,9 +1525,10 @@ fgParseArgs (int argc, char **argv)
               verbose = true;
 
             else if (result == FG_OPTIONS_SHOW_AIRCRAFT) {
+               fgOptLogLevel( "alert" );
                SGPath path( globals->get_fg_root() );
                path.append("Aircraft");
-               fgShowAircraft(path);
+               fgShowAircraft(path, true);
                exit(0);
             }
          }
@@ -1534,6 +1541,7 @@ fgParseArgs (int argc, char **argv)
     }
 
     if (help) {
+       fgOptLogLevel( "alert" );
        fgUsage(verbose);
        exit(0);
     }
@@ -1714,17 +1722,9 @@ fgUsage (bool verbose)
     }
 }
 
-/*
- * Search in the current directory, and in on directory deeper
- * for <aircraft>-set.xml configuration files and show the aircaft name
- * and the contents of the<description> tag in a sorted manner.
- *
- * @parampath the directory to search for configuration files
- * @param recursive defines whether the directory should be searched recursively
- */
-void fgShowAircraft(const SGPath &path, bool recursive) {
-   static vector<string> aircraft;
-
+static void fgSearchAircraft(const SGPath &path, string_list &aircraft,
+                             bool recursive)
+{
    ulDirEnt* dire;
    ulDir *dirp = ulOpenDir(path.str().c_str());
    if (dirp == NULL) {
@@ -1742,7 +1742,7 @@ void fgShowAircraft(const SGPath &path, bool recursive) {
               SGPath next = path;
               next.append(dire->d_name);
 
-              fgShowAircraft(next, false);
+              fgSearchAircraft(next, aircraft, true);
           }
       } else if ((ptr = strstr(dire->d_name, "-set.xml")) && (ptr[8] == '\0')) {
 
@@ -1778,14 +1778,26 @@ void fgShowAircraft(const SGPath &path, bool recursive) {
       }
    }
 
-   if (recursive) {
-       sort(aircraft.begin(), aircraft.end());
-       cout << "Available aircraft:" << endl;
-       for ( unsigned int i = 0; i < aircraft.size(); i++ ) {
-           cout << aircraft[i] << endl;
-       }
+   ulCloseDir(dirp);
+}
+
+
+/*
+ * Search in the current directory, and in on directory deeper
+ * for <aircraft>-set.xml configuration files and show the aircaft name
+ * and the contents of the<description> tag in a sorted manner.
+ *
+ * @parampath the directory to search for configuration files
+ * @param recursive defines whether the directory should be searched recursively
+ */
+void fgShowAircraft(const SGPath &path, bool recursive) {
+    string_list aircraft;
+
+    fgSearchAircraft( path, aircraft, recursive );
 
-       aircraft.clear();
+    sort(aircraft.begin(), aircraft.end());
+    cout << "Available aircraft:" << endl;
+    for ( unsigned int i = 0; i < aircraft.size(); i++ ) {
+        cout << aircraft[i] << endl;
     }
-    ulCloseDir(dirp);
 }