]> git.mxchange.org Git - flightgear.git/commitdiff
Fix a problem where track would not get initialised to a sensible value before gettin...
authordaveluff <daveluff>
Thu, 4 Mar 2004 10:11:29 +0000 (10:11 +0000)
committerdaveluff <daveluff>
Thu, 4 Mar 2004 10:11:29 +0000 (10:11 +0000)
src/ATC/AIGAVFRTraffic.cxx
src/ATC/AIPlane.cxx

index 8449f236c35f8e01e27fbac8c89855e1737e4d2a..dd1827ee7bbf0a78587038f2acd0a69b29cf152b 100644 (file)
@@ -84,7 +84,9 @@ bool FGAIGAVFRTraffic::Init(Point3D pt, string destID, const string& callsign) {
        _pos.setelev(_cruise_alt);
        // initially set waypoint as airport location
        _wp = _destPos;
-       //_hdg = GetHeadingFromTo(_pos, _wp);
+       // Set the initial track
+       track = GetHeadingFromTo(_pos, _wp);
+       // And set the plane to keep following it.
        SetTrack(GetHeadingFromTo(_pos, _wp));
        _roll = 0.0;
        _pitch = 0.0;
index 91434828db9c75eeaf63927b90dd7f5f85f68e13..867bdcd054fceaed7f5b22a629199538eb7d654f 100644 (file)
@@ -44,6 +44,7 @@ FGAIPlane::FGAIPlane() {
        playing = false;
        voiceOK = false;
        vPtr = NULL;
+       track = 0.0;
        _tgtTrack = 0.0;
        _trackSet = false;
        _tgtRoll = 0.0;
@@ -124,6 +125,7 @@ void FGAIPlane::Update(double dt) {
                while((track - _tgtTrack) > 180.0) track -= 360.0;
                double turn_time = 60.0;
                track += (360.0 / turn_time) * dt * (_tgtTrack > track ? 1.0 : -1.0);
+               // TODO - bank a bit less for small turns.
                Bank(25.0 * (_tgtTrack > track ? 1.0 : -1.0));
                if(fabs(track - _tgtTrack) < 2.0) {             // TODO - might need to optimise the delta there - it's on the large (safe) side atm.
                        track = _tgtTrack;