]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/fg_props.cxx
Interim windows build fix
[flightgear.git] / src / Main / fg_props.cxx
index d8bda0f0829e9b67796f5f3a5f4b2a78a356c954..141c3ef0731c292ccf354521018738fd4576d499 100644 (file)
 #include "globals.hxx"
 #include "fg_props.hxx"
 
-
-static bool winding_ccw = true; // FIXME: temporary
-
 static bool frozen = false;    // FIXME: temporary
 
 using std::string;
-\f
 ////////////////////////////////////////////////////////////////////////
 // Default property bindings (not yet handled by any module).
 ////////////////////////////////////////////////////////////////////////
@@ -79,6 +75,8 @@ LogClassMapping log_class_mappings [] = {
   LogClassMapping(SG_AI, "ai"),
   LogClassMapping(SG_ENVIRONMENT, "environment"),
   LogClassMapping(SG_SOUND, "sound"),
+  LogClassMapping(SG_NAVAID, "navaid"),
+  LogClassMapping(SG_GUI, "gui"),
   LogClassMapping(SG_UNDEFD, "")
 };
 
@@ -96,7 +94,7 @@ string loggingResult;
 static const char *
 getLoggingClasses ()
 {
-  sgDebugClass classes = logbuf::get_log_classes();
+  sgDebugClass classes = sglog().get_log_classes();
   loggingResult.clear();
   for (int i = 0; log_class_mappings[i].c != SG_UNDEFD; i++) {
     if ((classes&log_class_mappings[i].c) > 0) {
@@ -112,10 +110,10 @@ getLoggingClasses ()
 static void
 addLoggingClass (const string &name)
 {
-  sgDebugClass classes = logbuf::get_log_classes();
+  sgDebugClass classes = sglog().get_log_classes();
   for (int i = 0; log_class_mappings[i].c != SG_UNDEFD; i++) {
     if (name == log_class_mappings[i].name) {
-      logbuf::set_log_classes(sgDebugClass(classes|log_class_mappings[i].c));
+      sglog().set_log_classes(sgDebugClass(classes|log_class_mappings[i].c));
       return;
     }
   }
@@ -130,7 +128,7 @@ void
 setLoggingClasses (const char * c)
 {
   string classes = c;
-  logbuf::set_log_classes(SG_NONE);
+  sglog().set_log_classes(SG_NONE);
 
   if (classes == "none") {
     SG_LOG(SG_GENERAL, SG_INFO, "Disabled all logging classes");
@@ -138,7 +136,7 @@ setLoggingClasses (const char * c)
   }
 
   if (classes.empty() || classes == "all") { // default
-    logbuf::set_log_classes(SG_ALL);
+    sglog().set_log_classes(SG_ALL);
     SG_LOG(SG_GENERAL, SG_INFO, "Enabled all logging classes: "
           << getLoggingClasses());
     return;
@@ -169,7 +167,7 @@ setLoggingClasses (const char * c)
 static const char *
 getLoggingPriority ()
 {
-  switch (logbuf::get_log_priority()) {
+  switch (sglog().get_log_priority()) {
   case SG_BULK:
     return "bulk";
   case SG_DEBUG:
@@ -182,7 +180,7 @@ getLoggingPriority ()
     return "alert";
   default:
     SG_LOG(SG_GENERAL, SG_WARN, "Internal: Unknown logging priority number: "
-          << logbuf::get_log_priority());
+          << sglog().get_log_priority());
     return "unknown";
   }
 }
@@ -198,15 +196,15 @@ setLoggingPriority (const char * p)
       return;
   string priority = p;
   if (priority == "bulk") {
-    logbuf::set_log_priority(SG_BULK);
+    sglog().set_log_priority(SG_BULK);
   } else if (priority == "debug") {
-    logbuf::set_log_priority(SG_DEBUG);
+    sglog().set_log_priority(SG_DEBUG);
   } else if (priority.empty() || priority == "info") { // default
-    logbuf::set_log_priority(SG_INFO);
+    sglog().set_log_priority(SG_INFO);
   } else if (priority == "warn") {
-    logbuf::set_log_priority(SG_WARN);
+    sglog().set_log_priority(SG_WARN);
   } else if (priority == "alert") {
-    logbuf::set_log_priority(SG_ALERT);
+    sglog().set_log_priority(SG_ALERT);
   } else {
     SG_LOG(SG_GENERAL, SG_WARN, "Unknown logging priority " << priority);
   }
@@ -360,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.
 ////////////////////////////////////////////////////////////////////////
@@ -390,6 +372,7 @@ FGProperties::getLongitudeString ()
   double d = _longDeg->getDoubleValue();
   int format = _lonLatformat->getIntValue();
   char c = d < 0.0 ? 'W' : 'E';
+  d = fabs(d);
 
   if (format == 0) {
     snprintf(buf, 32, "%3.6f%c", d, c);
@@ -398,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 = fabs(d) + 5.0E-4 / 60.0;
-    double min = fabs(deg - int(deg)) * 60.0 - 4.999E-4;
-    snprintf(buf, 32, "%d*%06.3f%c", int(d < 0.0 ? -deg : 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 = fabs(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(d < 0.0 ? -deg : 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';
@@ -423,20 +416,31 @@ FGProperties::getLatitudeString ()
   double d = _latDeg->getDoubleValue();
   int format = _lonLatformat->getIntValue();
   char c = d < 0.0 ? 'S' : 'N';
+  d = fabs(d);
 
   if (format == 0) {
     snprintf(buf, 32, "%3.6f%c", d, c);
 
   } else if (format == 1) {
-    double deg = fabs(d) + 5.0E-4 / 60.0;
-    double min = fabs(deg - int(deg)) * 60.0 - 4.999E-4;
-    snprintf(buf, 32, "%d*%06.3f%c", int(d < 0.0 ? -deg : 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 = fabs(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(d < 0.0 ? -deg : 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';
@@ -507,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
@@ -601,9 +602,7 @@ fgLoadFlight (std::istream &input)
   fgSetString("/sim/presets/speed-set", "UVW");
 
   copyProperties(&props, globals->get_props());
-  // When loading a flight, make it the
-  // new initial state.
-  globals->saveInitialState();
+
   return true;
 }