]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Added code to put aircraft at the end of the runway closest to the desired
[flightgear.git] / src / Main / options.cxx
index 6e2ee313a875c2a1caf0d7800b3d324b0623ca5b..1c4c0a38781ce9e55e773894b1d5868746071936 100644 (file)
@@ -156,13 +156,12 @@ fgOPTIONS::fgOPTIONS() :
     splash_screen(1),
     intro_music(1),
     mouse_pointer(0),
-    pause(0),
     control_mode(FG_JOYSTICK),
     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),
 
@@ -183,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),
 
@@ -201,7 +200,7 @@ fgOPTIONS::fgOPTIONS() :
     network_olk(false)
 {
     // set initial values/defaults
-    time_offset_type = SG_TIME_SYS_OFFSET;
+    time_offset_type = FG_TIME_SYS_OFFSET;
     char* envp = ::getenv( "FG_ROOT" );
 
     if ( envp != NULL ) {
@@ -209,7 +208,7 @@ fgOPTIONS::fgOPTIONS() :
        // variable $FG_ROOT if it is set.
        fg_root = envp;
     } else {
-       // Otherwise, default to a random compiled in location if
+       // Otherwise, default to a random compiled-in location if
        // $FG_ROOT is not set.  This can still be overridden from the
        // command line or a config file.
 
@@ -222,6 +221,18 @@ fgOPTIONS::fgOPTIONS() :
 #endif
     }
 
+    // set a possibly independent location for scenery data
+    envp = ::getenv( "FG_SCENERY" );
+
+    if ( envp != NULL ) {
+       // fg_root could be anywhere, so default to environmental
+       // variable $FG_ROOT if it is set.
+       fg_scenery = envp;
+    } else {
+       // Otherwise, default to Scenery being in $FG_ROOT/Scenery
+       fg_scenery = "";
+    }
+
     airport_id = "";           // default airport id
     net_id = "Johnney";                // default pilot's name
 
@@ -232,8 +243,10 @@ fgOPTIONS::fgOPTIONS() :
 void 
 fgOPTIONS::toggle_panel() {
     
-    if( !pause )
-        toggle_pause();
+    bool freeze = globals->get_freeze();
+
+    if( !freeze )
+        globals->set_freeze(true);
     
     if( panel_status ) {
        panel_status = false;
@@ -244,16 +257,19 @@ 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() );
 
-    if( !pause )
-        toggle_pause();
+    if( !freeze )
+        globals->set_freeze( false );
 }
 
 double
@@ -433,12 +449,8 @@ long int fgOPTIONS::parse_date( const string& date)
        num[i] = '\0';
        gmt.tm_sec = atoi(num);
     }
-    time_t theTime = globals->get_time_params()->get_gmt(gmt.tm_year,
-                                                        gmt.tm_mon,
-                                                        gmt.tm_mday,
-                                                        gmt.tm_hour,
-                                                        gmt.tm_min,
-                                                        gmt.tm_sec);
+    time_t theTime = sgTimeGetGMT( gmt.tm_year, gmt.tm_mon, gmt.tm_mday,
+                                  gmt.tm_hour, gmt.tm_min, gmt.tm_sec );
     //printf ("Date is %s\n", ctime(&theTime));
     //printf ("in seconds that is %d\n", theTime);
     //exit(1);
@@ -557,10 +569,11 @@ fgOPTIONS::parse_fov( const string& arg ) {
 //  device = OS device name of serial line to be open()'ed
 //  baud = {300, 1200, 2400, ..., 230400}
 //
-// Socket exacmple "--native=socket,dir,hz,machine,port" where
+// Socket exacmple "--native=socket,dir,hz,machine,port,style" where
 // 
 //  machine = machine name or ip address if client (leave empty if server)
 //  port = port, leave empty to let system choose
+//  style = tcp or udp
 //
 // File example "--garmin=file,dir,hz,filename" where
 // 
@@ -598,10 +611,10 @@ int fgOPTIONS::parse_option( const string& arg ) {
        mouse_pointer = 1;
     } else if ( arg == "--enable-mouse-pointer" ) {
        mouse_pointer = 2;
-    } else if ( arg == "--disable-pause" ) {
-       pause = false;  
-    } else if ( arg == "--enable-pause" ) {
-       pause = true;   
+    } else if ( arg == "--disable-freeze" ) {
+       globals->set_freeze( false );
+    } else if ( arg == "--enable-freeze" ) {
+       globals->set_freeze( true );
     } else if ( arg == "--disable-anti-alias-hud" ) {
        anti_alias_hud = false; 
     } else if ( arg == "--enable-anti-alias-hud" ) {
@@ -623,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" ) {
@@ -677,6 +690,8 @@ int fgOPTIONS::parse_option( const string& arg ) {
        pitch = atof( arg.substr(8) );
     } 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) );
     if((flight_model == FGInterface::FG_JSBSIM) && (get_trim_mode() == 0)) {
@@ -774,22 +789,22 @@ int fgOPTIONS::parse_option( const string& arg ) {
        tile_diameter = tile_radius * 2 + 1;
     } else if ( arg.find( "--time-offset" ) != string::npos ) {
        time_offset = parse_time_offset( (arg.substr(14)) );
-       //time_offset_type = SG_TIME_SYS_OFFSET;
+       //time_offset_type = FG_TIME_SYS_OFFSET;
     } else if ( arg.find( "--time-match-real") != string::npos ) {
       //time_offset = parse_time_offset(arg.substr(18));
-       time_offset_type = SG_TIME_SYS_OFFSET;
+       time_offset_type = FG_TIME_SYS_OFFSET;
     } else if ( arg.find( "--time-match-local") != string::npos ) {
       //time_offset = parse_time_offset(arg.substr(18));
-       time_offset_type = SG_TIME_LAT_OFFSET;
+       time_offset_type = FG_TIME_LAT_OFFSET;
     } else if ( arg.find( "--start-date-sys=") != string::npos ) {
         time_offset = parse_date( (arg.substr(17)) );
-       time_offset_type = SG_TIME_SYS_ABSOLUTE;
+       time_offset_type = FG_TIME_SYS_ABSOLUTE;
     } else if ( arg.find( "--start-date-lat=") != string::npos ) {
         time_offset = parse_date( (arg.substr(17)) );
-       time_offset_type = SG_TIME_LAT_ABSOLUTE;
+       time_offset_type = FG_TIME_LAT_ABSOLUTE;
     } else if ( arg.find( "--start-date-gmt=") != string::npos ) {
         time_offset = parse_date( (arg.substr(17)) );
-       time_offset_type = SG_TIME_GMT_ABSOLUTE;
+       time_offset_type = FG_TIME_GMT_ABSOLUTE;
 
     } else if ( arg == "--hud-tris" ) {
        tris_or_culled = 0;     
@@ -910,6 +925,9 @@ void fgOPTIONS::usage ( void ) {
     cout << "\t--help -h:  print usage" << endl;
     cout << "\t--fg-root=path:  specify the root path for all the data files"
         << endl;
+    cout << "\t--fg-scenery=path:  specify the base path for all the scenery"
+        << " data." << endl
+        << "\t\tdefaults to $FG_ROOT/Scenery" << endl;
     cout << "\t--disable-game-mode:  disable full-screen game mode" << endl;
     cout << "\t--enable-game-mode:  enable full-screen game mode" << endl;
     cout << "\t--disable-splash-screen:  disable splash screen" << endl;
@@ -920,8 +938,8 @@ void fgOPTIONS::usage ( void ) {
     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-pause:  start out in an active state" << endl;
-    cout << "\t--enable-pause:  start out in a paused state" << endl;
+    cout << "\t--disable-freeze:  start out in an 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;
     cout << endl;
@@ -1026,6 +1044,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