From b09def76348c585b8d4cbc27631be31ef014f71f Mon Sep 17 00:00:00 2001 From: mordentral Date: Wed, 26 Apr 2017 14:55:02 -0400 Subject: [PATCH] 4.16 Specific Changes Former-commit-id: b3b541bbbe53f8e8cba6821599454b1682d2f456 --- .../AdvancedSessions.Build.cs | 2 +- .../Classes/FindFriendSessionCallbackProxy.h | 6 ++-- .../FindFriendSessionCallbackProxy.cpp | 29 +++++++++++++------ .../AdvancedSteamSessions.Build.cs | 2 +- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs b/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs index f43a606..256e0bc 100644 --- a/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs +++ b/AdvancedSessions/Source/AdvancedSessions/AdvancedSessions.Build.cs @@ -3,7 +3,7 @@ using System.IO; public class AdvancedSessions : ModuleRules { - public AdvancedSessions(TargetInfo Target) + public AdvancedSessions(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; //bEnforceIWYU = true; diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h b/AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h index 38f0b48..cbfd8b7 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/FindFriendSessionCallbackProxy.h @@ -2,13 +2,13 @@ #pragma once #include "CoreMinimal.h" -#include "Engine/LocalPlayer.h" #include "BlueprintDataDefinitions.h" +#include "Engine/LocalPlayer.h" #include "FindFriendSessionCallbackProxy.generated.h" DECLARE_LOG_CATEGORY_EXTERN(AdvancedFindFriendSessionLog, Log, All); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBlueprintFindFriendSessionDelegate, const FBlueprintSessionResult&, SessionInfo); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FBlueprintFindFriendSessionDelegate, const TArray, SessionInfo); UCLASS(MinimalAPI) class UFindFriendSessionCallbackProxy : public UOnlineBlueprintCallProxyBase @@ -31,7 +31,7 @@ class UFindFriendSessionCallbackProxy : public UOnlineBlueprintCallProxyBase private: // Internal callback when the friends list is retrieved - void OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const FOnlineSessionSearchResult& SessionInfo); + void OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const TArray& SessionInfo); // The player controller triggering things TWeakObjectPtr PlayerControllerWeakPtr; diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp index 474bd24..fc0a6cd 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp @@ -27,7 +27,7 @@ void UFindFriendSessionCallbackProxy::Activate() { // Fail immediately UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed received a bad UniqueNetId!")); - FBlueprintSessionResult EmptyResult; + TArray EmptyResult; OnFailure.Broadcast(EmptyResult); return; } @@ -36,7 +36,7 @@ void UFindFriendSessionCallbackProxy::Activate() { // Fail immediately UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed received a bad playercontroller!")); - FBlueprintSessionResult EmptyResult; + TArray EmptyResult; OnFailure.Broadcast(EmptyResult); return; } @@ -51,7 +51,7 @@ void UFindFriendSessionCallbackProxy::Activate() { // Fail immediately UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed couldn't cast to ULocalPlayer!")); - FBlueprintSessionResult EmptyResult; + TArray EmptyResult; OnFailure.Broadcast(EmptyResult); return; } @@ -64,11 +64,12 @@ void UFindFriendSessionCallbackProxy::Activate() } // Fail immediately - FBlueprintSessionResult EmptyResult; + TArray EmptyResult; OnFailure.Broadcast(EmptyResult); } -void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const FOnlineSessionSearchResult& SessionInfo) + +void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const TArray& SessionInfo) { IOnlineSessionPtr Sessions = Online::GetSessionInterface(); @@ -77,9 +78,19 @@ void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPl if ( bWasSuccessful ) { - FBlueprintSessionResult Result; - Result.OnlineResult = SessionInfo; - if(Result.OnlineResult.IsValid()) + TArray Result; + + for (auto& Sesh : SessionInfo) + { + if (Sesh.IsValid()) + { + FBlueprintSessionResult BSesh; + BSesh.OnlineResult = Sesh; + Result.Add(BSesh); + } + } + + if(Result.Num() > 0) OnSuccess.Broadcast(Result); else { @@ -90,7 +101,7 @@ void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPl else { UE_LOG(AdvancedFindFriendSessionLog, Warning, TEXT("FindFriendSession Failed")); - FBlueprintSessionResult EmptyResult; + TArray EmptyResult; OnFailure.Broadcast(EmptyResult); } } diff --git a/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs b/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs index 3a607cc..db5bc57 100644 --- a/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs +++ b/AdvancedSteamSessions/Source/AdvancedSteamSessions/AdvancedSteamSessions.Build.cs @@ -3,7 +3,7 @@ using System.IO; public class AdvancedSteamSessions : ModuleRules { - public AdvancedSteamSessions(TargetInfo Target) + public AdvancedSteamSessions(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; //bEnforceIWYU = true;