From f61f1962c5e3422e56d0b1a03038d8ec27ade93a Mon Sep 17 00:00:00 2001 From: bjarni Date: Tue, 6 Mar 2007 22:11:58 +0000 Subject: (svn r9040) -Codechange: the build window and CmdBuildAircraft() now shares the code to figure out if an aircraft is buildable in the hangar in question This should help ensuring that the build command and the list are consistent in what aircraft are buildable --- src/build_vehicle_gui.cpp | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) (limited to 'src/build_vehicle_gui.cpp') diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 5227b8944..03e09707b 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -694,26 +694,11 @@ static void GenerateBuildAircraftList(Window *w) * when planes become obsolete and are removed */ 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_HELI) continue; - break; - - case AirportFTAClass::AIRPLANES: - if (!(avi->subtype & AIR_CTOL)) continue; - break; - - case AirportFTAClass::ALL: break; - default: - NOT_REACHED(); - } - - EngList_Add(&bv->eng_list, eid); + if (!IsEngineBuildable(eid, VEH_Aircraft, _local_player)) continue; + if (w->window_number != 0 && !IsAircraftBuildableAtStation(eid, w->window_number)) continue; - if (eid == bv->sel_engine) sel_id = eid; - } + EngList_Add(&bv->eng_list, eid); + if (eid == bv->sel_engine) sel_id = eid; } bv->sel_engine = sel_id; -- cgit v1.2.3-54-g00ecf