changeset 16913:518697b6f54f draft

(svn r21648) -Codechange: unduplicate a bit of code
author rubidium <rubidium@openttd.org>
date Mon, 27 Dec 2010 18:21:19 +0000
parents 88fd38e18760
children 9462b5431394
files src/viewport.cpp
diffstat 1 files changed, 3 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -973,31 +973,14 @@
 	if ((_thd.drawstyle & HT_DRAG_MASK) == HT_NONE) return;
 
 	if (_thd.diagonal) { // We're drawing a 45 degrees rotated (diagonal) rectangle
-		if (IsInsideRotatedRectangle((int)ti->x, (int)ti->y)) {
-			if (_thd.drawstyle & HT_RECT) { // Highlighting a square (clear land)
-				/* Don't mark tiles outside the map. */
-				if (!IsValidTile(ti->tile)) return;
-
-				SpriteID image = SPR_SELECT_TILE + SlopeToSpriteOffset(ti->tileh);
-				DrawSelectionSprite(image, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE, ti, 7, FOUNDATION_PART_NORMAL);
-			} else { // Highlighting a dot (level land)
-				/* Figure out the Z coordinate for the single dot. */
-				byte z = ti->z;
-				if (ti->tileh & SLOPE_N) {
-					z += TILE_HEIGHT;
-					if (!(ti->tileh & SLOPE_S) && (ti->tileh & SLOPE_STEEP)) {
-						z += TILE_HEIGHT;
-					}
-				}
-				AddTileSpriteToDraw(_cur_dpi->zoom != 2 ? SPR_DOT : SPR_DOT_SMALL, PAL_NONE, ti->x, ti->y, z);
-			}
-		}
+		if (IsInsideRotatedRectangle((int)ti->x, (int)ti->y)) goto draw_inner;
 		return;
 	}
 
 	/* Inside the inner area? */
 	if (IsInsideBS(ti->x, _thd.pos.x, _thd.size.x) &&
 			IsInsideBS(ti->y, _thd.pos.y, _thd.size.y)) {
+draw_inner:
 		if (_thd.drawstyle & HT_RECT) {
 			if (!is_redsq) DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE);
 		} else if (_thd.drawstyle & HT_POINT) {
@@ -2865,7 +2848,7 @@
 	_thd.window_class = window_class;
 	_thd.window_number = window_num;
 
-	if (mode == HT_SPECIAL) { // special tools, like tunnels or docks start with presizing mode
+	if ((mode & HT_DRAG_MASK) == HT_SPECIAL) { // special tools, like tunnels or docks start with presizing mode
 		VpStartPreSizing();
 	}