1
0
Fork 0

Make EDDF procedures work better.

Allow mis-match of STAR and approach, which is necessary for EDDF
operations. When there’s a mismatch, just route the common section
and don’t try to build a STAR -> approach transition.

Fix by Tobias Dammers.
This commit is contained in:
James Turner 2020-10-25 20:31:53 +00:00
parent a21c0f9c16
commit afb43edbdf

View file

@ -133,7 +133,6 @@ bool Approach::route(FGRunwayRef runway, WayptRef aIAF, WayptVec& aWps)
// warn and just use the primary waypoints down below
SG_LOG(SG_NAVAID, SG_INFO, "approach " << ident() << " has no transition " <<
"for IAF: " << aIAF->ident());
return false;
}
}
}
@ -168,7 +167,7 @@ string_list Approach::transitionIdents() const
{
string_list r;
r.reserve(_transitions.size());
for (const auto t : _transitions) {
for (const auto& t : _transitions) {
r.push_back(t.second->ident());
}
return r;
@ -290,7 +289,14 @@ bool ArrivalDeparture::commonRoute(Transition* t, WayptVec& aPath, FGRunwayRef a
}
RunwayTransitionMap::iterator r = _runways.find(aRwy);
assert(r != _runways.end());
if (r == _runways.end()) {
// runway doesn't match STAR/SID; this may be intentional (cf. EDDF
// transitions), so we have to cater for it: we will just return at this
// point, and trust the calling code to insert VECTORS or select an
// appropriate approach transition.
return true;
}
if (!r->second) {
// no transitions specified. Not great, but not
// much we can do about it. Calling code will insert VECTORS to the approach