]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Changes from David Megginson in support of an xml based configuration file.
[flightgear.git] / src / Main / options.cxx
index 5f59043847118e4d95351a27f583e1359a63fa04..8571b1ca0f82457951b9b164a8447a77d2043dbe 100644 (file)
@@ -160,8 +160,8 @@ fgOPTIONS::fgOPTIONS() :
     auto_coordination(FG_AUTO_COORD_NOT_SPECIFIED),
 
     // Features
-    hud_status(1),
-    panel_status(0),
+    hud_status(0),
+    panel_status(1),
     sound(1),
     anti_alias_hud(0),
 
@@ -182,8 +182,8 @@ fgOPTIONS::fgOPTIONS() :
     skyblend(1),
     textures(1),
     wireframe(0),
-    xsize(640),
-    ysize(480),
+    xsize(800),
+    ysize(600),
     bpp(16),
     view_mode(FG_VIEW_PILOT),
 
@@ -214,7 +214,7 @@ fgOPTIONS::fgOPTIONS() :
 
 #if defined( WIN32 )
        fg_root = "\\FlightGear";
-#elif defined( MACOS )
+#elif defined( macintosh )
        fg_root = "";
 #else
        fg_root = PKGLIBDIR;
@@ -233,7 +233,7 @@ fgOPTIONS::fgOPTIONS() :
        fg_scenery = "";
     }
 
-    airport_id = "";           // default airport id
+    airport_id = "P13";                // default airport id
     net_id = "Johnney";                // default pilot's name
 
     // initialize port config string list
@@ -257,11 +257,14 @@ fgOPTIONS::toggle_panel() {
        if ( current_panel != NULL )
          current_panel->setVisibility(true);
     }
-    if ( panel_status ) {
+
+    // new rule .. "fov" shouldn't get messed with like this.
+    /* if ( panel_status ) {
        fov *= 0.4232;
     } else {
        fov *= (1.0 / 0.4232);
-    }
+    } */
+
     // fgReshape( xsize, ysize);
     fgReshape( current_view.get_winWidth(), current_view.get_winHeight() );
 
@@ -633,8 +636,8 @@ int fgOPTIONS::parse_option( const string& arg ) {
     } else if ( arg == "--enable-panel" ) {
        panel_status = true;
        if ( current_panel != NULL )
-         current_panel->setVisibility(true);
-       fov *= 0.4232;
+           current_panel->setVisibility(true);
+       // fov *= 0.4232; /* NO!!! */
     } else if ( arg == "--disable-sound" ) {
        sound = false;
     } else if ( arg == "--enable-sound" ) {
@@ -643,14 +646,19 @@ int fgOPTIONS::parse_option( const string& arg ) {
        airport_id = arg.substr( 13 );
     } else if ( arg.find( "--lon=" ) != string::npos ) {
        lon = parse_degree( arg.substr(6) );
+       airport_id = "";
+       current_properties.setDoubleValue("/position/longitude", lon);
     } else if ( arg.find( "--lat=" ) != string::npos ) {
        lat = parse_degree( arg.substr(6) );
+       airport_id = "";
+       current_properties.setDoubleValue("/position/latitude", lat);
     } else if ( arg.find( "--altitude=" ) != string::npos ) {
        if ( units == FG_UNITS_FEET ) {
            altitude = atof( arg.substr(11) ) * FEET_TO_METER;
        } else {
            altitude = atof( arg.substr(11) );
        }
+       current_properties.setDoubleValue("/position/altitude", altitude);
     } else if ( arg.find( "--uBody=" ) != string::npos ) {
        vkcas=mach=-1;
        if ( units == FG_UNITS_FEET ) {
@@ -658,6 +666,7 @@ int fgOPTIONS::parse_option( const string& arg ) {
        } else {
            uBody = atof( arg.substr(8) ) * FEET_TO_METER;
        }
+       current_properties.setDoubleValue("/velocities/speed-north", uBody);
     } else if ( arg.find( "--vBody=" ) != string::npos ) {
        vkcas=mach=-1;
        if ( units == FG_UNITS_FEET ) {
@@ -665,6 +674,7 @@ int fgOPTIONS::parse_option( const string& arg ) {
        } else {
            vBody = atof( arg.substr(8) ) * FEET_TO_METER;
        }
+       current_properties.setDoubleValue("/velocities/speed-east", vBody);
     } else if ( arg.find( "--wBody=" ) != string::npos ) {
        vkcas=mach=-1;
        if ( units == FG_UNITS_FEET ) {
@@ -672,6 +682,7 @@ int fgOPTIONS::parse_option( const string& arg ) {
        } else {
            wBody = atof( arg.substr(8) ) * FEET_TO_METER;
        }
+       current_properties.setDoubleValue("/velocities/speed-down", wBody);
     } else if ( arg.find( "--vc=" ) != string::npos) {
        mach=-1;
        vkcas=atof( arg.substr(5) );
@@ -681,16 +692,20 @@ int fgOPTIONS::parse_option( const string& arg ) {
        mach=atof( arg.substr(7) );
     } else if ( arg.find( "--heading=" ) != string::npos ) {
        heading = atof( arg.substr(10) );
+       current_properties.setDoubleValue("/orientation/heading", heading);
     } else if ( arg.find( "--roll=" ) != string::npos ) {
        roll = atof( arg.substr(7) );
+       current_properties.setDoubleValue("/orientation/roll", roll);
     } else if ( arg.find( "--pitch=" ) != string::npos ) {
        pitch = atof( arg.substr(8) );
+       current_properties.setDoubleValue("/orientation/pitch", pitch);
     } else if ( arg.find( "--fg-root=" ) != string::npos ) {
        fg_root = arg.substr( 10 );
     } else if ( arg.find( "--fg-scenery=" ) != string::npos ) {
        fg_scenery = arg.substr( 13 );
     } else if ( arg.find( "--fdm=" ) != string::npos ) {
        flight_model = parse_fdm( arg.substr(6) );
+       current_properties.setIntValue("/sim/flight-model", flight_model);
     if((flight_model == FGInterface::FG_JSBSIM) && (get_trim_mode() == 0)) {
        set_trim_mode(1);
     } else {
@@ -698,6 +713,7 @@ int fgOPTIONS::parse_option( const string& arg ) {
     }        
     } else if ( arg.find( "--aircraft=" ) != string::npos ) {
        aircraft = arg.substr(11);
+       current_properties.setStringValue("/sim/aircraft", aircraft);
     } else if ( arg.find( "--aircraft-dir=" ) != string::npos ) {
        aircraft_dir =  arg.substr(15); //  (UIUC)
     } else if ( arg.find( "--model-hz=" ) != string::npos ) {
@@ -894,7 +910,7 @@ int fgOPTIONS::parse_config_file( const string& path ) {
 
 #ifdef GETLINE_NEEDS_TERMINATOR
         getline( in, line, '\n' );
-#elif defined (MACOS)
+#elif defined( macintosh )
        getline( in, line, '\r' );
 #else
         getline( in, line );
@@ -1041,6 +1057,8 @@ void fgOPTIONS::usage ( void ) {
     cout << "" << endl;
 
     cout << "Network Options:" << endl;
+    cout << "\t--enable-network-olk:  enable Multipilot mode" << endl;
+    cout << "\t--disable-network-olk:  disable Multipilot mode (default)" << endl;
     cout << "\t--net-hud:  Hud displays network info" << endl;
     cout << "\t--net-id=name:  specify your own callsign" << endl;
 #endif