From c8cc61d8899ad8b7c8509116fc85194436642848 Mon Sep 17 00:00:00 2001 From: PeterN Date: Sun, 25 Dec 2022 13:29:38 +0000 Subject: [PATCH] Fix #10150: Force FS_SMALL for small viewport signs. (#10283) * Fix #10150: Force FS_SMALL for small viewport signs. This is a workaround for string widths being different with mixed font-sizes. * Fix: Flag small sign shadow as small text. (This method of drawing shadows is hilarious and needs replacing, but this is a quick fix.) --- src/town_cmd.cpp | 2 +- src/viewport.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 680bffda2f..280fa4efea 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -408,7 +408,7 @@ void Town::UpdateVirtCoord() SetDParam(1, this->cache.population); this->cache.sign.UpdatePosition(pt.x, pt.y - 24 * ZOOM_LVL_BASE, _settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_POP : STR_VIEWPORT_TOWN, - STR_VIEWPORT_TOWN); + STR_VIEWPORT_TOWN_TINY_WHITE); _viewport_sign_kdtree.Insert(ViewportSignKdtreeItem::MakeTown(this->index)); diff --git a/src/viewport.cpp b/src/viewport.cpp index 8ce8d438b7..b32bca80d2 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1323,7 +1323,7 @@ void ViewportAddString(const DrawPixelInfo *dpi, ZoomLevel small_from, const Vie int shadow_offset = 0; if (string_small_shadow != STR_NULL) { shadow_offset = 4; - AddStringToDraw(sign->center - sign_half_width + shadow_offset, sign->top, string_small_shadow, params_1, params_2, INVALID_COLOUR, sign->width_small); + AddStringToDraw(sign->center - sign_half_width + shadow_offset, sign->top, string_small_shadow, params_1, params_2, INVALID_COLOUR, sign->width_small | 0x8000); } AddStringToDraw(sign->center - sign_half_width, sign->top - shadow_offset, string_small, params_1, params_2, colour, sign->width_small | 0x8000); @@ -1722,7 +1722,7 @@ static void ViewportDrawStrings(ZoomLevel zoom, const StringSpriteToDrawVector * } } - DrawString(x + WidgetDimensions::scaled.fullbevel.left, x + w - 1 - WidgetDimensions::scaled.fullbevel.right, y + WidgetDimensions::scaled.fullbevel.top, ss.string, colour, SA_HOR_CENTER); + DrawString(x + WidgetDimensions::scaled.fullbevel.left, x + w - 1 - WidgetDimensions::scaled.fullbevel.right, y + WidgetDimensions::scaled.fullbevel.top, ss.string, colour, SA_HOR_CENTER, false, small ? FS_SMALL : FS_NORMAL); } }