1
0
Fork 0

Added support for $FG_SCENERY and --fg-scenery=path

This commit is contained in:
curt 2000-07-14 16:57:55 +00:00
parent f134adfc6a
commit 71747eb892
5 changed files with 28 additions and 4 deletions

2
Thanks
View file

@ -190,6 +190,8 @@ David Megginson <david@megginson.com>
Updates to README.running. Updates to README.running.
Working on getting fgfs and ssg to work without textures. Working on getting fgfs and ssg to work without textures.
Also added the new 2D panel and the save/load support. Also added the new 2D panel and the save/load support.
Property manager
Joystick support
Eric Mitchell <mitchell@mars.ark.com> Eric Mitchell <mitchell@mars.ark.com>

View file

@ -1,4 +1,3 @@
//
// fg_init.cxx -- Flight Gear top level initialization routines // fg_init.cxx -- Flight Gear top level initialization routines
// //
// Written by Curtis Olson, started August 1997. // Written by Curtis Olson, started August 1997.

View file

@ -208,7 +208,7 @@ fgOPTIONS::fgOPTIONS() :
// variable $FG_ROOT if it is set. // variable $FG_ROOT if it is set.
fg_root = envp; fg_root = envp;
} else { } 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 // $FG_ROOT is not set. This can still be overridden from the
// command line or a config file. // command line or a config file.
@ -221,6 +221,20 @@ fgOPTIONS::fgOPTIONS() :
#endif #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
FGPath tmp( fg_root );
tmp.append( "Scenery" );
fg_scenery = tmp.str();
}
airport_id = ""; // default airport id airport_id = ""; // default airport id
net_id = "Johnney"; // default pilot's name net_id = "Johnney"; // default pilot's name
@ -675,6 +689,8 @@ int fgOPTIONS::parse_option( const string& arg ) {
pitch = atof( arg.substr(8) ); pitch = atof( arg.substr(8) );
} else if ( arg.find( "--fg-root=" ) != string::npos ) { } else if ( arg.find( "--fg-root=" ) != string::npos ) {
fg_root = arg.substr( 10 ); 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 ) { } else if ( arg.find( "--fdm=" ) != string::npos ) {
flight_model = parse_fdm( arg.substr(6) ); flight_model = parse_fdm( arg.substr(6) );
if((flight_model == FGInterface::FG_JSBSIM) && (get_trim_mode() == 0)) { if((flight_model == FGInterface::FG_JSBSIM) && (get_trim_mode() == 0)) {
@ -908,6 +924,9 @@ void fgOPTIONS::usage ( void ) {
cout << "\t--help -h: print usage" << endl; cout << "\t--help -h: print usage" << endl;
cout << "\t--fg-root=path: specify the root path for all the data files" cout << "\t--fg-root=path: specify the root path for all the data files"
<< endl; << 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--disable-game-mode: disable full-screen game mode" << endl;
cout << "\t--enable-game-mode: enable 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; cout << "\t--disable-splash-screen: disable splash screen" << endl;

View file

@ -128,6 +128,9 @@ private:
// The flight gear "root" directory // The flight gear "root" directory
string fg_root; string fg_root;
// The scenery "root" directory
string fg_scenery;
// Starting position and orientation // Starting position and orientation
string airport_id; // ID of initial starting airport string airport_id; // ID of initial starting airport
double lon; // starting longitude in degrees (west = -) double lon; // starting longitude in degrees (west = -)
@ -224,6 +227,7 @@ public:
// Query functions // Query functions
inline string get_fg_root() const { return fg_root; } inline string get_fg_root() const { return fg_root; }
inline string get_fg_scenery() const { return fg_scenery; }
inline string get_airport_id() const { return airport_id; } inline string get_airport_id() const { return airport_id; }
inline double get_lon() const { return lon; } inline double get_lon() const { return lon; }
inline double get_lat() const { return lat; } inline double get_lat() const { return lat; }
@ -294,6 +298,7 @@ public:
// Update functions // Update functions
inline void set_fg_root (const string value) { fg_root = value; } inline void set_fg_root (const string value) { fg_root = value; }
inline void set_fg_scenery (const string value) { fg_scenery = value; }
inline void set_airport_id( const string id ) { airport_id = id; } inline void set_airport_id( const string id ) { airport_id = id; }
inline void set_lon (double value) { lon = value; } inline void set_lon (double value) { lon = value; }
inline void set_lat (double value) { lat = value; } inline void set_lat (double value) { lat = value; }

View file

@ -169,8 +169,7 @@ FGTileCache::fill_in( int index, const FGBucket& p )
tile_cache[index].range_ptr = new ssgRangeSelector; tile_cache[index].range_ptr = new ssgRangeSelector;
tile_cache[index].tile_bucket = p; tile_cache[index].tile_bucket = p;
FGPath tile_path( current_options.get_fg_root() ); FGPath tile_path( current_options.get_fg_scenery() );
tile_path.append( "Scenery" );
tile_path.append( p.gen_base_path() ); tile_path.append( p.gen_base_path() );
// Load the appropriate data file // Load the appropriate data file