[XAM] Implemented XamGetOnlineLanguageAndCountry
This commit is contained in:
@@ -332,6 +332,37 @@ dword_result_t XamGetLanguageLocaleString_entry(dword_t language_id,
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamGetLanguageLocaleString, kLocale, kImplemented);
|
||||
|
||||
void XamGetOnlineLanguageAndCountry_entry(qword_t xuid,
|
||||
dword_t language_result_buffer,
|
||||
dword_t country_result_buffer) {
|
||||
const auto user = kernel_state()->xam_state()->GetUserProfile(xuid);
|
||||
if (country_result_buffer) {
|
||||
uint8_t* country_buffer =
|
||||
kernel_memory()->TranslateVirtual<uint8_t*>(country_result_buffer);
|
||||
|
||||
const uint8_t country_id =
|
||||
user ? user->GetCountry()
|
||||
: kernel_state()->xconfig()->ReadSetting<uint8_t>(
|
||||
XCONFIG_USER_CATEGORY, XCONFIG_USER_COUNTRY);
|
||||
|
||||
*country_buffer = country_id;
|
||||
}
|
||||
|
||||
if (language_result_buffer) {
|
||||
uint8_t* language_buffer =
|
||||
kernel_memory()->TranslateVirtual<uint8_t*>(language_result_buffer);
|
||||
|
||||
const uint32_t desired_language =
|
||||
user ? user->GetLanguage()
|
||||
: kernel_state()->xconfig()->ReadSetting<uint32_t>(
|
||||
XCONFIG_USER_CATEGORY,
|
||||
XCONFIG_USER_CATEGORY_ENTRIES::XCONFIG_USER_LANGUAGE);
|
||||
|
||||
*language_buffer = static_cast<uint8_t>(desired_language);
|
||||
}
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamGetOnlineLanguageAndCountry, kLocale, kImplemented);
|
||||
|
||||
dword_result_t XamGetOnlineLanguageAndCountryString_entry(
|
||||
dword_t language_id, dword_t country_id, dword_t buffer_length,
|
||||
lpu16string_t buffer) {
|
||||
|
||||
Reference in New Issue
Block a user