[XAM/User] Added title_id == 0 check for few User functions

Games like to report title_id as 0 (it is expected behaviour).
0 in this case means currently opened title
This commit is contained in:
Gliniak 2020-01-09 14:17:51 +01:00 committed by illusion
parent 3c94b7e6cc
commit 8db3d4bed2
1 changed files with 6 additions and 3 deletions

View File

@ -254,7 +254,7 @@ dword_result_t XamUserReadProfileSettings(
auto gpd = user_profile->GetDashboardGpd();
if (title_id != kDashboardID) {
gpd = user_profile->GetTitleGpd(title_id);
gpd = user_profile->GetTitleGpd(!title_id ? kernel_state()->title_id() : title_id);
}
// First call asks for size (fill buffer_size_ptr).
@ -403,7 +403,8 @@ dword_result_t XamUserWriteProfileSettings(
auto gpd = user_profile->GetDashboardGpd();
if (title_id != kDashboardID) {
gpd = user_profile->GetTitleGpd(title_id);
gpd = user_profile->GetTitleGpd(!title_id ? kernel_state()->title_id()
: title_id);
}
if (!gpd) {
@ -605,7 +606,9 @@ dword_result_t XamUserCreateAchievementEnumerator(dword_t title_id,
*handle_ptr = e->handle();
// Copy achievements into the enumerator if game GPD is loaded
auto* game_gpd = user_profile->GetTitleGpd(title_id);
auto* game_gpd = user_profile->GetTitleGpd(
!title_id ? kernel_state()->title_id() : title_id);
if (!game_gpd) {
XELOGE(
"XamUserCreateAchievementEnumerator failed to find GPD for title %X!",