diff options
author | glx <glx@openttd.org> | 2007-01-03 23:53:23 +0000 |
---|---|---|
committer | glx <glx@openttd.org> | 2007-01-03 23:53:23 +0000 |
commit | 1987b32a8d162d59380854abab28bdff285dd770 (patch) | |
tree | 7742d0c57457991ca91edfdfa202feed77b90b07 /src | |
parent | db02336ef17823e666c8355f40c460342056bf7e (diff) | |
download | openttd-1987b32a8d162d59380854abab28bdff285dd770.tar.xz |
(svn r7812) -Fix: rail station build window was not correctly updated after station_spread change
Diffstat (limited to 'src')
-rw-r--r-- | src/rail_gui.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/rail_gui.c b/src/rail_gui.c index 0a63a41f3..4b651db5e 100644 --- a/src/rail_gui.c +++ b/src/rail_gui.c @@ -694,6 +694,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) bool newstations = _railstation.newstations; int y_offset; DrawPixelInfo tmp_dpi, *old_dpi; + const StationSpec *statspec = newstations ? GetCustomStationSpec(_railstation.station_class, _railstation.station_type) : NULL; if (WP(w,def_d).close) return; @@ -712,23 +713,14 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); - /* Update buttons for correct spread value */ - for (bits = _patches.station_spread; bits < 7; bits++) { - DisableWindowWidget(w, bits + 5); - DisableWindowWidget(w, bits + 12); - } - - if (newstations) { - const StationSpec *statspec = GetCustomStationSpec(_railstation.station_class, _railstation.station_type); - - for (bits = 0; bits < 7; bits++) { - if (statspec == NULL) { - EnableWindowWidget(w, bits + 5); - EnableWindowWidget(w, bits + 12); - } else { - SetWindowWidgetDisabledState(w, bits + 5, HASBIT(statspec->disallowed_platforms, bits)); - SetWindowWidgetDisabledState(w, bits + 12, HASBIT(statspec->disallowed_lengths, bits)); - } + for (bits = 0; bits < 7; bits++) { + bool disable = bits >= _patches.station_spread; + if (statspec == NULL) { + SetWindowWidgetDisabledState(w, bits + 5, disable); + SetWindowWidgetDisabledState(w, bits + 12, disable); + } else { + SetWindowWidgetDisabledState(w, bits + 5, HASBIT(statspec->disallowed_platforms, bits) || disable); + SetWindowWidgetDisabledState(w, bits + 12, HASBIT(statspec->disallowed_lengths, bits) || disable); } } |