]> git.mxchange.org Git - flightgear.git/commitdiff
Fix a bug with converting frequencies to "int".
authorcurt <curt>
Mon, 24 Apr 2000 23:51:56 +0000 (23:51 +0000)
committercurt <curt>
Mon, 24 Apr 2000 23:51:56 +0000 (23:51 +0000)
src/Navaids/Makefile.am
src/Navaids/fixlist.cxx
src/Navaids/fixlist.hxx
src/Navaids/ils.hxx
src/Navaids/ilslist.cxx
src/Navaids/ilslist.hxx
src/Navaids/nav.hxx
src/Navaids/navlist.cxx
src/Navaids/navlist.hxx
src/Navaids/testnavs.cxx

index c6301cf53b89256c882d9cd517ee14978ab7e924..0a8a61acdf263eb7e8ea68eae17e4a5015235c4a 100644 (file)
@@ -1,13 +1,13 @@
-noinst_LIBRARIES = libNavAids.a
+noinst_LIBRARIES = libNavaids.a
 
 noinst_PROGRAMS = testnavs
 
-libNavAids_a_SOURCES = \
+libNavaids_a_SOURCES = \
        fix.hxx fixlist.hxx fixlist.cxx \
        ils.hxx ilslist.hxx ilslist.cxx \
        nav.hxx navlist.hxx navlist.cxx
 
 testnavs_SOURCES = testnavs.cxx
-testnavs_LDADD = libNavAids.a -lsgdebug -lsgmath -lsgmisc -lz
+testnavs_LDADD = libNavaids.a -lsgdebug -lsgmath -lsgmisc -lz
 
 INCLUDES += -I$(top_builddir) -I$(top_builddir)/src
index 19de9895f8eae120a7aa3f1b63173a1f9cc84d1e..b03d9924137b8f3900972e231d4a7644db397bc0 100644 (file)
@@ -28,6 +28,9 @@
 #include "fixlist.hxx"
 
 
+FGFixList *current_fixlist;
+
+
 // Constructor
 FGFixList::FGFixList( void ) {
 }
index f172e323beb243f0c0fef44b4aa5aa3433416ece..cfd61a77d81b05db0d1b13afff66dc4d549fd8b2 100644 (file)
@@ -62,4 +62,7 @@ public:
 };
 
 
+extern FGFixList *current_fixlist;
+
+
 #endif // _FG_FIXLIST_HXX
index a8bd094e11934788ce0bc4ecf3f893fc5fcbcf70..c75ae617319d81bb5421655e30286ec91f56e31c 100644 (file)
@@ -112,7 +112,7 @@ operator >> ( istream& in, FGILS& i )
        >> i.imlat >> i.imlon;
        
 
-    i.locfreq = (int)(f * 100.0);
+    i.locfreq = (int)(f*100.0 + 0.5);
 
     // return in >> skipeol;
     return in;
index 164b06d2cda9d3c839d3bedaba5cc1737c3d3188..8c43d7c647766a0bc503d0879443517e521b8c8b 100644 (file)
@@ -28,6 +28,9 @@
 #include "ilslist.hxx"
 
 
+FGILSList *current_ilslist;
+
+
 // Constructor
 FGILSList::FGILSList( void ) {
 }
@@ -95,7 +98,7 @@ bool FGILSList::init( FGPath path ) {
 bool FGILSList::query( double lon, double lat, double elev, double freq,
                       FGILS *ils, double *heading, double *dist )
 {
-    ils_list_type stations = ilslist[(int)(freq*100.0)];
+    ils_list_type stations = ilslist[(int)(freq*100.0 + 0.5)];
 
     ils_list_iterator current = stations.begin();
     ils_list_iterator last = stations.end();
index 577a231240d299815d08a42cd97e2b9200bfc8fc..df6d7d6e74e9bbc9a8f85b897fbb71a5e42aff09 100644 (file)
@@ -65,4 +65,7 @@ public:
 };
 
 
+extern FGILSList *current_ilslist;
+
+
 #endif // _FG_ILSLIST_HXX
index beb0bab83e6e6f9ad5677ad5215873f00f212549..694effce1e559acf3b28debc1127dc4fbbe31104 100644 (file)
@@ -88,7 +88,7 @@ operator >> ( istream& in, FGNav& n )
     in >> n.type >> n.lat >> n.lon >> n.elev >> f >> n.range 
        >> c >> n.ident;
 
-    n.freq = (int)(f * 100.0);
+    n.freq = (int)(f*100.0 + 0.5);
     if ( c == 'Y' ) {
        n.dme = true;
     } else {
index 18f0cb2cc6dfd5b00484dd89ad926cd503c37a78..f439044b50cc18e97ddeae4fb69793375d82bfa2 100644 (file)
@@ -28,6 +28,9 @@
 #include "navlist.hxx"
 
 
+FGNavList *current_navlist;
+
+
 // Constructor
 FGNavList::FGNavList( void ) {
 }
@@ -95,7 +98,7 @@ bool FGNavList::init( FGPath path ) {
 bool FGNavList::query( double lon, double lat, double elev, double freq,
                       FGNav *n, double *heading, double *dist )
 {
-    nav_list_type stations = navaids[(int)(freq*100.0)];
+    nav_list_type stations = navaids[(int)(freq*100.0 + 0.5)];
 
     nav_list_iterator current = stations.begin();
     nav_list_iterator last = stations.end();
index 1ae80e5b04c2b9c42766c877d5f625dc6795225f..341bab049a1037616449d920700085603ff008ff 100644 (file)
@@ -65,4 +65,7 @@ public:
 };
 
 
+extern FGNavList *current_navlist;
+
+
 #endif // _FG_NAVLIST_HXX
index 1a2e3dcfd808cb24092c13187f4e35755056fe11..af502376c0976a3f97895ed061458bcef9d61e68 100644 (file)
@@ -7,12 +7,12 @@
 int main() {
     double heading, dist;
 
-    FGNavList navs;
+    current_navlist = new FGNavList;
     FGPath p_nav( "/home/curt/FlightGear/Navaids/default.nav" );
-    navs.init( p_nav );
+    current_navlist->init( p_nav );
     FGNav n;
-    if ( navs.query( -93.2, 45.14, 3000, 117.30,
-                    &n, &heading, &dist) ) {
+    if ( current_navlist->query( -93.2, 45.14, 3000, 117.30,
+                                &n, &heading, &dist) ) {
        cout << "Found a vor station in range" << endl;
        cout << " id = " << n.get_ident() << endl;
        cout << " heading = " << heading << " dist = " << dist << endl;
@@ -20,12 +20,12 @@ int main() {
        cout << "not picking up vor. :-(" << endl;
     }
 
-    FGILSList ilslist;
+    current_ilslist = new FGILSList;
     FGPath p_ils( "/home/curt/FlightGear/Navaids/default.ils" );
-    ilslist.init( p_ils );
+    current_ilslist->init( p_ils );
     FGILS i;
-    if ( ilslist.query( -93.1, 45.24, 3000, 110.30,
-                       &i, &heading, &dist) ) {
+    if ( current_ilslist->query( -93.1, 45.24, 3000, 110.30,
+                                &i, &heading, &dist) ) {
        cout << "Found an ils station in range" << endl;
        cout << " apt = " << i.get_aptcode() << endl;
        cout << " rwy = " << i.get_rwyno() << endl;
@@ -34,12 +34,12 @@ int main() {
        cout << "not picking up ils. :-(" << endl;
     }
 
-    FGFixList fixlist;
+    current_fixlist = new FGFixList;
     FGPath p_fix( "/home/curt/FlightGear/Navaids/default.fix" );
-    fixlist.init( p_fix );
+    current_fixlist->init( p_fix );
     FGFix fix;
-    if ( fixlist.query( "GONER", -82, 41, 3000,
-                       &fix, &heading, &dist) ) {
+    if ( current_fixlist->query( "GONER", -82, 41, 3000,
+                                &fix, &heading, &dist) ) {
        cout << "Found a matching fix" << endl;
        cout << " id = " << fix.get_ident() << endl;
        cout << " heading = " << heading << " dist = " << dist << endl;