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/AdvancedFriendsGameInstance.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h index 2efec5f..c3406d1 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsGameInstance.h @@ -88,7 +88,7 @@ public: // Called when the designated LocalUser has changed login status UFUNCTION(BlueprintImplementableEvent, Category = "AdvancedIdentity", meta = (DisplayName = "OnPlayerLoginStatusChanged")) - void OnPlayerLoginStatusChanged(int32 PlayerNum, EBPLoginStatus &PreviousStatus, EBPLoginStatus &NewStatus, FBPUniqueNetId & NewPlayerUniqueNetID); + void OnPlayerLoginStatusChanged(int32 PlayerNum, EBPLoginStatus PreviousStatus, EBPLoginStatus NewStatus, FBPUniqueNetId NewPlayerUniqueNetID); void OnPlayerLoginStatusChangedMaster(int32 PlayerNum, ELoginStatus::Type PreviousStatus, ELoginStatus::Type NewStatus, const FUniqueNetId & NewPlayerUniqueNetID); FOnLoginStatusChangedDelegate PlayerLoginStatusChangedDelegate; diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h index 11d851a..0888fc6 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedFriendsInterface.h @@ -46,7 +46,7 @@ public: // Called when the designated LocalUser has changed login state UFUNCTION(BlueprintImplementableEvent, meta = (DisplayName = "OnPlayerLoginStatusChanged")) - void OnPlayerLoginStatusChanged(EBPLoginStatus &PreviousStatus, EBPLoginStatus &NewStatus, FBPUniqueNetId & PlayerUniqueNetID); + void OnPlayerLoginStatusChanged(EBPLoginStatus PreviousStatus, EBPLoginStatus NewStatus, FBPUniqueNetId PlayerUniqueNetID); // REMOVED BECAUSE IT WAS NEVER BEING CALLED // Called when the designated LocalUser has received a session invite, use JoinSession on result to connect 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;