[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);
|
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_result_t XamGetOnlineLanguageAndCountryString_entry(
|
||||||
dword_t language_id, dword_t country_id, dword_t buffer_length,
|
dword_t language_id, dword_t country_id, dword_t buffer_length,
|
||||||
lpu16string_t buffer) {
|
lpu16string_t buffer) {
|
||||||
|
|||||||
Reference in New Issue
Block a user