From 9845f106687fba49b31afa696f4f16c4ad044a93 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 9 Jan 2011 15:21:55 +0000 Subject: (svn r21751) -Fix: Re-initialize the stationpicker data when newgrf classes have disappeared. --- src/rail_gui.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 79ec40661..cb2ed5b20 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -980,17 +980,19 @@ public: _railstation.newstations = newstation; + if (!newstation || _railstation.station_class >= (int)StationClass::GetCount()) { + /* New stations are not available or changed, so ensure the default station + * type is 'selected'. */ + _railstation.station_class = STAT_CLASS_DFLT; + _railstation.station_type = 0; + } if (newstation) { _railstation.station_count = StationClass::GetCount(_railstation.station_class); + _railstation.station_type = min(_railstation.station_type, _railstation.station_count - 1); this->vscroll->SetCount(_railstation.station_count); this->vscroll->SetCapacity(GB(this->GetWidget(BRSW_NEWST_LIST)->widget_data, MAT_ROW_START, MAT_ROW_BITS)); this->vscroll->SetPosition(Clamp(_railstation.station_type - 2, 0, max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); - } else { - /* New stations are not available, so ensure the default station - * type is 'selected'. */ - _railstation.station_class = STAT_CLASS_DFLT; - _railstation.station_type = 0; } } -- cgit v1.2.3-70-g09d2