]> git.mxchange.org Git - flightgear.git/blobdiff - src/Navaids/navdb.cxx
make that __MWERKS__ :-}
[flightgear.git] / src / Navaids / navdb.cxx
index b9d5afc099af93901629e62de5760880660cd075..f7a2761f3dc67ee64db562624c91c7990db9d086 100644 (file)
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
 
 #include <simgear/compiler.h>
 
@@ -72,8 +75,14 @@ bool fgNavDBInit( FGAirportList *airports,
 
 
 #ifdef __MWERKS__
+
+ FIXME -- Please report to the FlightGear mailing list, if you still use a
+          compiler identifying itself as __MWERKS__ that needs this hack.
+          There are 41 instances of it in the SimGear & FilghtGear code,
+          and they are scheduled for removal.
+
     char c = 0;
-    while ( in.get(c) && c != '\0'  ) {
+    while ( in.get(c) && c != '\0' ) {
         in.putback(c);
 #else
     while ( ! in.eof() ) {
@@ -82,6 +91,7 @@ bool fgNavDBInit( FGAirportList *airports,
         FGNavRecord *r = new FGNavRecord;
         in >> (*r);
         if ( r->get_type() > 95 ) {
+            delete r;
             break;
         }
 
@@ -119,11 +129,11 @@ bool fgNavDBInit( FGAirportList *airports,
         {
             // Marker Beacon = 7,8,9
             mkrlist->add( r );
-        } else if ( r->get_type() == 12 ) {
-            // DME=12
+        } else if ( r->get_type() == 12 || r->get_type() == 13) {
+            // DME with ILS=12; standalone DME=13
             string str1( r->get_name() );
-            unsigned int loc1= str1.find( "TACAN", 0 );
-            unsigned int loc2 = str1.find( "VORTAC", 0 );
+            string::size_type loc1= str1.find( "TACAN", 0 );
+            string::size_type loc2 = str1.find( "VORTAC", 0 );
                        
             if( loc1 != string::npos || loc2 != string::npos ){
                  //cout << " name = " << r->get_name() ;
@@ -146,7 +156,7 @@ bool fgNavDBInit( FGAirportList *airports,
     path.append( "Navaids/carrier_nav.dat" );
     
     file = path.str();
-    SG_LOG( SG_GENERAL, SG_ALERT, "opening file: " << path.str() );
+    SG_LOG( SG_GENERAL, SG_INFO, "opening file: " << path.str() );
     
     sg_gzifstream incarrier( path.str() );
     
@@ -187,9 +197,8 @@ bool fgNavDBInit( FGAirportList *airports,
     path = globals->get_fg_root();
     path.append( "Navaids/TACAN_freq.dat" );
     
-    file = path.str();
-    cout << file << endl;
-    //
+    SG_LOG( SG_GENERAL, SG_INFO, "opening file: " << path.str() );
+        
     sg_gzifstream inchannel( path.str() );
     
     if ( !inchannel.is_open() ) {
@@ -291,10 +300,10 @@ void fgNavDBAlignLOCwithRunway( FGRunwayList *runways, FGNavList *loclist,
                                 double threshold ) {
     nav_map_type navmap = loclist->get_navaids();
 
-    nav_map_iterator freq = navmap.begin();
+    nav_map_const_iterator freq = navmap.begin();
     while ( freq != navmap.end() ) {
         nav_list_type locs = freq->second;
-        nav_list_iterator loc = locs.begin();
+        nav_list_const_iterator loc = locs.begin();
         while ( loc != locs.end() ) {
             string name = (*loc)->get_name();
             string::size_type pos1 = name.find(" ");