Call GameLobbyJoinRequested_t if a lobby exists when joining with rich presence.

This commit is contained in:
Mr_Goldberg 2021-03-07 19:04:01 -05:00
parent 8785ae568c
commit 3f06dd8576
No known key found for this signature in database
GPG key ID: 8597D87419DEF278

View file

@ -787,7 +787,7 @@ void Steam_Overlay::RunCallbacks()
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data)); callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
friend_info->second.window_state &= ~window_state_lobby_invite; friend_info->second.window_state &= ~window_state_lobby_invite;
} else } else {
// The user got a rich presence invite and accepted it // The user got a rich presence invite and accepted it
if (friend_info->second.window_state & window_state_rich_invite) if (friend_info->second.window_state & window_state_rich_invite)
{ {
@ -805,6 +805,18 @@ void Steam_Overlay::RunCallbacks()
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data)); callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
} }
//Not sure about this but it fixes sonic racing transformed invites
FriendGameInfo_t friend_game_info = {};
steamFriends->GetFriendGamePlayed(friend_id, &friend_game_info);
uint64 lobby_id = friend_game_info.m_steamIDLobby.ConvertToUint64();
if (lobby_id) {
GameLobbyJoinRequested_t data;
data.m_steamIDLobby.SetFromUint64(lobby_id);
data.m_steamIDFriend.SetFromUint64(friend_id);
callbacks->addCBResult(data.k_iCallback, &data, sizeof(data));
}
}
friend_info->second.window_state &= ~window_state_join; friend_info->second.window_state &= ~window_state_join;
} }
} }