From 57146a3417723c6d069afca604222924e73223dd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 30 May 2006 21:27:51 +0000 Subject: (svn r5048) - NewStations: Set up clipping areas to draw the station preview graphics in. This prevents larger station graphics from overflowing onto the list. --- rail_gui.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'rail_gui.c') diff --git a/rail_gui.c b/rail_gui.c index f8f7f48de..d260d12f6 100644 --- a/rail_gui.c +++ b/rail_gui.c @@ -620,6 +620,7 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) uint bits; bool newstations = _railstation.newstations; int y_offset; + DrawPixelInfo tmp_dpi, *old_dpi; if (WP(w,def_d).close) return; @@ -671,11 +672,24 @@ static void StationBuildWndProc(Window *w, WindowEvent *e) y_offset = newstations ? 90 : 0; - if (!DrawStationTile(39, 42 + y_offset, _cur_railtype, AXIS_X, _railstation.station_class, _railstation.station_type)) { - StationPickerDrawSprite(39, 42 + y_offset, _cur_railtype, 2); + /* Set up a clipping area for the '/' station preview */ + if (FillDrawPixelInfo(&tmp_dpi, NULL, 7, 26 + y_offset, 66, 48)) { + old_dpi = _cur_dpi; + _cur_dpi = &tmp_dpi; + if (!DrawStationTile(32, 16, _cur_railtype, AXIS_X, _railstation.station_class, _railstation.station_type)) { + StationPickerDrawSprite(32, 16, _cur_railtype, 2); + } + _cur_dpi = old_dpi; } - if (!DrawStationTile(107, 42 + y_offset, _cur_railtype, AXIS_Y, _railstation.station_class, _railstation.station_type)) { - StationPickerDrawSprite(107, 42 + y_offset, _cur_railtype, 3); + + /* Set up a clipping area for the '\' station preview */ + if (FillDrawPixelInfo(&tmp_dpi, NULL, 75, 26 + y_offset, 66, 48)) { + old_dpi = _cur_dpi; + _cur_dpi = &tmp_dpi; + if (!DrawStationTile(32, 16, _cur_railtype, AXIS_Y, _railstation.station_class, _railstation.station_type)) { + StationPickerDrawSprite(32, 16, _cur_railtype, 3); + } + _cur_dpi = old_dpi; } DrawStringCentered(74, 15 + y_offset, STR_3002_ORIENTATION, 0); -- cgit v1.2.3-54-g00ecf