X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Foptions.cxx;h=0e19d6ee38f6f7f379c5826334d07d2873150ec1;hb=09d4176e963be04dec40943083e369081b8f7a18;hp=ebcbefb398eb78d78a66227a6f1356baddc4668a;hpb=3db9dc5a2347e66755b9b13ca132cc644aa171f7;p=flightgear.git diff --git a/src/Main/options.cxx b/src/Main/options.cxx index ebcbefb39..0e19d6ee3 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -67,8 +67,6 @@ SG_USING_NAMESPACE(std); #define NEW_DEFAULT_MODEL_HZ 120 -string_list waypoints; - enum { FG_OPTIONS_OK = 0, @@ -541,36 +539,14 @@ add_channel( const string& type, const string& channel_str ) { // at this stage. // Parse --wp=ID[@alt] -static bool +static void parse_wp( const string& arg ) { - //string id, alt_str; - //double alt = 0.0; - // - //string::size_type pos = arg.find( "@" ); - //if ( pos != string::npos ) { - //id = arg.substr( 0, pos ); - //alt_str = arg.substr( pos + 1 ); - //// cout << "id str = " << id << " alt str = " << alt_str << endl; - //alt = atof( alt_str.c_str() ); - //if ( !strcmp(fgGetString("/sim/startup/units"), "feet") ) { - // alt *= SG_FEET_TO_METER; - //} - //} else { - //id = arg; - //} - // - //FGAirport a; - //if ( fgFindAirportID( id, &a ) ) { - // FGRouteMgr *rm = (FGRouteMgr *)globals->get_subsystem("route-manager"); - //SGWayPoint wp( a.longitude, a.latitude, alt, SGWayPoint::WGS84, id ); - //rm->add_waypoint( wp ); - // - //return true; - //} else { - //return false; - //} - //} - waypoints.push_back(arg); + string_list *waypoints = globals->get_initial_waypoints(); + if (!waypoints) { + waypoints = new string_list; + } + waypoints->push_back(arg); + globals->set_initial_waypoints(waypoints); } @@ -578,32 +554,34 @@ parse_wp( const string& arg ) { static bool parse_flightplan(const string& arg) { - sg_gzifstream in(arg.c_str()); - if ( !in.is_open() ) { - return false; - } - while ( true ) { - string line; - + string_list *waypoints = globals->get_initial_waypoints(); + if (!waypoints) + waypoints = new string_list; + sg_gzifstream in(arg.c_str()); + if ( !in.is_open() ) { + return false; + } + while ( true ) { + string line; + #if defined( macintosh ) - getline( in, line, '\r' ); + getline( in, line, '\r' ); #else - getline( in, line, '\n' ); + getline( in, line, '\n' ); #endif - - // catch extraneous (DOS) line ending character - if ( line[line.length() - 1] < 32 ) { - line = line.substr( 0, line.length()-1 ); - } - - if ( in.eof() ) { - break; - } - //parse_wp(line); - waypoints.push_back(line); + + // catch extraneous (DOS) line ending character + if ( line[line.length() - 1] < 32 ) { + line = line.substr( 0, line.length()-1 ); } - - return true; + + if ( in.eof() ) { + break; + } + waypoints->push_back(line); + } + globals->set_initial_waypoints(waypoints); + return true; } static int