]> git.mxchange.org Git - flightgear.git/commitdiff
More precise matching of ILS records to navaids.
authorjmt <jmt>
Mon, 31 Aug 2009 23:11:23 +0000 (23:11 +0000)
committerTim Moore <timoore@redhat.com>
Wed, 2 Sep 2009 22:02:48 +0000 (00:02 +0200)
src/Navaids/navrecord.cxx

index 61b5725a7bc2abaee334fa3801c40be5ff54893c..73edc243f737ee8bb3c6c23f295b6a4d28ca6167 100644 (file)
@@ -135,7 +135,11 @@ void FGNavRecord::readAirportSceneryData()
   SGPropertyNode* runwayNode, *ilsNode;
   for (int i=0; (runwayNode = rootNode->getChild("runway", i)) != NULL; ++i) {
     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);
         return;
       }
@@ -145,7 +149,6 @@ void FGNavRecord::readAirportSceneryData()
 
 void FGNavRecord::processSceneryILS(SGPropertyNode* aILSNode)
 {
-  assert(aILSNode->getStringValue("rwy") == mRunway->ident());
   double hdgDeg = aILSNode->getDoubleValue("hdg-deg"),
     lon = aILSNode->getDoubleValue("lon"),
     lat = aILSNode->getDoubleValue("lat"),