From ba255599202ddf2a6e81f6fbb5d6d09031418cde Mon Sep 17 00:00:00 2001 From: Mr_Goldberg Date: Mon, 3 Aug 2020 12:56:33 -0400 Subject: [PATCH] Fixes to matchmaking and friends. --- dll/steam_friends.h | 13 +++++-------- dll/steam_matchmaking.h | 6 +++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/dll/steam_friends.h b/dll/steam_friends.h index 788dec4..2003b2b 100644 --- a/dll/steam_friends.h +++ b/dll/steam_friends.h @@ -156,12 +156,9 @@ Steam_Friends(Settings* settings, Networking* network, SteamCallResults* callbac static bool ok_friend_flags(int iFriendFlags) { - if (iFriendFlags & k_EFriendFlagBlocked) return false; - if (iFriendFlags & k_EFriendFlagIgnored) return false; - if (iFriendFlags & k_EFriendFlagIgnoredFriend) return false; - if (iFriendFlags & k_EFriendFlagFriendshipRequested) return false; - if (iFriendFlags & k_EFriendFlagRequestingFriendship) return false; - return true; + if (iFriendFlags & k_EFriendFlagImmediate) return true; + + return false; } // returns the local players name - guaranteed to not be NULL. @@ -218,11 +215,11 @@ EPersonaState GetPersonaState() // then GetFriendByIndex() can then be used to return the id's of each of those users int GetFriendCount( int iFriendFlags ) { - PRINT_DEBUG("Steam_Friends::GetFriendCount\n"); + PRINT_DEBUG("Steam_Friends::GetFriendCount %i\n", iFriendFlags); std::lock_guard lock(global_mutex); int count = 0; if (ok_friend_flags(iFriendFlags)) count = friends.size(); - + PRINT_DEBUG("count %i\n", count); return count; } diff --git a/dll/steam_matchmaking.h b/dll/steam_matchmaking.h index 4a88dab..04415b1 100644 --- a/dll/steam_matchmaking.h +++ b/dll/steam_matchmaking.h @@ -1187,7 +1187,11 @@ void RunCallbacks() } else { try { PRINT_DEBUG("%s\n", value->second.c_str()); - int compare_to = std::stoll(value->second, 0, 0); + int compare_to = 0; + //TODO: check if this is how real steam behaves + if (value->second.size()) { + compare_to = std::stoll(value->second, 0, 0); + } PRINT_DEBUG("Compare Values %i %i\n", compare_to, f.value_int); if (f.eComparisonType == k_ELobbyComparisonEqual) { if (compare_to == f.value_int) {