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.
Working on getting fgfs and ssg to work without textures.
Also added the new 2D panel and the save/load support.
Property manager
Joystick support
Eric Mitchell <mitchell@mars.ark.com>

View file

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

View file

@ -208,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.
@ -221,6 +221,20 @@ 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
FGPath tmp( fg_root );
tmp.append( "Scenery" );
fg_scenery = tmp.str();
}
airport_id = ""; // default airport id
net_id = "Johnney"; // default pilot's name
@ -675,6 +689,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)) {
@ -908,6 +924,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;

View file

@ -128,6 +128,9 @@ private:
// The flight gear "root" directory
string fg_root;
// The scenery "root" directory
string fg_scenery;
// Starting position and orientation
string airport_id; // ID of initial starting airport
double lon; // starting longitude in degrees (west = -)
@ -224,6 +227,7 @@ public:
// Query functions
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 double get_lon() const { return lon; }
inline double get_lat() const { return lat; }
@ -294,6 +298,7 @@ public:
// Update functions
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_lon (double value) { lon = 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].tile_bucket = p;
FGPath tile_path( current_options.get_fg_root() );
tile_path.append( "Scenery" );
FGPath tile_path( current_options.get_fg_scenery() );
tile_path.append( p.gen_base_path() );
// Load the appropriate data file