]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_props.cxx
Interim windows build fix
[flightgear.git] / src / Main / fg_props.cxx
index 42128b644a2dc481ed67e65351aa54d691dea081..141c3ef0731c292ccf354521018738fd4576d499 100644 (file)
@@ -38,9 +38,6 @@
 #include "globals.hxx"
 #include "fg_props.hxx"
 
-
-static bool winding_ccw = true; // FIXME: temporary
-
 static bool frozen = false;    // FIXME: temporary
 
 using std::string;
@@ -361,22 +358,6 @@ getTrackMag ()
   return SGMiscd::normalizePeriodic(0, 360, magtrack );
 }
 
-static bool
-getWindingCCW ()
-{
-  return winding_ccw;
-}
-
-static void
-setWindingCCW (bool state)
-{
-  winding_ccw = state;
-  if ( winding_ccw )
-    glFrontFace ( GL_CCW );
-  else
-    glFrontFace ( GL_CW );
-}
-
 ////////////////////////////////////////////////////////////////////////
 // Tie the properties.
 ////////////////////////////////////////////////////////////////////////
@@ -400,18 +381,28 @@ FGProperties::getLongitudeString ()
     // dd mm.mmm' (DMM-Format) -- uses a round-off factor tailored to the
     // required precision of the minutes field (three decimal places),
     // preventing minute values of 60.
-    double deg = d + 5.0E-4 / 60.0;
-    double min = (deg - int(deg)) * 60.0 - 4.999E-4;
-    snprintf(buf, 32, "%d*%06.3f%c", int(deg), min, c);
+    double min = (d - int(d)) * 60.0;
+    if (min >= 59.9995) {
+        min -= 60.0;
+        d += 1.0;
+    }
+    snprintf(buf, 32, "%d*%06.3f%c", int(d), fabs(min), c);
 
   } else {
     // mm'ss.s'' (DMS-Format) -- uses a round-off factor tailored to the
     // required precision of the seconds field (one decimal place),
     // preventing second values of 60.
-    double deg = d + 0.05 / 3600.0;
-    double min = (deg - int(deg)) * 60.0;
-    double sec = (min - int(min)) * 60.0 - 0.049;
-    snprintf(buf, 32, "%d*%02d %04.1f%c", int(deg),
+    double min = (d - int(d)) * 60.0;
+    double sec = (min - int(min)) * 60.0;
+    if (sec >= 59.95) {
+        sec -= 60.0;
+        min += 1.0;
+        if (min >= 60.0) {
+            min -= 60.0;
+            d += 1.0;
+        }
+    }
+    snprintf(buf, 32, "%d*%02d %04.1f%c", int(d),
         int(min), fabs(sec), c);
   }
   buf[31] = '\0';
@@ -431,15 +422,25 @@ FGProperties::getLatitudeString ()
     snprintf(buf, 32, "%3.6f%c", d, c);
 
   } else if (format == 1) {
-    double deg = d + 5.0E-4 / 60.0;
-    double min = (deg - int(deg)) * 60.0 - 4.999E-4;
-    snprintf(buf, 32, "%d*%06.3f%c", int(deg), min, c);
+    double min = (d - int(d)) * 60.0;
+    if (min >= 59.9995) {
+        min -= 60.0;
+        d += 1.0;
+    }
+    snprintf(buf, 32, "%d*%06.3f%c", int(d), fabs(min), c);
 
   } else {
-    double deg = d + 0.05 / 3600.0;
-    double min = (deg - int(deg)) * 60.0;
-    double sec = (min - int(min)) * 60.0 - 0.049;
-    snprintf(buf, 32, "%d*%02d %04.1f%c", int(deg),
+    double min = (d - int(d)) * 60.0;
+    double sec = (min - int(min)) * 60.0;
+    if (sec >= 59.95) {
+        sec -= 60.0;
+        min += 1.0;
+        if (min >= 60.0) {
+            min -= 60.0;
+            d += 1.0;
+        }
+    }
+    snprintf(buf, 32, "%d*%02d %04.1f%c", int(d),
         int(min), fabs(sec), c);
   }
   buf[31] = '\0';
@@ -510,9 +511,6 @@ FGProperties::bind ()
   // Orientation
   _tiedProperties.Tie("/orientation/heading-magnetic-deg", getHeadingMag);
   _tiedProperties.Tie("/orientation/track-magnetic-deg", getTrackMag);
-
-  // Misc. Temporary junk.
-  _tiedProperties.Tie("/sim/temp/winding-ccw", getWindingCCW, setWindingCCW, false);
 }
 
 void