From 9cdd8c6d48df88db74cb5c3f15f0797ea02496a0 Mon Sep 17 00:00:00 2001 From: alberth Date: Fri, 24 Dec 2010 14:55:31 +0000 Subject: (svn r21621) -Codechange: Only consider tile highlighting mode bits in tile selection functions. --- src/rail_gui.cpp | 2 +- src/viewport.cpp | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 0e2f51e2a..df2ce0a26 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -382,7 +382,7 @@ static void HandleAutoSignalPlacement() TileHighlightData *thd = &_thd; uint32 p2 = GB(thd->drawstyle, 0, 3); // 0..5 - if (thd->drawstyle == HT_RECT) { // one tile case + if ((thd->drawstyle & HT_DRAG_MASK) == HT_RECT) { // one tile case GenericPlaceSignals(TileVirtXY(thd->selend.x, thd->selend.y)); return; } diff --git a/src/viewport.cpp b/src/viewport.cpp index c3608d0cc..87a8906d3 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -898,7 +898,7 @@ static bool IsPartOfAutoLine(int px, int py) px -= _thd.selstart.x; py -= _thd.selstart.y; - if ((_thd.drawstyle & ~HT_DIR_MASK) != HT_LINE) return false; + if ((_thd.drawstyle & HT_DRAG_MASK) != HT_LINE) return false; switch (_thd.drawstyle & HT_DIR_MASK) { case HT_DIR_X: return py == 0; // x direction @@ -970,8 +970,8 @@ static void DrawTileSelection(const TileInfo *ti) bool is_redsq = _thd.redsq == ti->tile; if (is_redsq) DrawTileSelectionRect(ti, PALETTE_TILE_RED_PULSATING); - /* no selection active? */ - if (_thd.drawstyle == 0) return; + /* No tile selection active? */ + 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)) { @@ -1903,7 +1903,8 @@ bool HandleViewportClicked(const ViewPort *vp, int x, int y) if (v != NULL && VehicleClicked(v)) return true; } - if (_thd.place_mode & HT_DRAG_MASK) { + /* Vehicle placement mode already handled above. */ + if ((_thd.place_mode & HT_DRAG_MASK) != HT_NONE) { PlaceObject(); return true; } @@ -2128,8 +2129,8 @@ void UpdateTileSelection() _thd.outersize.x != _thd.new_outersize.x || _thd.outersize.y != _thd.new_outersize.y || _thd.diagonal != new_diagonal) { - /* clear the old selection? */ - if (_thd.drawstyle) SetSelectionTilesDirty(); + /* Clear the old tile selection? */ + if ((_thd.drawstyle & HT_DRAG_MASK) != HT_NONE) SetSelectionTilesDirty(); _thd.drawstyle = new_drawstyle; _thd.pos = _thd.new_pos; @@ -2138,8 +2139,8 @@ void UpdateTileSelection() _thd.diagonal = new_diagonal; _thd.dirty = 0xff; - /* draw the new selection? */ - if (new_drawstyle != HT_NONE) SetSelectionTilesDirty(); + /* Draw the new tile selection? */ + if ((new_drawstyle & HT_DRAG_MASK) != HT_NONE) SetSelectionTilesDirty(); } } -- cgit v1.2.3-70-g09d2