]> git.mxchange.org Git - flightgear.git/commitdiff
Make sure at least one Transform() is performed to set the model position *before...
authordaveluff <daveluff>
Wed, 4 Feb 2004 17:00:19 +0000 (17:00 +0000)
committerdaveluff <daveluff>
Wed, 4 Feb 2004 17:00:19 +0000 (17:00 +0000)
src/ATC/AILocalTraffic.cxx

index 76a294f60c1547f80c60233b800d23ea03cd48bd..0f71a83693c6f71e7d8e517e7a0143ae58080cfe 100644 (file)
@@ -266,13 +266,13 @@ bool FGAILocalTraffic::Init(const string& callsign, string ICAO, OperatingState
                _pos = ourGate->pos;
                _pos.setelev(aptElev);
                _hdg = ourGate->heading;
+               Transform();
                
                // Now we've set the position we can do the ground elev
                elevInitGood = false;
                inAir = false;
                DoGroundElev();
                
-               Transform();
                break;
        case TAXIING:
                //tuned_station = ground;
@@ -295,8 +295,9 @@ bool FGAILocalTraffic::Init(const string& callsign, string ICAO, OperatingState
                slope = 0.0;
                elevInitGood = false;
                inAir = false;
-               DoGroundElev();
                Transform();
+               DoGroundElev();
+               //Transform();
                
                responseCounter = 0.0;
                contactTower = false;
@@ -335,6 +336,7 @@ bool FGAILocalTraffic::Init(const string& callsign, string ICAO, OperatingState
                        descending = false;
                        _aip.setVisible(true);
                        tower->RegisterAIPlane(plane, this, CIRCUIT, DOWNWIND);
+                       Transform();
                } else {                        
                        // Default to initial position on threshold for now
                        _pos.setlat(rwy.threshold_pos.lat());
@@ -346,18 +348,19 @@ bool FGAILocalTraffic::Init(const string& callsign, string ICAO, OperatingState
                        // This might not always be necessary if we implement in-air start
                        elevInitGood = false;
                        inAir = false;
-                       DoGroundElev();
                        
                        _pitch = 0.0;
                        _roll = 0.0;
                        leg = TAKEOFF_ROLL;
                        vel = 0.0;
                        slope = 0.0;
+                       
+                       Transform();
+                       DoGroundElev();
                }
        
                operatingState = IN_PATTERN;
                
-               Transform();
                break;
        case EN_ROUTE:
                // This implies we're being init'd by AIGAVFRTraffic - simple return now
@@ -692,6 +695,8 @@ void FGAILocalTraffic::Update(double dt) {
        }
        //cout << "I " << flush;
        
+       //cout << "Update _pos = " << _pos << ", vis = " << _aip.getVisible() << '\n';
+       
        // Convienience output for AI debugging using the property logger
        //fgSetDouble("/AI/Local1/ortho-x", (ortho.ConvertToLocal(_pos)).x());
        //fgSetDouble("/AI/Local1/ortho-y", (ortho.ConvertToLocal(_pos)).y());