]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/environment.cxx
Set the format default to float instead of int.
[flightgear.git] / src / Environment / environment.cxx
index e6eb0b8a6648d95b4ee87418ec3259f01e1807e1..2448ec3ed758c6e0648a9f92c6076732962ca2dd 100644 (file)
@@ -184,14 +184,14 @@ FGEnvironment::read (const SGPropertyNode * node)
     maybe_copy_value(this, node, "visibility-m",
                      &FGEnvironment::set_visibility_m);
 
-    if (!maybe_copy_value(this, node, "temperature-degc",
+    if (!maybe_copy_value(this, node, "temperature-sea-level-degc",
                           &FGEnvironment::set_temperature_sea_level_degc))
-        maybe_copy_value(this, node, "temperature-sea-level-degc",
+        maybe_copy_value(this, node, "temperature-degc",
                          &FGEnvironment::set_temperature_degc);
 
-    if (!maybe_copy_value(this, node, "dewpoint-degc",
+    if (!maybe_copy_value(this, node, "dewpoint-sea-level-degc",
                           &FGEnvironment::set_dewpoint_sea_level_degc))
-        maybe_copy_value(this, node, "dewpoint-sea-level-degc",
+        maybe_copy_value(this, node, "dewpoint-degc",
                          &FGEnvironment::set_dewpoint_degc);
 
     if (!maybe_copy_value(this, node, "pressure-sea-level-inhg",
@@ -442,12 +442,22 @@ FGEnvironment::_recalc_hdgspd ()
     wind_from_heading_deg = 90 - wind_from_heading_deg;
   else
     wind_from_heading_deg = 270 - wind_from_heading_deg;
+
+#if 0
+  // FIXME: Windspeed can become negative with these formulas.
+  //        which can cause problems for animations that rely
+  //        on the windspeed property.
   if (angle_rad == 0)
     wind_speed_kt = fabs(wind_from_east_fps
                         * SG_METER_TO_NM * SG_FEET_TO_METER * 3600);
   else
     wind_speed_kt = (wind_from_north_fps / sin(angle_rad))
       * SG_METER_TO_NM * SG_FEET_TO_METER * 3600;
+#else
+  wind_speed_kt = sqrt(wind_from_north_fps * wind_from_north_fps +
+                       wind_from_east_fps * wind_from_east_fps) 
+                  * SG_METER_TO_NM * SG_FEET_TO_METER * 3600;
+#endif
 }
 
 void
@@ -576,14 +586,14 @@ interpolate (const FGEnvironment * env1, const FGEnvironment * env2,
                    env2->get_visibility_m(),
                    fraction));
 
-    result->set_temperature_degc
-        (do_interp(env1->get_temperature_degc(),
-                   env2->get_temperature_degc(),
+    result->set_temperature_sea_level_degc
+        (do_interp(env1->get_temperature_sea_level_degc(),
+                   env2->get_temperature_sea_level_degc(),
                    fraction));
 
     result->set_dewpoint_degc
-        (do_interp(env1->get_dewpoint_degc(),
-                   env2->get_dewpoint_degc(),
+        (do_interp(env1->get_dewpoint_sea_level_degc(),
+                   env2->get_dewpoint_sea_level_degc(),
                    fraction));
 
     result->set_pressure_sea_level_inhg