Changeset - r21602:985e70fc8a4c
[Not reviewed]
master
0 1 0
rubidium - 10 years ago 2014-08-15 19:41:57
rubidium@openttd.org
(svn r26732) -Fix [FS#6083]: do not reset the last selected airport or layout (unless it is really necessary)
1 file changed with 21 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/airport_gui.cpp
Show inline comments
 
@@ -228,8 +228,27 @@ public:
 
		this->SetWidgetLoweredState(WID_AP_BTN_DOHILIGHT, _settings_client.gui.station_show_coverage);
 
		this->OnInvalidateData();
 

	
 
		this->vscroll->SetCount(AirportClass::Get(_selected_airport_class)->GetSpecCount());
 
		this->SelectFirstAvailableAirport(true);
 
		/* Ensure airport class is valid (changing NewGRFs). */
 
		_selected_airport_class = Clamp(_selected_airport_class, APC_BEGIN, (AirportClassID)(AirportClass::GetClassCount() - 1));
 
		const AirportClass *ac = AirportClass::Get(_selected_airport_class);
 
		this->vscroll->SetCount(ac->GetSpecCount());
 

	
 
		/* Ensure the airport index is valid for this class (changing NewGRFs). */
 
		_selected_airport_index = Clamp(_selected_airport_index, -1, ac->GetSpecCount() - 1);
 

	
 
		/* Only when no valid airport was selected, we want to select the first airport. */
 
		bool selectFirstAirport = true;
 
		if (_selected_airport_index != -1) {
 
			const AirportSpec *as = ac->GetSpec(_selected_airport_index);
 
			if (as->IsAvailable()) {
 
				/* Ensure the airport layout is valid. */
 
				_selected_airport_layout = Clamp(_selected_airport_layout, 0, as->num_table - 1);
 
				selectFirstAirport = false;
 
				this->UpdateSelectSize();
 
			}
 
		}
 

	
 
		if (selectFirstAirport) this->SelectFirstAvailableAirport(true);
 
	}
 

	
 
	virtual ~BuildAirportWindow()
0 comments (0 inline, 0 general)