]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Added FGScript.{cpp,h}
[flightgear.git] / src / Main / options.cxx
index e781d5c08c8f99c0c06d4b44cb247a09620ee1e1..e1002c356068b0688eb8f2bf39fa3504fa1e9b7c 100644 (file)
@@ -160,7 +160,7 @@ fgSetDefaults ()
 
                                // Flight Model options
     fgSetString("/sim/flight-model", "jsb");
-    fgSetString("/sim/aircraft", "c172");
+    fgSetString("/sim/aero", "c172");
     fgSetInt("/sim/model-hz", NEW_DEFAULT_MODEL_HZ);
     fgSetInt("/sim/speed-up", 1);
     fgSetBool("/sim/startup/trim", false);
@@ -662,8 +662,8 @@ parse_option (const string& arg)
         globals->set_fg_scenery(arg.substr( 13 ));
     } else if ( arg.find( "--fdm=" ) == 0 ) {
        fgSetString("/sim/flight-model", arg.substr(6));
-    } else if ( arg.find( "--aircraft=" ) == 0 ) {
-       fgSetString("/sim/aircraft", arg.substr(11));
+    } else if ( arg.find( "--aero=" ) == 0 ) {
+       fgSetString("/sim/aero", arg.substr(7));
     } else if ( arg.find( "--aircraft-dir=" ) == 0 ) {
         fgSetString("/sim/aircraft-dir", arg.substr(15));
     } else if ( arg.find( "--model-hz=" ) == 0 ) {
@@ -796,6 +796,12 @@ parse_option (const string& arg)
        add_channel( "native", arg.substr(9) );
     } else if ( arg.find( "--native-ctrls=" ) == 0 ) {
        add_channel( "native_ctrls", arg.substr(15) );
+    } else if ( arg.find( "--native-fdm=" ) == 0 ) {
+       add_channel( "native_fdm", arg.substr(13) );
+    } else if ( arg.find( "--opengc=" ) == 0 ) {
+       // char stop;
+       // cout << "Adding channel for OpenGC Display" << endl; cin >> stop;
+       add_channel( "opengc", arg.substr(9) );
     } else if ( arg.find( "--garmin=" ) == 0 ) {
        add_channel( "garmin", arg.substr(9) );
     } else if ( arg.find( "--nmea=" ) == 0 ) {
@@ -833,9 +839,17 @@ parse_option (const string& arg)
        fgSetString(name.c_str(), value);
        // SG_LOG(SG_GENERAL, SG_INFO, "Setting default value of property "
        //        << name << " to \"" << value << '"');
-    // $$$ begin - added VS Renganathan, 14 Oct 2K
-    // for multi-window outside window imagery
+    } else if ( arg.find("--trace-read=") == 0) {
+        string name = arg.substr(13);
+       SG_LOG(SG_GENERAL, SG_INFO, "Tracing reads for property " << name);
+       fgGetNode(name, true)->setAttribute(SGPropertyNode::TRACE_READ, true);
+    } else if ( arg.find("--trace-write=") == 0) {
+        string name = arg.substr(14);
+       SG_LOG(SG_GENERAL, SG_INFO, "Tracing writes for property " << name);
+       fgGetNode(name, true)->setAttribute(SGPropertyNode::TRACE_WRITE, true);
     } else if ( arg.find( "--view-offset=" ) == 0 ) {
+        // $$$ begin - added VS Renganathan, 14 Oct 2K
+        // for multi-window outside window imagery
        string woffset = arg.substr( 14 );
        double default_view_offset = 0.0;
        if ( woffset == "LEFT" ) {
@@ -869,16 +883,19 @@ parse_option (const string& arg)
        double speed = atof(val.substr(pos+1).c_str());
        SG_LOG(SG_GENERAL, SG_INFO, "WIND: " << dir << '@' << 
               speed << " knots" << endl);
-                               // convert to fps
+       fgSetDouble("/environment/wind-from-heading-deg", dir);
+       fgSetDouble("/environment/wind-speed-knots", speed);
+
+        // convert to fps
        speed *= SG_NM_TO_METER * SG_METER_TO_FEET * (1.0/3600);
-       dir += 180;
+       // dir += 180;
        if (dir >= 360)
          dir -= 360;
        dir *= SGD_DEGREES_TO_RADIANS;
        fgSetDouble("/environment/wind-north-fps",
-                                            speed * cos(dir));
+                   speed * cos(dir));
        fgSetDouble("/environment/wind-east-fps",
-                                            speed * sin(dir));
+                   speed * sin(dir));
     } else if ( arg.find( "--wp=" ) == 0 ) {
        parse_wp( arg.substr( 5 ) );
     } else if ( arg.find( "--flight-plan=") == 0) {
@@ -893,6 +910,20 @@ parse_option (const string& arg)
          SG_LOG(SG_INPUT, SG_ALERT, message);
          exit(2);
        }
+    } else if ( arg.find( "--aircraft=" ) == 0 ) {
+        // read in the top level aircraft definition file
+        SGPath apath( globals->get_fg_root() );
+        apath.append( "Aircraft" );
+        apath.append( arg.substr(11) );
+        apath.concat( "-set.xml" );
+        try {
+            readProperties( apath.str(), globals->get_props() );
+        } catch (const sg_exception &e) {
+            string message = "Error loading aircraft file: ";
+            message += e.getFormattedMessage();
+            SG_LOG(SG_INPUT, SG_ALERT, message);
+            exit(2);
+        }
     } else {
        SG_LOG( SG_GENERAL, SG_ALERT, "Unknown option '" << arg << "'" );
        return FG_OPTIONS_ERROR;
@@ -1057,7 +1088,7 @@ fgUsage ()
     cout << "\t--enable-mouse-pointer:  enable extra mouse pointer (i.e. for"
         << endl;
     cout << "\t\tfull screen voodoo/voodoo-II based cards.)" << endl;
-    cout << "\t--disable-freeze:  start out in an running state" << endl;
+    cout << "\t--disable-freeze:  start out in a running state" << endl;
     cout << "\t--enable-freeze:  start out in a frozen state" << endl;
     cout << "\t--control=mode:  primary control mode " 
         << "(joystick, keyboard, mouse)" << endl;
@@ -1072,7 +1103,7 @@ fgUsage ()
     cout << "\t--disable-hud:  disable heads up display" << endl;
     cout << "\t--enable-hud:  enable heads up display" << endl;
     cout << "\t--disable-panel:  disable instrument panel" << endl;
-    cout << "\t--enable-panel:  enable instrumetn panel" << endl;
+    cout << "\t--enable-panel:  enable instrument panel" << endl;
     cout << "\t--disable-sound:  disable sound effects" << endl;
     cout << "\t--enable-sound:  enable sound effects" << endl;
     cout << "\t--disable-anti-alias-hud:  disable anti aliased hud" << endl;
@@ -1081,9 +1112,9 @@ fgUsage ()
  
     cout << "Flight Model:" << endl;
     cout << "\t--fdm=abcd:  selects the core flight model code." << endl;
-    cout << "\t\tcan be one of jsb, larcsim, magic, external, balloon, or ada"
+    cout << "\t\tcan be one of jsb, larcsim, magic, null, external, balloon, or ada"
         << endl;
-    cout << "\t--aircraft=abcd:  aircraft model to load" << endl;
+    cout << "\t--aero=abcd:  aerodynamics model to load" << endl;
     cout << "\t--model-hz=n:  run the FDM this rate (iterations per second)" 
         << endl;
     cout << "\t--speed=n:  run the FDM this much faster than real time" << endl;
@@ -1102,17 +1133,17 @@ fgUsage ()
     cout << "Initial Position and Orientation:" << endl;
     cout << "\t--airport-id=ABCD:  specify starting postion by airport id" 
         << endl;
-    cout << "\t--offset-distance:  specify distance to threshhold"
+    cout << "\t--offset-distance:  specify distance to threshold"
          << " (NM)" << endl; 
-    cout << "\t--offset-azimuth:  specify heading to threshhold (deg) " 
+    cout << "\t--offset-azimuth:  specify heading to threshold (deg) " 
          << endl;    
     cout << "\t--lon=degrees:  starting longitude in degrees (west = -)" 
         << endl;
     cout << "\t--lat=degrees:  starting latitude in degrees (south = -)"
         << endl;
     cout << "\t--altitude=feet:  starting altitude in feet" << endl;
-    cout << "\t\t(unless --units-meters specified" << endl;
-    cout << "\t--heading=degrees:  heading (yaw) angle in degress (Psi)"
+    cout << "\t\t(unless --units-meters specified)" << endl;
+    cout << "\t--heading=degrees:  heading (yaw) angle in degrees (Psi)"
         << endl;
     cout << "\t--roll=degrees:  roll angle in degrees (Phi)" << endl;
     cout << "\t--pitch=degrees:  pitch angle in degrees (Theta)" << endl;
@@ -1122,9 +1153,9 @@ fgUsage ()
         << endl;
     cout << "\t--wBody=feet per second:  velocity along the body Z axis"
         << endl;
-    cout << "\t\t(unless --units-meters specified" << endl;
-    cout << "\t--vc= initial airspeed in knots (--fdm=jsb only)" << endl;
-    cout << "\t--mach= initial mach number (--fdm=jsb only)" << endl;
+    cout << "\t\t(unless --units-meters specified)" << endl;
+    cout << "\t--vc= initial airspeed in knots" << endl;
+    cout << "\t--mach= initial mach number" << endl;
     cout << endl;
 
     cout << "Rendering Options:" << endl;