- sound = true;
- } else if ( arg.find( "--airport-id=") != string::npos ) {
- airport_id = arg.substr( 13 );
- current_properties.setStringValue("/position/airport-id", airport_id);
- } else if ( arg.find( "--lon=" ) != string::npos ) {
- lon = parse_degree( arg.substr(6) );
- airport_id = "";
- current_properties.setDoubleValue("/position/longitude", lon);
- current_properties.setStringValue("/position/airport-id", airport_id);
- } else if ( arg.find( "--lat=" ) != string::npos ) {
- lat = parse_degree( arg.substr(6) );
- airport_id = "";
- current_properties.setDoubleValue("/position/latitude", lat);
- current_properties.setStringValue("/position/airport-id", airport_id);
- } else if ( arg.find( "--altitude=" ) != string::npos ) {
- if ( units == FG_UNITS_FEET ) {
- altitude = atof( arg.substr(11) ) * FEET_TO_METER;
- } else {
- altitude = atof( arg.substr(11) );
- }
- current_properties.setDoubleValue("/position/altitude", altitude);
- } else if ( arg.find( "--uBody=" ) != string::npos ) {
- speedset = FG_VTUVW;
- if ( units == FG_UNITS_FEET ) {
- uBody = atof( arg.substr(8) );
- } else {
- uBody = atof( arg.substr(8) ) * FEET_TO_METER;
- }
- //current_properties.setDoubleValue("/velocities/speed-north", uBody);
- } else if ( arg.find( "--vBody=" ) != string::npos ) {
- speedset = FG_VTUVW;
- if ( units == FG_UNITS_FEET ) {
- vBody = atof( arg.substr(8) );
- } else {
- vBody = atof( arg.substr(8) ) * FEET_TO_METER;
- }
- //current_properties.setDoubleValue("/velocities/speed-east", vBody);
- } else if ( arg.find( "--wBody=" ) != string::npos ) {
- speedset = FG_VTUVW;
- if ( units == FG_UNITS_FEET ) {
- wBody = atof( arg.substr(8) );
- } else {
- wBody = atof( arg.substr(8) ) * FEET_TO_METER;
- }
- } else if ( arg.find( "--vNorth=" ) != string::npos ) {
- speedset = FG_VTNED;
- if ( units == FG_UNITS_FEET ) {
- vNorth = atof( arg.substr(9) );
- } else {
- vNorth = atof( arg.substr(9) ) * FEET_TO_METER;
- }
- current_properties.setDoubleValue("/velocities/speed-north", vNorth);
- } else if ( arg.find( "--vEast=" ) != string::npos ) {
- speedset = FG_VTNED;
- if ( units == FG_UNITS_FEET ) {
- vEast = atof( arg.substr(8) );
- } else {
- vEast = atof( arg.substr(8) ) * FEET_TO_METER;
- }
- current_properties.setDoubleValue("/velocities/speed-east", vEast);
- } else if ( arg.find( "--vDown=" ) != string::npos ) {
- speedset = FG_VTNED;
- if ( units == FG_UNITS_FEET ) {
- vDown = atof( arg.substr(8) );
- } else {
- vDown = atof( arg.substr(8) ) * FEET_TO_METER;
- }
- current_properties.setDoubleValue("/velocities/speed-down", vDown);
- } else if ( arg.find( "--vc=" ) != string::npos) {
- speedset = FG_VC;
- vkcas=atof( arg.substr(5) );
- cout << "Got vc: " << vkcas << endl;
- } else if ( arg.find( "--mach=" ) != string::npos) {
- speedset = FG_MACH;
- mach=atof( arg.substr(7) );
- } else if ( arg.find( "--heading=" ) != string::npos ) {
- heading = atof( arg.substr(10) );
- current_properties.setDoubleValue("/orientation/heading", heading);
- } else if ( arg.find( "--roll=" ) != string::npos ) {
- roll = atof( arg.substr(7) );
- current_properties.setDoubleValue("/orientation/roll", roll);
- } else if ( arg.find( "--pitch=" ) != string::npos ) {
- pitch = atof( arg.substr(8) );
- current_properties.setDoubleValue("/orientation/pitch", pitch);
- } 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) );
- current_properties.setIntValue("/sim/flight-model", flight_model);
- if((flight_model == FGInterface::FG_JSBSIM) && (get_trim_mode() == 0)) {
- set_trim_mode(1);
- } else {
- set_trim_mode(0);
- }
- } else if ( arg.find( "--aircraft=" ) != string::npos ) {
- aircraft = arg.substr(11);
- current_properties.setStringValue("/sim/aircraft", aircraft);
- } else if ( arg.find( "--aircraft-dir=" ) != string::npos ) {
- aircraft_dir = arg.substr(15); // (UIUC)
- } else if ( arg.find( "--model-hz=" ) != string::npos ) {
- model_hz = atoi( arg.substr(11) );
- } else if ( arg.find( "--speed=" ) != string::npos ) {
- speed_up = atoi( arg.substr(8) );
- } else if ( arg.find( "--notrim") != string::npos) {
- trim=-1;
+ fgSetBool("/sim/sound", true);
+ } else if ( arg.find( "--airport-id=") == 0 ) {
+ // NB: changed property name!!!
+ fgSetString("/sim/startup/airport-id", arg.substr(13));
+ } else if ( arg.find( "--offset-distance=") == 0 ) {
+ fgSetDouble("/sim/startup/offset-distance", atof(arg.substr(18)));
+ } else if ( arg.find( "--offset-azimuth=") == 0 ) {
+ fgSetDouble("/sim/startup/offset-azimuth", atof(arg.substr(17)));
+ } else if ( arg.find( "--lon=" ) == 0 ) {
+ fgSetDouble("/position/longitude-deg",
+ parse_degree(arg.substr(6)));
+ fgSetString("/sim/startup/airport-id", "");
+ } else if ( arg.find( "--lat=" ) == 0 ) {
+ fgSetDouble("/position/latitude-deg",
+ parse_degree(arg.substr(6)));
+ fgSetString("/sim/startup/airport-id", "");
+ } else if ( arg.find( "--altitude=" ) == 0 ) {
+ fgSetBool("/sim/startup/onground", false);
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/position/altitude-ft", atof(arg.substr(11)));
+ else
+ fgSetDouble("/position/altitude-ft",
+ atof(arg.substr(11)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--uBody=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "UVW");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/uBody-fps", atof(arg.substr(8)));
+ else
+ fgSetDouble("/velocities/uBody-fps",
+ atof(arg.substr(8)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--vBody=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "UVW");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/vBody-fps", atof(arg.substr(8)));
+ else
+ fgSetDouble("/velocities/vBody-fps",
+ atof(arg.substr(8)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--wBody=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "UVW");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/wBody-fps", atof(arg.substr(8)));
+ else
+ fgSetDouble("/velocities/wBody-fps",
+ atof(arg.substr(8)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--vNorth=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "NED");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/speed-north-fps", atof(arg.substr(9)));
+ else
+ fgSetDouble("/velocities/speed-north-fps",
+ atof(arg.substr(9)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--vEast=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "NED");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/speed-east-fps", atof(arg.substr(8)));
+ else
+ fgSetDouble("/velocities/speed-east-fps",
+ atof(arg.substr(8)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--vDown=" ) == 0 ) {
+ fgSetString("/sim/startup/speed-set", "NED");
+ if ( fgGetString("/sim/startup/units") == "feet" )
+ fgSetDouble("/velocities/speed-down-fps", atof(arg.substr(8)));
+ else
+ fgSetDouble("/velocities/speed-down-fps",
+ atof(arg.substr(8)) * SG_METER_TO_FEET);
+ } else if ( arg.find( "--vc=" ) == 0) {
+ fgSetString("/sim/startup/speed-set", "knots");
+ fgSetDouble("/velocities/airspeed-kt", atof(arg.substr(5)));
+ } else if ( arg.find( "--mach=" ) == 0) {
+ fgSetString("/sim/startup/speed-set", "mach");
+ fgSetDouble("/velocities/mach", atof(arg.substr(7)));
+ } else if ( arg.find( "--heading=" ) == 0 ) {
+ fgSetDouble("/orientation/heading-deg", atof(arg.substr(10)));
+ } else if ( arg.find( "--roll=" ) == 0 ) {
+ fgSetDouble("/orientation/roll-deg", atof(arg.substr(7)));
+ } else if ( arg.find( "--pitch=" ) == 0 ) {
+ fgSetDouble("/orientation/pitch-deg", atof(arg.substr(8)));
+ } else if ( arg.find( "--fg-root=" ) == 0 ) {
+ globals->set_fg_root(arg.substr( 10 ));
+ } else if ( arg.find( "--fg-scenery=" ) == 0 ) {
+ globals->set_fg_scenery(arg.substr( 13 ));
+ } else if ( arg.find( "--fdm=" ) == 0 ) {
+ fgSetString("/sim/flight-model", arg.substr(6));
+ } else if ( arg.find( "--aircraft=" ) == 0 ) {
+ fgSetString("/sim/aircraft", arg.substr(11));
+ } else if ( arg.find( "--aircraft-dir=" ) == 0 ) {
+ fgSetString("/sim/aircraft-dir", arg.substr(15));
+ } else if ( arg.find( "--model-hz=" ) == 0 ) {
+ fgSetInt("/sim/model-hz", atoi(arg.substr(11)));
+ } else if ( arg.find( "--speed=" ) == 0 ) {
+ fgSetInt("/sim/speed-up", atoi(arg.substr(8)));
+ } else if ( arg.find( "--trim") == 0) {
+ fgSetBool("/sim/startup/trim", true);
+ } else if ( arg.find( "--notrim") == 0) {
+ fgSetBool("/sim/startup/trim", false);
+ } else if ( arg.find( "--on-ground") == 0) {
+ fgSetBool("/sim/startup/onground", true);
+ } else if ( arg.find( "--in-air") == 0) {
+ fgSetBool("/sim/startup/onground", false);