From 6593d6c06569fff3b4a02372aa4342c83d32f5ae Mon Sep 17 00:00:00 2001 From: jmt Date: Wed, 28 Oct 2009 08:27:19 +0000 Subject: [PATCH] Bugfix - don't exclude seaports or heliports when looking up by ICAO. --- src/Airports/simple.cxx | 4 ++-- src/Airports/simple.hxx | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Airports/simple.cxx b/src/Airports/simple.cxx index bf6620f94..1b7d1c9d0 100644 --- a/src/Airports/simple.cxx +++ b/src/Airports/simple.cxx @@ -290,7 +290,7 @@ bool FGAirport::HardSurfaceFilter::passAirport(FGAirport* aApt) const FGAirport* FGAirport::findByIdent(const std::string& aIdent) { FGPositionedRef r; - AirportFilter filter; + PortsFilter filter; r = FGPositioned::findNextWithPartialId(r, aIdent, &filter); if (!r) { return NULL; // we don't warn here, let the caller do that @@ -301,7 +301,7 @@ FGAirport* FGAirport::findByIdent(const std::string& aIdent) FGAirport* FGAirport::getByIdent(const std::string& aIdent) { FGPositionedRef r; - AirportFilter filter; + PortsFilter filter; r = FGPositioned::findNextWithPartialId(r, aIdent, &filter); if (!r) { throw sg_range_exception("No such airport with ident: " + aIdent); diff --git a/src/Airports/simple.hxx b/src/Airports/simple.hxx index d226d40f4..521c48c9a 100644 --- a/src/Airports/simple.hxx +++ b/src/Airports/simple.hxx @@ -121,6 +121,17 @@ public: } }; + /** + * Filter which passes heliports and seaports in addition to airports + */ + class PortsFilter : public AirportFilter + { + public: + virtual Type maxType() const { + return SEAPORT; + } + }; + class HardSurfaceFilter : public AirportFilter { public: -- 2.39.5