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
 
@@ -405,13 +405,13 @@ void Town::UpdateVirtCoord()
 
	if (this->cache.sign.kdtree_valid) _viewport_sign_kdtree.Remove(ViewportSignKdtreeItem::MakeTown(this->index));
 

	
 
	SetDParam(0, this->index);
 
	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));
 

	
 
	SetWindowDirty(WC_TOWN_VIEW, this->index);
 
}
 

	
src/viewport.cpp
Show inline comments
 
@@ -1320,13 +1320,13 @@ void ViewportAddString(const DrawPixelIn
 
	if (!small) {
 
		AddStringToDraw(sign->center - sign_half_width, sign->top, string_normal, params_1, params_2, colour, sign->width_normal);
 
	} else {
 
		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);
 
	}
 
}
 

	
 
@@ -1719,13 +1719,13 @@ static void ViewportDrawStrings(ZoomLeve
 
					x, y, x + w - 1, y + h - 1, ss.colour,
 
					IsTransparencySet(TO_SIGNS) ? FR_TRANSPARENT : FR_NONE
 
				);
 
			}
 
		}
 

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

	
 
void ViewportDoDraw(const Viewport *vp, int left, int top, int right, int bottom)
 
{
 
	DrawPixelInfo *old_dpi = _cur_dpi;
0 comments (0 inline, 0 general)