summaryrefslogtreecommitdiff
path: root/src/viewport.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-07-08 08:30:35 +0000
committerrubidium <rubidium@openttd.org>2009-07-08 08:30:35 +0000
commit8275a98e1f2e5adc770dc68492927416ddbb6fe6 (patch)
treecc2a2bbfd9544a2488bd50e8c798b1234ebb5c80 /src/viewport.cpp
parent2d907d902ac830d3020fe21cea9299073577d7f3 (diff)
downloadopenttd-8275a98e1f2e5adc770dc68492927416ddbb6fe6.tar.xz
(svn r16764) -Codechange: unify the way viewport signs are marked dirty
Diffstat (limited to 'src/viewport.cpp')
-rw-r--r--src/viewport.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/viewport.cpp b/src/viewport.cpp
index fa1f746a6..662c36850 100644
--- a/src/viewport.cpp
+++ b/src/viewport.cpp
@@ -1301,6 +1301,22 @@ void ViewportSign::UpdatePosition(int center, int top, StringID str)
_cur_fontsize = FS_NORMAL;
}
+/**
+ * Mark the sign dirty in all viewports.
+ *
+ * @ingroup dirty
+ */
+void ViewportSign::MarkDirty() const
+{
+ /* We use ZOOM_LVL_MAX here, as every viewport can have an other zoom,
+ * and there is no way for us to know which is the biggest. So make the
+ * biggest area dirty, and we are safe for sure. */
+ MarkAllViewportsDirty(
+ this->left - 6,
+ this->top - 3,
+ this->left + ScaleByZoom(this->width_1 + 12, ZOOM_LVL_MAX),
+ this->top + ScaleByZoom(12, ZOOM_LVL_MAX));
+}
static void ViewportDrawTileSprites(const TileSpriteToDrawVector *tstdv)
{