]> git.mxchange.org Git - flightgear.git/blobdiff - src/ATC/AIMgr.cxx
Multiplayer client/server system -- MessageBuf class and test harness complete
[flightgear.git] / src / ATC / AIMgr.cxx
index f2547549b3ff85ce5fa3f86947ba275082273f9b..d44a845114339721d29772b4f2e48a984933ccfa 100644 (file)
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-#include <Airports/simple.hxx>
-#include <Main/fgfs.hxx>
+#include <simgear/misc/sg_path.hxx>
+
 #include <Main/fg_props.hxx>
 #include <Main/globals.hxx>
-#include <simgear/misc/sg_path.hxx>
-#include <simgear/bucket/newbucket.hxx>
 
 #include <list>
 
@@ -44,6 +42,7 @@ SG_USING_STD(cout);
 
 FGAIMgr::FGAIMgr() {
        ATC = globals->get_ATC_mgr();
+       initDone = false;
 }
 
 FGAIMgr::~FGAIMgr() {
@@ -54,6 +53,10 @@ void FGAIMgr::init() {
        lon_node = fgGetNode("/position/longitude-deg", true);
        lat_node = fgGetNode("/position/latitude-deg", true);
        elev_node = fgGetNode("/position/altitude-ft", true);
+
+       lon = lon_node->getDoubleValue();
+       lat = lat_node->getDoubleValue();
+       elev = elev_node->getDoubleValue();
        
        // go through the $FG_ROOT/ATC directory and find all *.taxi files
        SGPath path(globals->get_fg_root());
@@ -72,7 +75,7 @@ void FGAIMgr::init() {
        path_str = dir + "\\*.*";
        
        if ( ( hfile = _findfirst( path.c_str(), &de ) ) == -1 ) {
-               cout << "cannot open directory " << dir << "\n";
+               SG_LOG(SG_ATC, SG_WARN, "cannot open directory " << dir);
        } else {                
                // load all .taxi files
                do {
@@ -80,7 +83,6 @@ void FGAIMgr::init() {
                        pos = file.find(".");
                        ext = file.substr(pos + 1);
                        if(ext == "taxi") {
-                               cout << "TAXI FILE FOUND!!!\n";
                                f_ident = file.substr(0, pos);
                                FGAirport a;
                                if(dclFindAirportID(f_ident, &a)) {
@@ -93,7 +95,7 @@ void FGAIMgr::init() {
                                                apts->push_back(f_ident);
                                                airports[idx] = apts;
                                        }
-                                       cout << "Mapping " << f_ident << " to bucket " << idx << '\n'
+                                       SG_LOG(SG_ATC, SG_BULK, "Mapping " << f_ident << " to bucket " << idx)
                                }
                        }
                } while ( _findnext( hfile, &de ) == 0 );
@@ -104,19 +106,14 @@ void FGAIMgr::init() {
     struct dirent *de;
 
     if ( (d = opendir( dir.c_str() )) == NULL ) {
-               cout << "cannot open directory " << dir << "\n";
+               SG_LOG(SG_ATC, SG_WARN, "cannot open directory " << dir);
        } else {
-               cout << "Opened directory " << dir << " OK :-)\n";
-               cout << "Contents are:\n";
                // load all .taxi files
                while ( (de = readdir(d)) != NULL ) {
                        file = de->d_name;
                        pos = file.find(".");
-                       cout << file << '\n';
-
                        ext = file.substr(pos + 1);
                        if(ext == "taxi") {
-                               cout << "TAXI FILE FOUND!!!\n";
                                f_ident = file.substr(0, pos);
                                FGAirport a;
                                if(dclFindAirportID(f_ident, &a)) {
@@ -129,7 +126,7 @@ void FGAIMgr::init() {
                                                apts->push_back(f_ident);
                                                airports[idx] = apts;
                                        }
-                                       cout << "Mapping " << f_ident << " to bucket " << idx << '\n'; 
+                                       SG_LOG(SG_ATC, SG_BULK, "Mapping " << f_ident << " to bucket " << idx);
                                }
                        }
                }               
@@ -139,6 +136,8 @@ void FGAIMgr::init() {
        
        // See if are in range at startup and activate if necessary
        SearchByPos(10.0);
+       
+       initDone = true;
 }
 
 void FGAIMgr::bind() {
@@ -148,6 +147,11 @@ void FGAIMgr::unbind() {
 }
 
 void FGAIMgr::update(double dt) {
+       if(!initDone) {
+               init();
+               SG_LOG(SG_ATC, SG_WARN, "Warning - AIMgr::update(...) called before AIMgr::init()");
+       }
+       
        static int i = 0;
        static int j = 0;