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