Mercurial > hg > openttd
changeset 13970:bf79f84b8631 draft
(svn r18508) -Fix [FS#3372]: if a rail station class had less data than capacity it would try to set a negative position
author | rubidium <rubidium@openttd.org> |
---|---|
date | Tue, 15 Dec 2009 01:38:55 +0000 |
parents | 93cebbb864df |
children | 31d285a8abf8 |
files | src/core/math_func.hpp src/rail_gui.cpp |
diffstat | 2 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/math_func.hpp +++ b/src/core/math_func.hpp @@ -150,6 +150,7 @@ template <typename T> static FORCEINLINE T Clamp(const T a, const T min, const T max) { + assert(min <= max); if (a <= min) return min; if (a >= max) return max; return a;
--- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -1017,7 +1017,7 @@ 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, this->vscroll.GetCount() - this->vscroll.GetCapacity())); + 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'. */