diff options
author | rubidium <rubidium@openttd.org> | 2008-03-27 14:10:09 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-03-27 14:10:09 +0000 |
commit | 5ab921feaad31d0d1b0a2bf0d21b5612396a139d (patch) | |
tree | 008f7f842155136ab300ae27836f769b9e11b4ac /src | |
parent | 1c1a721d632cc209a5fbd3b8284b7ee8ca57de7b (diff) | |
download | openttd-5ab921feaad31d0d1b0a2bf0d21b5612396a139d.tar.xz |
(svn r12439) -Fix [FS#1871]: do not 'disable' the drawing of autorail overlays when the tile is 'error'-marked (red pulsating selection). Patch by Icosikai.
Diffstat (limited to 'src')
-rw-r--r-- | src/viewport.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/viewport.cpp b/src/viewport.cpp index cc7b7a519..ad9141b89 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -941,10 +941,8 @@ static void DrawAutorailSelection(const TileInfo *ti, uint autorail_type) static void DrawTileSelection(const TileInfo *ti) { /* Draw a red error square? */ - if (_thd.redsq != 0 && _thd.redsq == ti->tile) { - DrawTileSelectionRect(ti, PALETTE_TILE_RED_PULSATING); - return; - } + bool is_redsq = _thd.redsq != 0 && _thd.redsq == ti->tile; + if (is_redsq) DrawTileSelectionRect(ti, PALETTE_TILE_RED_PULSATING); /* no selection active? */ if (_thd.drawstyle == 0) return; @@ -953,7 +951,7 @@ static void DrawTileSelection(const TileInfo *ti) if (IsInsideBS(ti->x, _thd.pos.x, _thd.size.x) && IsInsideBS(ti->y, _thd.pos.y, _thd.size.y)) { if (_thd.drawstyle & HT_RECT) { - DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE); + if (!is_redsq) DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE); } else if (_thd.drawstyle & HT_POINT) { /* Figure out the Z coordinate for the single dot. */ byte z = 0; @@ -994,7 +992,7 @@ static void DrawTileSelection(const TileInfo *ti) } /* Check if it's inside the outer area? */ - if (_thd.outersize.x && + if (!is_redsq && _thd.outersize.x && _thd.size.x < _thd.size.x + _thd.outersize.x && IsInsideBS(ti->x, _thd.pos.x + _thd.offs.x, _thd.size.x + _thd.outersize.x) && IsInsideBS(ti->y, _thd.pos.y + _thd.offs.y, _thd.size.y + _thd.outersize.y)) { |