1
0
Fork 0

Fix a problem where track would not get initialised to a sensible value before getting altered

This commit is contained in:
daveluff 2004-03-04 10:11:29 +00:00
parent 250ccf7bff
commit 406c7d7042
2 changed files with 5 additions and 1 deletions

View 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;

View 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;