diff --git a/src/Cockpit/cockpit.cxx b/src/Cockpit/cockpit.cxx index 2a1029284..fe3f9f393 100644 --- a/src/Cockpit/cockpit.cxx +++ b/src/Cockpit/cockpit.cxx @@ -522,158 +522,6 @@ float get_aux18 (void) return fdm->get_faux(10); } #endif -// $$$ end - added, VS Renganathan 13 Oct 2K - - -#ifdef NOT_USED -/****************************************************************************/ -/* Convert degrees to dd mm'ss.s" (DMS-Format) */ -/****************************************************************************/ -char *dmshh_format(double degrees) -{ - static char buf[16]; - int deg_part; - int min_part; - double sec_part; - - if (degrees < 0) - degrees = -degrees; - - deg_part = degrees; - min_part = 60.0 * (degrees - deg_part); - sec_part = 3600.0 * (degrees - deg_part - min_part / 60.0); - - /* Round off hundredths */ - if (sec_part + 0.005 >= 60.0) - sec_part -= 60.0, min_part += 1; - if (min_part >= 60) - min_part -= 60, deg_part += 1; - - sprintf(buf,"%02d*%02d %05.2f",deg_part,min_part,sec_part); - - return buf; -} -#endif // 0 - - -/************************************************************************ - Convert degrees to dd mm.mmm' (DMM-Format) - Description: Converts using a round-off factor tailored to the required - precision of the minutes field (three decimal places). Round-off - prevents function from returning a minutes value of 60. - - Input arguments: Coordinate value in decimal degrees - -************************************************************************/ -static char *toDM(float dd) -{ - static char dm[16]; - double tempdd; - double mn; - double sign = 1; - int deg; - - if (dd < 0) - sign = -1; - - /* round for minutes expressed to three decimal places */ - tempdd = fabs(dd) + (5.0E-4 / 60.0); - deg = (int)tempdd; - mn = fabs( (tempdd - (double)(deg)) * 60.0 - 4.999E-4 ); - deg *= (int)sign; - sprintf(dm, "%d*%06.3f", deg, mn); - return dm; -} - - -/************************************************************************ - Convert degrees to dd mm'ss.s'' (DMS-Format) - Description: Converts using a round-off factor tailored to the required - precision of the seconds field (one decimal place). Round-off - prevents function from returning a seconds value of 60. - - Input arguments: Coordinate value in decimal degrees - -************************************************************************/ -static char *toDMS(float dd) -{ - static char dms[16]; - double tempdd, tempmin; - int deg; - int mn; - double sec; - double sign = 1; - - if (dd < 0) - sign = -1; - - /* round up for seconds expressed to one decimal place */ - tempdd = fabs(dd) + (0.05 / 3600.0); - deg = (int)tempdd; - tempmin = (tempdd - (double)(deg)) * 60.0; - mn = (int)tempmin; - sec = fabs( (tempmin - (double)(mn)) * 60.0 - 0.049 ); - deg *= (int)sign; - sprintf(dms, "%d*%02d %04.1f", deg, mn, sec); - return dms; -} - - -// Have to set the LatLon display type -//static char *(*fgLatLonFormat)(float) = toDM; -static char *(*fgLatLonFormat)(float); - -char *coord_format_lat(float latitude) -{ - static char buf[16]; - - sprintf(buf,"%s%c", -// dmshh_format(latitude), -// toDMS(latitude), -// toDM(latitude), - fgLatLonFormat(latitude), - latitude > 0 ? 'N' : 'S'); - return buf; -} - -char *coord_format_lon(float longitude) -{ - static char buf[80]; - - sprintf(buf,"%s%c", -// dmshh_format(longitude), -// toDMS(longitude), -// toDM(longitude), - fgLatLonFormat(longitude), - longitude > 0 ? 'E' : 'W'); - return buf; -} - -void fgLatLonFormatToggle( puObject *) -{ - static bool toggle = false; - - if ( toggle ) - fgLatLonFormat = toDM; - else - fgLatLonFormat = toDMS; - - toggle = !toggle; -} - -#ifdef NOT_USED -char *coord_format_latlon(double latitude, double longitude) -{ - static char buf[1024]; - - sprintf(buf,"%s%c %s%c", - dmshh_format(latitude), - latitude > 0 ? 'N' : 'S', - dmshh_format(longitude), - longitude > 0 ? 'E' : 'W'); - return buf; -} -#endif bool fgCockpitInit( fgAIRCRAFT *cur_aircraft ) @@ -695,9 +543,6 @@ bool fgCockpitInit( fgAIRCRAFT *cur_aircraft ) fgHUDInit( cur_aircraft ); ac_cockpit = new fg_Cockpit(); - // Have to set the LatLon display type - fgLatLonFormat = toDM; - SG_LOG( SG_COCKPIT, SG_INFO, " Code " << ac_cockpit->code() << " Status " << ac_cockpit->status() ); diff --git a/src/Cockpit/hud.cxx b/src/Cockpit/hud.cxx index ad2e65811..693fb0059 100644 --- a/src/Cockpit/hud.cxx +++ b/src/Cockpit/hud.cxx @@ -54,7 +54,6 @@ //#include #include // FGFontCache #include
-#include
#include #include "hud.hxx" diff --git a/src/Cockpit/hud.hxx b/src/Cockpit/hud.hxx index 2cc0acc84..b06fa7b23 100644 --- a/src/Cockpit/hud.hxx +++ b/src/Cockpit/hud.hxx @@ -52,13 +52,13 @@ #include // float_to_int() #include -#include #include #include #include #include #include +#include
#include
#include
#include @@ -541,6 +541,8 @@ private: bool lat; bool lon; bool lbox; + SGPropertyNode_ptr lon_node; + SGPropertyNode_ptr lat_node; public: instr_label(const SGPropertyNode *); diff --git a/src/Cockpit/hud_labl.cxx b/src/Cockpit/hud_labl.cxx index f6caaff78..320e85fd6 100644 --- a/src/Cockpit/hud_labl.cxx +++ b/src/Cockpit/hud_labl.cxx @@ -3,8 +3,6 @@ # include #endif -#include
- #include "hud.hxx" #ifdef USE_HUD_TextList @@ -33,7 +31,9 @@ instr_label::instr_label(const SGPropertyNode *node) : blink(node->getIntValue("blinking")), lat(node->getBoolValue("latitude", false)), lon(node->getBoolValue("longitude", false)), - lbox(node->getBoolValue("label_box", false)) + lbox(node->getBoolValue("label_box", false)), + lon_node(fgGetNode("/position/longitude-string", true)), + lat_node(fgGetNode("/position/latitude-string", true)) { SG_LOG(SG_INPUT, SG_INFO, "Done reading instr_label instrument " << node->getStringValue("name", "[unnamed]")); @@ -86,9 +86,9 @@ void instr_label::draw(void) if (data_available()) { if (lat) - sprintf(label_buffer, format_buffer, coord_format_lat(get_value())); + snprintf(label_buffer, 80, format_buffer, lat_node->getStringValue()); else if (lon) - sprintf(label_buffer, format_buffer, coord_format_lon(get_value())); + snprintf(label_buffer, 80, format_buffer, lon_node->getStringValue()); else { if (lbox) {// Box for label float x = scrn_rect.left; diff --git a/src/Cockpit/hud_rwy.cxx b/src/Cockpit/hud_rwy.cxx index 64d01a5b0..f050619cf 100644 --- a/src/Cockpit/hud_rwy.cxx +++ b/src/Cockpit/hud_rwy.cxx @@ -25,7 +25,6 @@ #include "hud.hxx" #include -#include
#include
#include #include