More precise matching of ILS records to navaids.
This commit is contained in:
parent
98b5e7e6fe
commit
25c55f67bf
1 changed files with 5 additions and 2 deletions
|
@ -135,7 +135,11 @@ void FGNavRecord::readAirportSceneryData()
|
||||||
SGPropertyNode* runwayNode, *ilsNode;
|
SGPropertyNode* runwayNode, *ilsNode;
|
||||||
for (int i=0; (runwayNode = rootNode->getChild("runway", i)) != NULL; ++i) {
|
for (int i=0; (runwayNode = rootNode->getChild("runway", i)) != NULL; ++i) {
|
||||||
for (int j=0; (ilsNode = runwayNode->getChild("ils", j)) != NULL; ++j) {
|
for (int j=0; (ilsNode = runwayNode->getChild("ils", j)) != NULL; ++j) {
|
||||||
if (ilsNode->getStringValue("nav-id") == ident()) {
|
// must match on both nav-ident and runway ident, to support the following:
|
||||||
|
// - runways with multiple distinct ILS installations (KEWD, for example)
|
||||||
|
// - runways where both ends share the same nav ident (LFAT, for example)
|
||||||
|
if ((ilsNode->getStringValue("nav-id") == ident()) &&
|
||||||
|
(ilsNode->getStringValue("rwy") == mRunway->ident())) {
|
||||||
processSceneryILS(ilsNode);
|
processSceneryILS(ilsNode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +149,6 @@ void FGNavRecord::readAirportSceneryData()
|
||||||
|
|
||||||
void FGNavRecord::processSceneryILS(SGPropertyNode* aILSNode)
|
void FGNavRecord::processSceneryILS(SGPropertyNode* aILSNode)
|
||||||
{
|
{
|
||||||
assert(aILSNode->getStringValue("rwy") == mRunway->ident());
|
|
||||||
double hdgDeg = aILSNode->getDoubleValue("hdg-deg"),
|
double hdgDeg = aILSNode->getDoubleValue("hdg-deg"),
|
||||||
lon = aILSNode->getDoubleValue("lon"),
|
lon = aILSNode->getDoubleValue("lon"),
|
||||||
lat = aILSNode->getDoubleValue("lat"),
|
lat = aILSNode->getDoubleValue("lat"),
|
||||||
|
|
Loading…
Reference in a new issue