#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).
////////////////////////////////////////////////////////////////////////
LogClassMapping(SG_AI, "ai"),
LogClassMapping(SG_ENVIRONMENT, "environment"),
LogClassMapping(SG_SOUND, "sound"),
+ LogClassMapping(SG_NAVAID, "navaid"),
+ LogClassMapping(SG_GUI, "gui"),
LogClassMapping(SG_UNDEFD, "")
};
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) {
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;
}
}
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");
}
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;
static const char *
getLoggingPriority ()
{
- switch (logbuf::get_log_priority()) {
+ switch (sglog().get_log_priority()) {
case SG_BULK:
return "bulk";
case SG_DEBUG:
return "alert";
default:
SG_LOG(SG_GENERAL, SG_WARN, "Internal: Unknown logging priority number: "
- << logbuf::get_log_priority());
+ << sglog().get_log_priority());
return "unknown";
}
}
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);
}
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.
////////////////////////////////////////////////////////////////////////
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);
// 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';
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';
// 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
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;
}