From 8744035160e095de30c4e19956a0d5d926798ee0 Mon Sep 17 00:00:00 2001 From: mordentral Date: Tue, 29 Oct 2019 09:52:28 -0400 Subject: [PATCH] Added world context to a bunch of relevant nodes. Should likely add it to others in the future as well. Former-commit-id: c41024927d6525c3c35ff609bdffdb2960b6e3ae --- .../Classes/AdvancedSessionsLibrary.h | 16 +++++++-------- .../Private/AdvancedFriendsGameInstance.cpp | 12 +++++------ .../Private/AdvancedSessionsLibrary.cpp | 20 +++++++++++-------- .../FindFriendSessionCallbackProxy.cpp | 4 ++-- .../UpdateSessionCallbackProxyAdvanced.cpp | 4 ++-- 5 files changed, 30 insertions(+), 26 deletions(-) diff --git a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h index b40c9dc..50cb822 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h +++ b/AdvancedSessions/Source/AdvancedSessions/Classes/AdvancedSessionsLibrary.h @@ -39,16 +39,16 @@ public: static void GetExtraSettings(FBlueprintSessionResult SessionResult, TArray & ExtraSettings); // Get the current session state - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo") - static void GetSessionState(EBPOnlineSessionState &SessionState); + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (WorldContext = "WorldContextObject")) + static void GetSessionState(UObject* WorldContextObject, EBPOnlineSessionState &SessionState); // Get the current session settings - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "Result")) - static void GetSessionSettings(int32 &NumConnections, int32 &NumPrivateConnections, bool &bIsLAN, bool &bIsDedicated, bool &bAllowInvites, bool &bAllowJoinInProgress, bool &bIsAnticheatEnabled, int32 &BuildUniqueID, TArray &ExtraSettings, EBlueprintResultSwitch &Result); + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (ExpandEnumAsExecs = "Result", WorldContext = "WorldContextObject")) + static void GetSessionSettings(UObject* WorldContextObject, int32 &NumConnections, int32 &NumPrivateConnections, bool &bIsLAN, bool &bIsDedicated, bool &bAllowInvites, bool &bAllowJoinInProgress, bool &bIsAnticheatEnabled, int32 &BuildUniqueID, TArray &ExtraSettings, EBlueprintResultSwitch &Result); // Check if someone is in the current session - UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo") - static void IsPlayerInSession(const FBPUniqueNetId &PlayerToCheck, bool &bIsInSession); + UFUNCTION(BlueprintCallable, Category = "Online|AdvancedSessions|SessionInfo", meta = (WorldContext = "WorldContextObject")) + static void IsPlayerInSession(UObject* WorldContextObject, const FBPUniqueNetId &PlayerToCheck, bool &bIsInSession); // Make a literal session search parameter UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo|Literals") @@ -66,8 +66,8 @@ public: static void GetSessionID_AsString(const FBlueprintSessionResult & SessionResult, FString& SessionID); // Get a string copy of the current session ID - UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") - static void GetCurrentSessionID_AsString(FString& SessionID); + UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo", meta = (WorldContext = "WorldContextObject")) + static void GetCurrentSessionID_AsString(UObject* WorldContextObject, FString& SessionID); // Get the Unique Current Build ID UFUNCTION(BlueprintPure, Category = "Online|AdvancedSessions|SessionInfo") diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp index 767e5f7..a4d583d 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedFriendsGameInstance.cpp @@ -22,7 +22,7 @@ UAdvancedFriendsGameInstance::UAdvancedFriendsGameInstance(const FObjectInitiali void UAdvancedFriendsGameInstance::Shutdown() { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(GetWorld()); if (!SessionInterface.IsValid()) { @@ -39,7 +39,7 @@ void UAdvancedFriendsGameInstance::Shutdown() if (bEnableTalkingStatusDelegate) { - IOnlineVoicePtr VoiceInterface = Online::GetVoiceInterface(); + IOnlineVoicePtr VoiceInterface = Online::GetVoiceInterface(GetWorld()); if (VoiceInterface.IsValid()) { @@ -52,7 +52,7 @@ void UAdvancedFriendsGameInstance::Shutdown() } } - IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(); + IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld()); if (IdentityInterface.IsValid()) { @@ -69,7 +69,7 @@ void UAdvancedFriendsGameInstance::Shutdown() void UAdvancedFriendsGameInstance::Init() { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface();//OnlineSub->GetSessionInterface(); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(GetWorld());//OnlineSub->GetSessionInterface(); if (SessionInterface.IsValid()) { @@ -90,7 +90,7 @@ void UAdvancedFriendsGameInstance::Init() // Beginning work on the voice interface if (bEnableTalkingStatusDelegate) { - IOnlineVoicePtr VoiceInterface = Online::GetVoiceInterface(); + IOnlineVoicePtr VoiceInterface = Online::GetVoiceInterface(GetWorld()); if (VoiceInterface.IsValid()) { @@ -103,7 +103,7 @@ void UAdvancedFriendsGameInstance::Init() } } - IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(); + IOnlineIdentityPtr IdentityInterface = Online::GetIdentityInterface(GetWorld()); if (IdentityInterface.IsValid()) { diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp index eef28e2..fffb8e9 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/AdvancedSessionsLibrary.cpp @@ -24,9 +24,10 @@ void UAdvancedSessionsLibrary::GetSessionID_AsString(const FBlueprintSessionResu SessionID.Empty(); } -void UAdvancedSessionsLibrary::GetCurrentSessionID_AsString(FString& SessionID) +void UAdvancedSessionsLibrary::GetCurrentSessionID_AsString(UObject* WorldContextObject, FString& SessionID) { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(); + UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(World); if (!SessionInterface.IsValid()) { @@ -125,9 +126,10 @@ void UAdvancedSessionsLibrary::GetExtraSettings(FBlueprintSessionResult SessionR } } -void UAdvancedSessionsLibrary::GetSessionState(EBPOnlineSessionState &SessionState) +void UAdvancedSessionsLibrary::GetSessionState(UObject* WorldContextObject, EBPOnlineSessionState &SessionState) { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(); + UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(World); if (!SessionInterface.IsValid()) { @@ -138,9 +140,10 @@ void UAdvancedSessionsLibrary::GetSessionState(EBPOnlineSessionState &SessionSta SessionState = ((EBPOnlineSessionState)SessionInterface->GetSessionState(NAME_GameSession)); } -void UAdvancedSessionsLibrary::GetSessionSettings(int32 &NumConnections, int32 &NumPrivateConnections, bool &bIsLAN, bool &bIsDedicated, bool &bAllowInvites, bool &bAllowJoinInProgress, bool &bIsAnticheatEnabled, int32 &BuildUniqueID, TArray &ExtraSettings, EBlueprintResultSwitch &Result) +void UAdvancedSessionsLibrary::GetSessionSettings(UObject* WorldContextObject, int32 &NumConnections, int32 &NumPrivateConnections, bool &bIsLAN, bool &bIsDedicated, bool &bAllowInvites, bool &bAllowJoinInProgress, bool &bIsAnticheatEnabled, int32 &BuildUniqueID, TArray &ExtraSettings, EBlueprintResultSwitch &Result) { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(); + UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(World); if (!SessionInterface.IsValid()) { @@ -178,9 +181,10 @@ void UAdvancedSessionsLibrary::GetSessionSettings(int32 &NumConnections, int32 & Result = EBlueprintResultSwitch::OnSuccess; } -void UAdvancedSessionsLibrary::IsPlayerInSession(const FBPUniqueNetId &PlayerToCheck, bool &bIsInSession) +void UAdvancedSessionsLibrary::IsPlayerInSession(UObject* WorldContextObject, const FBPUniqueNetId &PlayerToCheck, bool &bIsInSession) { - IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(); + UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject); + IOnlineSessionPtr SessionInterface = Online::GetSessionInterface(World); if (!SessionInterface.IsValid()) { diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp index fc0a6cd..d6773ec 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/FindFriendSessionCallbackProxy.cpp @@ -41,7 +41,7 @@ void UFindFriendSessionCallbackProxy::Activate() return; } - IOnlineSessionPtr Sessions = Online::GetSessionInterface(); + IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld()); if (Sessions.IsValid()) { @@ -71,7 +71,7 @@ void UFindFriendSessionCallbackProxy::Activate() void UFindFriendSessionCallbackProxy::OnFindFriendSessionCompleted(int32 LocalPlayer, bool bWasSuccessful, const TArray& SessionInfo) { - IOnlineSessionPtr Sessions = Online::GetSessionInterface(); + IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld()); if (Sessions.IsValid()) Sessions->ClearOnFindFriendSessionCompleteDelegate_Handle(LocalPlayer, FindFriendSessionCompleteDelegateHandle); diff --git a/AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp b/AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp index ee72eee..90c8a7f 100644 --- a/AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp +++ b/AdvancedSessions/Source/AdvancedSessions/Private/UpdateSessionCallbackProxyAdvanced.cpp @@ -30,7 +30,7 @@ UUpdateSessionCallbackProxyAdvanced* UUpdateSessionCallbackProxyAdvanced::Update void UUpdateSessionCallbackProxyAdvanced::Activate() { - IOnlineSessionPtr Sessions = Online::GetSessionInterface(); + IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld()); if (Sessions.IsValid()) { @@ -101,7 +101,7 @@ void UUpdateSessionCallbackProxyAdvanced::Activate() void UUpdateSessionCallbackProxyAdvanced::OnUpdateCompleted(FName SessionName, bool bWasSuccessful) { - IOnlineSessionPtr Sessions = Online::GetSessionInterface(); + IOnlineSessionPtr Sessions = Online::GetSessionInterface(GetWorld()); if (Sessions.IsValid()) { Sessions->ClearOnUpdateSessionCompleteDelegate_Handle(OnUpdateSessionCompleteDelegateHandle);