(svn r5048) - NewStations: Set up clipping areas to draw the station preview graphics in. This prevents larger station graphics from overflowing onto the list.
authorpeter1138
Tue, 30 May 2006 21:27:51 +0000
changeset 3921 bf161a808b51
parent 3920 cca65c17b760
child 3922 5fe465866aa9
(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
--- a/rail_gui.c	Tue May 30 21:23:01 2006 +0000
+++ b/rail_gui.c	Tue May 30 21:27:51 2006 +0000
@@ -620,6 +620,7 @@
 		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 @@
 
 		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);