X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Ffg_commands.cxx;h=96acc84e3bd1a8590fd7c57393dfe4a824241510;hb=d279c394d739d11b0b0367dc4be220e7b0834c84;hp=f998b5d6c23da013baf767b0df574ccabbcabe90;hpb=15b6c431c051d04d501b12b5a47ca721964017f1;p=flightgear.git diff --git a/src/Main/fg_commands.cxx b/src/Main/fg_commands.cxx index f998b5d6c..96acc84e3 100644 --- a/src/Main/fg_commands.cxx +++ b/src/Main/fg_commands.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -189,7 +190,7 @@ do_exit (const SGPropertyNode * arg) fgSetBool("/sim/signals/exit", true); if (fgGetBool("/sim/startup/save-on-exit")) { -#ifdef _MSC_VER +#ifdef _WIN32 char* envp = ::getenv( "APPDATA" ); if ( envp != NULL ) { SGPath config( envp ); @@ -576,10 +577,8 @@ do_tile_cache_reload (const SGPropertyNode * arg) * boundary and aloft environment layers. */ static bool -do_set_sea_level_degc (const SGPropertyNode * arg) +do_set_sea_level_degc ( double temp_sea_level_degc) { - double temp_sea_level_degc = arg->getDoubleValue("temp-degc", 15.0); - SGPropertyNode *node, *child; // boundary layers @@ -607,6 +606,12 @@ do_set_sea_level_degc (const SGPropertyNode * arg) return true; } +static bool +do_set_sea_level_degc (const SGPropertyNode * arg) +{ + return do_set_sea_level_degc( arg->getDoubleValue("temp-degc", 15.0) ); +} + /** * Set the outside air temperature at the "current" altitude by first @@ -616,8 +621,7 @@ do_set_sea_level_degc (const SGPropertyNode * arg) static bool do_set_oat_degc (const SGPropertyNode * arg) { - const string &temp_str = arg->getStringValue("temp-degc", "15.0"); - + double oat_degc = arg->getDoubleValue("temp-degc", 15.0); // check for an altitude specified in the arguments, otherwise use // current aircraft altitude. const SGPropertyNode *altitude_ft = arg->getChild("altitude-ft"); @@ -627,38 +631,8 @@ do_set_oat_degc (const SGPropertyNode * arg) FGEnvironment dummy; // instantiate a dummy so we can leech a method dummy.set_elevation_ft( altitude_ft->getDoubleValue() ); - dummy.set_temperature_degc( atof( temp_str.c_str() ) ); - double temp_sea_level_degc = dummy.get_temperature_sea_level_degc(); - - //cout << "Altitude = " << altitude_ft->getDoubleValue() << endl; - //cout << "Temp at alt (C) = " << atof( temp_str.c_str() ) << endl; - //cout << "Temp sea level (C) = " << temp_sea_level_degc << endl; - - SGPropertyNode *node, *child; - - // boundary layers - node = fgGetNode( "/environment/config/boundary" ); - if ( node != NULL ) { - int i = 0; - while ( ( child = node->getNode( "entry", i ) ) != NULL ) { - child->setDoubleValue( "temperature-sea-level-degc", - temp_sea_level_degc ); - ++i; - } - } - - // aloft layers - node = fgGetNode( "/environment/config/aloft" ); - if ( node != NULL ) { - int i = 0; - while ( ( child = node->getNode( "entry", i ) ) != NULL ) { - child->setDoubleValue( "temperature-sea-level-degc", - temp_sea_level_degc ); - ++i; - } - } - - return true; + dummy.set_temperature_degc( oat_degc ); + return do_set_sea_level_degc( dummy.get_temperature_sea_level_degc()); } /** @@ -666,9 +640,8 @@ do_set_oat_degc (const SGPropertyNode * arg) * boundary and aloft environment layers. */ static bool -do_set_dewpoint_sea_level_degc (const SGPropertyNode * arg) +do_set_dewpoint_sea_level_degc (double dewpoint_sea_level_degc) { - double dewpoint_sea_level_degc = arg->getDoubleValue("dewpoint-degc", 5.0); SGPropertyNode *node, *child; @@ -697,6 +670,11 @@ do_set_dewpoint_sea_level_degc (const SGPropertyNode * arg) return true; } +static bool +do_set_dewpoint_sea_level_degc (const SGPropertyNode * arg) +{ + return do_set_dewpoint_sea_level_degc(arg->getDoubleValue("dewpoint-degc", 5.0)); +} /** * Set the outside air dewpoint at the "current" altitude by first @@ -706,7 +684,7 @@ do_set_dewpoint_sea_level_degc (const SGPropertyNode * arg) static bool do_set_dewpoint_degc (const SGPropertyNode * arg) { - const string &dewpoint_str = arg->getStringValue("dewpoint-degc", "5.0"); + double dewpoint_degc = arg->getDoubleValue("dewpoint-degc", 5.0); // check for an altitude specified in the arguments, otherwise use // current aircraft altitude. @@ -717,38 +695,8 @@ do_set_dewpoint_degc (const SGPropertyNode * arg) FGEnvironment dummy; // instantiate a dummy so we can leech a method dummy.set_elevation_ft( altitude_ft->getDoubleValue() ); - dummy.set_dewpoint_degc( atof( dewpoint_str.c_str() ) ); - double dewpoint_sea_level_degc = dummy.get_dewpoint_sea_level_degc(); - - //cout << "Altitude = " << altitude_ft->getDoubleValue() << endl; - //cout << "Dewpoint at alt (C) = " << atof( dewpoint_str.c_str() ) << endl; - //cout << "Dewpoint at sea level (C) = " << dewpoint_sea_level_degc << endl; - - SGPropertyNode *node, *child; - - // boundary layers - node = fgGetNode( "/environment/config/boundary" ); - if ( node != NULL ) { - int i = 0; - while ( ( child = node->getNode( "entry", i ) ) != NULL ) { - child->setDoubleValue( "dewpoint-sea-level-degc", - dewpoint_sea_level_degc ); - ++i; - } - } - - // aloft layers - node = fgGetNode( "/environment/config/aloft" ); - if ( node != NULL ) { - int i = 0; - while ( ( child = node->getNode( "entry", i ) ) != NULL ) { - child->setDoubleValue( "dewpoint-sea-level-degc", - dewpoint_sea_level_degc ); - ++i; - } - } - - return true; + dummy.set_dewpoint_degc( dewpoint_degc ); + return do_set_dewpoint_sea_level_degc(dummy.get_dewpoint_sea_level_degc()); } /** @@ -1286,7 +1234,7 @@ do_presets_commit (const SGPropertyNode * arg) // unbind the current fdm state so property changes // don't get lost when we subsequently delete this fdm // and create a new one. - cur_fdm_state->unbind(); + globals->get_subsystem("flight")->unbind(); // set position from presets fgInitPosition(); @@ -1368,14 +1316,14 @@ do_increase_visibility (const SGPropertyNode * arg) static bool do_hud_init(const SGPropertyNode *) { - fgHUDInit(0); // minimal HUD + fgHUDInit(); // minimal HUD return true; } static bool do_hud_init2(const SGPropertyNode *) { - fgHUDInit2(0); // normal HUD + fgHUDInit2(); // normal HUD return true; } @@ -1596,9 +1544,9 @@ static struct { void fgInitCommands () { - SG_LOG(SG_GENERAL, SG_INFO, "Initializing basic built-in commands:"); + SG_LOG(SG_GENERAL, SG_BULK, "Initializing basic built-in commands:"); for (int i = 0; built_ins[i].name != 0; i++) { - SG_LOG(SG_GENERAL, SG_INFO, " " << built_ins[i].name); + SG_LOG(SG_GENERAL, SG_BULK, " " << built_ins[i].name); globals->get_commands()->addCommand(built_ins[i].name, built_ins[i].command); }