Merge branch 'master' into config_openxr_update

This commit is contained in:
Lubos committed 2022-12-07 21:56:55 +01:00
commit 13ca232fc0
111 files changed
+5411 -832

No files matched your search

+15 -10
View File
@@ -1127,9 +1127,10 @@ static int DefaultSystemParamLanguage() {
int defaultLang = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH;
if (g_Config.bFirstRun) {
// TODO: Be smart about same language, different country
auto langValuesMapping = GetLangValuesMapping();
if (langValuesMapping.find(g_Config.sLanguageIni) != langValuesMapping.end()) {
defaultLang = langValuesMapping[g_Config.sLanguageIni].second;
auto &langValuesMapping = g_Config.GetLangValuesMapping();
auto iter = langValuesMapping.find(g_Config.sLanguageIni);
if (iter != langValuesMapping.end()) {
defaultLang = iter->second.second;
}
}
return defaultLang;
@@ -1276,14 +1277,12 @@ Config::~Config() {
delete private_;
}
std::map<std::string, std::pair<std::string, int>> GetLangValuesMapping() {
std::map<std::string, std::pair<std::string, int>> langValuesMapping;
void Config::LoadLangValuesMapping() {
IniFile mapping;
mapping.LoadFromVFS("langregion.ini");
std::vector<std::string> keys;
mapping.GetKeys("LangRegionNames", keys);
std::map<std::string, int> langCodeMapping;
langCodeMapping["JAPANESE"] = PSP_SYSTEMPARAM_LANGUAGE_JAPANESE;
langCodeMapping["ENGLISH"] = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH;
@@ -1298,8 +1297,8 @@ std::map<std::string, std::pair<std::string, int>> GetLangValuesMapping() {
langCodeMapping["CHINESE_TRADITIONAL"] = PSP_SYSTEMPARAM_LANGUAGE_CHINESE_TRADITIONAL;
langCodeMapping["CHINESE_SIMPLIFIED"] = PSP_SYSTEMPARAM_LANGUAGE_CHINESE_SIMPLIFIED;
Section *langRegionNames = mapping.GetOrCreateSection("LangRegionNames");
Section *systemLanguage = mapping.GetOrCreateSection("SystemLanguage");
const Section *langRegionNames = mapping.GetOrCreateSection("LangRegionNames");
const Section *systemLanguage = mapping.GetOrCreateSection("SystemLanguage");
for (size_t i = 0; i < keys.size(); i++) {
std::string langName;
@@ -1309,9 +1308,15 @@ std::map<std::string, std::pair<std::string, int>> GetLangValuesMapping() {
int iLangCode = PSP_SYSTEMPARAM_LANGUAGE_ENGLISH;
if (langCodeMapping.find(langCode) != langCodeMapping.end())
iLangCode = langCodeMapping[langCode];
langValuesMapping[keys[i]] = std::make_pair(langName, iLangCode);
langValuesMapping_[keys[i]] = std::make_pair(langName, iLangCode);
}
return langValuesMapping;
}
const std::map<std::string, std::pair<std::string, int>> &Config::GetLangValuesMapping() {
if (langValuesMapping_.empty()) {
LoadLangValuesMapping();
}
return langValuesMapping_;
}
void Config::Reload() {