Changeset - r22084:e2a53153637c
[Not reviewed]
master
0 4 0
frosch - 9 years ago 2015-04-25 11:58:19
frosch@openttd.org
(svn r27248) -Fix [FS#6257]: Town labels on smallmap and zoomed-out viewports were not centered. (_dp_)
4 files changed with 10 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/texteff.cpp
Show inline comments
 
@@ -114,7 +114,7 @@ void DrawTextEffects(DrawPixelInfo *dpi)
 
	for (TextEffect *te = _text_effects.Begin(); te != end; te++) {
 
		if (te->string_id == INVALID_STRING_ID) continue;
 
		if (te->mode == TE_RISING || (_settings_client.gui.loading_indicators && !IsTransparencySet(TO_LOADING))) {
 
			ViewportAddString(dpi, ZOOM_LVL_OUT_8X, te, te->string_id, te->string_id - 1, 0, te->params_1, te->params_2);
 
			ViewportAddString(dpi, ZOOM_LVL_OUT_8X, te, te->string_id, te->string_id - 1, STR_NULL, te->params_1, te->params_2);
 
		}
 
	}
 
}
src/town_cmd.cpp
Show inline comments
 
@@ -377,7 +377,8 @@ void Town::UpdateVirtCoord()
 
	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);
 
		_settings_client.gui.population_in_label ? STR_VIEWPORT_TOWN_POP : STR_VIEWPORT_TOWN,
 
		STR_VIEWPORT_TOWN);
 

	
 
	SetWindowDirty(WC_TOWN_VIEW, this->index);
 
}
src/viewport.cpp
Show inline comments
 
@@ -1309,8 +1309,9 @@ static void ViewportAddSigns(DrawPixelIn
 
 * @param center the (preferred) center of the viewport sign
 
 * @param top    the new top of the sign
 
 * @param str    the string to show in the sign
 
 * @param str_small the string to show when zoomed out. STR_NULL means same as \a str
 
 */
 
void ViewportSign::UpdatePosition(int center, int top, StringID str)
 
void ViewportSign::UpdatePosition(int center, int top, StringID str, StringID str_small)
 
{
 
	if (this->width_normal != 0) this->MarkDirty();
 

	
 
@@ -1323,6 +1324,9 @@ void ViewportSign::UpdatePosition(int ce
 
	this->center = center;
 

	
 
	/* zoomed out version */
 
	if (str_small != STR_NULL) {
 
		GetString(buffer, str_small, lastof(buffer));
 
	}
 
	this->width_small = VPSM_LEFT + Align(GetStringBoundingBox(buffer, FS_SMALL).width, 2) + VPSM_RIGHT;
 

	
 
	this->MarkDirty();
src/viewport_type.h
Show inline comments
 
@@ -14,6 +14,7 @@
 

	
 
#include "zoom_type.h"
 
#include "strings_type.h"
 
#include "table/strings.h"
 

	
 
class LinkGraphOverlay;
 

	
 
@@ -50,7 +51,7 @@ struct ViewportSign {
 
	uint16 width_normal; ///< The width when not zoomed out (normal font)
 
	uint16 width_small;  ///< The width when zoomed out (small font)
 

	
 
	void UpdatePosition(int center, int top, StringID str);
 
	void UpdatePosition(int center, int top, StringID str, StringID str_small = STR_NULL);
 
	void MarkDirty(ZoomLevel maxzoom = ZOOM_LVL_MAX) const;
 
};
 

	
0 comments (0 inline, 0 general)