From 6bbe135446e0450076670c20a495ea00025ca9dc Mon Sep 17 00:00:00 2001 From: bjarni Date: Sat, 17 Feb 2007 12:45:15 +0000 Subject: [PATCH] (svn r8771) -Fix r8343: build aircraft windows will no longer show aircraft that can't use the airport in question Now it's even better than ever because unless the no jetcrash cheat is enabled, the small airports will not show fast aircraft --- src/build_vehicle_gui.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 99925fbd77..c695108a9b 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -692,6 +692,24 @@ static void GenerateBuildAircraftList(Window *w) sel_id = INVALID_ENGINE; for (eid = AIRCRAFT_ENGINES_INDEX; eid < AIRCRAFT_ENGINES_INDEX + NUM_AIRCRAFT_ENGINES; eid++) { if (IsEngineBuildable(eid, VEH_Aircraft, _local_player)) { + const AircraftVehicleInfo *avi = AircraftVehInfo(eid); + switch (bv->filter.flags & ~AirportFTAClass::SHORT_STRIP /* we don't care about the length of the runway here */) { + case AirportFTAClass::HELICOPTERS: + if (avi->subtype != AIR_HELICOPTER) continue; + break; + + case AirportFTAClass::AIRPLANES: + if (avi->subtype != AIR_AIRCRAFT) continue; + break; + + case AirportFTAClass::ALL: break; + default: + NOT_REACHED(); + } + + if (bv->filter.flags & AirportFTAClass::SHORT_STRIP && + avi->subtype & AIR_FAST && !_cheats.no_jetcrash.value) continue; // don't build large aircraft in small airports + EngList_Add(&bv->eng_list, eid); if (eid == bv->sel_engine) sel_id = eid;