+static int
+fgOptScenario( const char *arg )
+{
+ SGPropertyNode_ptr ai_node = fgGetNode( "/sim/ai", true );
+ vector<SGPropertyNode_ptr> scenarii = ai_node->getChildren( "scenario" );
+ int index = -1;
+ for ( size_t i = 0; i < scenarii.size(); ++i ) {
+ int ind = scenarii[i]->getIndex();
+ if ( index < ind ) {
+ index = ind;
+ }
+ }
+ SGPropertyNode_ptr scenario = ai_node->getNode( "scenario", index + 1, true );
+ scenario->setStringValue( arg );
+ ai_node->setBoolValue( "enabled", true );
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptRunway( const char *arg )
+{
+ fgSetString("/sim/presets/runway", arg );
+ fgSetBool("/sim/presets/runway-requested", true );
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptParking( const char *arg )
+{
+ cerr << "Processing argument " << arg << endl;
+ fgSetString("/sim/presets/parking", arg );
+ fgSetBool ("/sim/presets/parking-requested", true );
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptVersion( const char *arg )
+{
+ cerr << "FlightGear version: " << VERSION << endl;
+ cerr << "FG_ROOT=" << globals->get_fg_root() << endl;
+ cerr << "FG_HOME=" << fgGetString("/sim/fg-home") << endl;
+ cerr << "FG_SCENERY=";
+
+ int didsome = 0;
+ string_list scn = globals->get_fg_scenery();
+ for (string_list::const_iterator it = scn.begin(); it != scn.end(); it++)
+ {
+ if (didsome) cerr << ":";
+ didsome++;
+ cerr << *it;
+ }
+ cerr << endl;
+ cerr << "SimGear version: " << SG_STRINGIZE(SIMGEAR_VERSION) << endl;
+ cerr << "PLIB version: " << PLIB_VERSION << endl;
+ return FG_OPTIONS_EXIT;
+}
+
+static int
+fgOptFpe(const char* arg)
+{
+ // Actually handled in bootstrap.cxx
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptFgviewer(const char* arg)
+{
+ // Actually handled in bootstrap.cxx
+ return FG_OPTIONS_OK;
+}
+
+
+