Changeset - r18615:58609f373bce
[Not reviewed]
master
0 3 0
rubidium - 13 years ago 2011-12-10 12:56:37
rubidium@openttd.org
(svn r23472) -Fix [FS#4877]: the monospace font broke the bootstrap GUI's ability to find a font
3 files changed with 10 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/gfx.cpp
Show inline comments
 
@@ -1516,13 +1516,16 @@ void DoPaletteAnimations()
 
}
 

	
 

	
 
/** Initialize _stringwidth_table cache */
 
void LoadStringWidthTable()
 
/**
 
 * Initialize _stringwidth_table cache
 
 * @param monospace Whether to load the monospace cache or the normal fonts.
 
 */
 
void LoadStringWidthTable(bool monospace)
 
{
 
	_max_char_height = 0;
 
	_max_char_width  = 0;
 

	
 
	for (FontSize fs = FS_BEGIN; fs < FS_END; fs++) {
 
	for (FontSize fs = monospace ? FS_MONO : FS_BEGIN; fs < (monospace ? FS_END : FS_MONO); fs++) {
 
		_max_char_height = max<int>(_max_char_height, GetCharacterHeight(fs));
 
		for (uint i = 0; i != 224; i++) {
 
			_stringwidth_table[fs][i] = GetGlyphWidth(fs, i + 32);
src/gfx_func.h
Show inline comments
 
@@ -125,7 +125,7 @@ Dimension GetStringBoundingBox(StringID 
 
uint32 FormatStringLinebreaks(char *str, const char *last, int maxw, FontSize start_fontsize = FS_NORMAL);
 
int GetStringHeight(StringID str, int maxw);
 
Dimension GetStringMultiLineBoundingBox(StringID str, const Dimension &suggestion);
 
void LoadStringWidthTable();
 
void LoadStringWidthTable(bool monospace = false);
 

	
 
void DrawDirtyBlocks();
 
void SetDirtyBlocks(int left, int top, int right, int bottom);
src/strings.cpp
Show inline comments
 
@@ -1778,7 +1778,7 @@ bool MissingGlyphSearcher::FindMissingGl
 
	InitFreeType(this->Monospace());
 
	const Sprite *question_mark[FS_END];
 

	
 
	for (FontSize size = FS_BEGIN; size < FS_END; size++) {
 
	for (FontSize size = this->Monospace() ? FS_MONO : FS_BEGIN; size < (this->Monospace() ? FS_END : FS_MONO); size++) {
 
		question_mark[size] = GetGlyph(size, '?');
 
	}
 

	
 
@@ -1903,12 +1903,12 @@ void CheckForMissingGlyphs(bool base_fon
 
		ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_WARNING);
 

	
 
		/* Reset the font width */
 
		LoadStringWidthTable();
 
		LoadStringWidthTable(searcher->Monospace());
 
		return;
 
	}
 

	
 
	/* Update the font with cache */
 
	LoadStringWidthTable();
 
	LoadStringWidthTable(searcher->Monospace());
 

	
 
#if !defined(WITH_ICU)
 
	/*
0 comments (0 inline, 0 general)