From 54ef43878f50eb99d3773ceef099383886d95bf1 Mon Sep 17 00:00:00 2001 From: James Turner Date: Wed, 19 Jan 2011 23:58:00 +0000 Subject: [PATCH] Fix bug 259 - don't override existing airport/runway in initPos --- src/Autopilot/route_mgr.cxx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Autopilot/route_mgr.cxx b/src/Autopilot/route_mgr.cxx index 127e2c397..bcb5895ac 100644 --- a/src/Autopilot/route_mgr.cxx +++ b/src/Autopilot/route_mgr.cxx @@ -924,11 +924,20 @@ void FGRouteMgr::initAtPosition() } // on the ground - SGGeod pos = SGGeod::fromDegFt(lon->getDoubleValue(), lat->getDoubleValue(), alt->getDoubleValue()); - _departure = FGAirport::findClosest(pos, 20.0); + SGGeod pos = SGGeod::fromDegFt(lon->getDoubleValue(), + lat->getDoubleValue(), alt->getDoubleValue()); if (!_departure) { - SG_LOG(SG_AUTOPILOT, SG_INFO, "initAtPosition: couldn't find an airport within 20nm"); - departure->setStringValue("runway", ""); + _departure = FGAirport::findClosest(pos, 20.0); + if (!_departure) { + SG_LOG(SG_AUTOPILOT, SG_INFO, "initAtPosition: couldn't find an airport within 20nm"); + departure->setStringValue("runway", ""); + return; + } + } + + std::string rwy = departure->getStringValue("runway"); + if (!rwy.empty()) { + // runway already set, fine return; } -- 2.39.5