(svn r21751) -Fix: Re-initialize the stationpicker data when newgrf classes have disappeared.

This commit is contained in:
alberth 2011-01-09 15:21:55 +00:00
parent e898a6a9f6
commit 9845f10668
1 changed files with 7 additions and 5 deletions

View File

@ -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<NWidgetCore>(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;
}
}