Changeset - r26678:8832ca8755a3
[Not reviewed]
master
0 2 0
PeterN - 18 months ago 2022-12-25 13:29:38
peter1138@openttd.org
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.)
2 files changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/town_cmd.cpp
Show inline comments
 
@@ -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));
 

	
src/viewport.cpp
Show inline comments
 
@@ -1323,7 +1323,7 @@ void ViewportAddString(const DrawPixelIn
 
		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(ZoomLeve
 
			}
 
		}
 

	
 
		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);
 
	}
 
}
 

	
0 comments (0 inline, 0 general)