mirror of https://github.com/OpenTTD/OpenTTD
(svn r11055) -Fix [FS#1214]: loading indicators would sometimes glitch due to a bounding box that was too small. Patch by frosch.
parent
8daaea0398
commit
a208f83e8b
|
@ -259,6 +259,7 @@ void DrawChatMessage()
|
||||||
/** Text Effects */
|
/** Text Effects */
|
||||||
static void MarkTextEffectAreaDirty(TextEffect *te)
|
static void MarkTextEffectAreaDirty(TextEffect *te)
|
||||||
{
|
{
|
||||||
|
/* Width and height of the text effect are doubled, so they are correct in both zoom out levels 1x and 2x. */
|
||||||
MarkAllViewportsDirty(
|
MarkAllViewportsDirty(
|
||||||
te->x,
|
te->x,
|
||||||
te->y - 1,
|
te->y - 1,
|
||||||
|
@ -321,6 +322,15 @@ void UpdateTextEffect(TextEffectID te_id, StringID msg)
|
||||||
te->params_1 = GetDParam(0);
|
te->params_1 = GetDParam(0);
|
||||||
te->params_2 = GetDParam(4);
|
te->params_2 = GetDParam(4);
|
||||||
|
|
||||||
|
/* Update width of text effect */
|
||||||
|
char buffer[100];
|
||||||
|
GetString(buffer, msg, lastof(buffer));
|
||||||
|
int w = GetStringBoundingBox(buffer).width;
|
||||||
|
|
||||||
|
/* Only allow to make it broader, so it completely covers the old text. That avoids remnants of the old text. */
|
||||||
|
int right_new = te->x + w;
|
||||||
|
if (te->right < right_new) te->right = right_new;
|
||||||
|
|
||||||
MarkTextEffectAreaDirty(te);
|
MarkTextEffectAreaDirty(te);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue