]> git.mxchange.org Git - flightgear.git/blobdiff - src/Cockpit/cockpit.cxx
Detect and recover from a math overflow that can possibly prevent panel text
[flightgear.git] / src / Cockpit / cockpit.cxx
index fa2780343f856e49b977dd611a015a804e51f731..f1bc1faea32ea36421c9cdec9d3afc024a65ffa1 100644 (file)
@@ -183,7 +183,7 @@ float get_altitude( void )
 
     float altitude;
 
-    if ( startup_units_node->getStringValue() == "feet" ) {
+    if ( !strcmp(startup_units_node->getStringValue(), "feet") ) {
         altitude = current_aircraft.fdm_state->get_Altitude();
     } else {
         altitude = (current_aircraft.fdm_state->get_Altitude()
@@ -195,9 +195,12 @@ float get_altitude( void )
 
 float get_agl( void )
 {
+    static const SGPropertyNode *startup_units_node
+        = fgGetNode("/sim/startup/units");
+
     float agl;
 
-    if ( fgGetString("/sim/startup/units") == "feet" ) {
+    if ( !strcmp(startup_units_node->getStringValue(), "feet") ) {
         agl = (current_aircraft.fdm_state->get_Altitude()
                - scenery.get_cur_elev() * SG_METER_TO_FEET);
     } else {
@@ -246,8 +249,11 @@ float get_vfc_tris_culled   ( void )
 
 float get_climb_rate( void )
 {
+    static const SGPropertyNode *startup_units_node
+        = fgGetNode("/sim/startup/units");
+
     float climb_rate;
-    if ( fgGetString("/sim/startup/units") == "feet" ) {
+    if ( !strcmp(startup_units_node->getStringValue(), "feet") ) {
         climb_rate = current_aircraft.fdm_state->get_Climb_Rate() * 60.0;
     } else {
         climb_rate = current_aircraft.fdm_state->get_Climb_Rate() * SG_FEET_TO_METER * 60.0;
@@ -259,7 +265,7 @@ float get_climb_rate( void )
 
 float get_view_direction( void )
 {
-    double view_off = SGD_2PI - globals->get_current_view()->get_view_offset();
+    double view_off = SGD_2PI - globals->get_current_view()->getHeadingOffset_deg() * SGD_DEGREES_TO_RADIANS;
     double view = ( current_aircraft.fdm_state->get_Psi() + view_off)
        * SGD_RADIANS_TO_DEGREES;
     
@@ -745,3 +751,4 @@ void fgCockpitUpdate( void ) {
     
     glViewport( 0, 0, iwidth, iheight );
 }
+