Exemple #1
0
bool FFont::CanPrint(const uint8_t *string) const
{
	if (!string) return true;
	while (*string)
	{
		auto chr = GetCharFromString(string);
		if (!MixedCase) chr = upperforlower[chr];	// For uppercase-only fonts we shouldn't check lowercase characters.
		if (chr == TEXTCOLOR_ESCAPE)
		{
			// We do not need to check for UTF-8 in here.
			if (*string == '[')
			{
				while (*string != '\0' && *string != ']')
				{
					++string;
				}
			}
			if (*string != '\0')
			{
				++string;
			}
			continue;
		}
		else if (chr != '\n')
		{
			int cc = GetCharCode(chr, true);
			if (chr != cc && iswalpha(chr) && cc != getAlternative(chr))
			{
				return false;
			}
		}
	}

	return true;
}
Exemple #2
0
String LanguageManager::findText(const String &culture, const String &name, bool searchingInAlternative) const
{
    OS_ASSERT(hasCulture(culture));

    String value;

    const Folders &folders = getFolders();
    for(Folders::const_iterator i = folders.begin(); i != folders.end(); ++i)
    {
        value = (*i)->findText(culture, name, false);
        if(value.empty() == false)
            break;
    }

    if( (searchingInAlternative == false) && (value.empty() == true) )
        value = findText(getAlternative(), name, true);

    return value;
}