This commit is contained in:
mordentral
2016-04-19 09:14:44 -04:00
parent 202b95387f
commit fdfafcc845
2 changed files with 11 additions and 3 deletions

View File

@@ -21,7 +21,7 @@ class UFindSessionsCallbackProxyAdvanced : public UOnlineBlueprintCallProxyBase
// Searches for advertised sessions with the default online subsystem and includes an array of filters
UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", WorldContext = "WorldContextObject", AutoCreateRefTerm="Filters"), Category = "Online|AdvancedSessions")
static UFindSessionsCallbackProxyAdvanced* FindSessionsAdvanced(UObject* WorldContextObject, class APlayerController* PlayerController, int32 MaxResults, bool bUseLAN, const TArray<FSessionsSearchSetting> &Filters);
static UFindSessionsCallbackProxyAdvanced* FindSessionsAdvanced(UObject* WorldContextObject, class APlayerController* PlayerController, int32 MaxResults, bool bUseLAN, bool bSearchDedicated, const TArray<FSessionsSearchSetting> &Filters);
static bool CompareVariants(const FVariantData &A, const FVariantData &B, EOnlineComparisonOpRedux::Type Comparator);
@@ -67,6 +67,9 @@ private:
// Whether or not to search LAN
bool bUseLAN;
// Whether or not to search for dedicated servers
bool bUseDedicated;
// Maximum number of results to return
int MaxResults;

View File

@@ -22,6 +22,7 @@ UFindSessionsCallbackProxyAdvanced* UFindSessionsCallbackProxyAdvanced::FindSess
Proxy->MaxResults = MaxResults;
Proxy->WorldContextObject = WorldContextObject;
Proxy->SearchSettings = Filters;
Procy->bUseDedicated = bUseDedicated;
return Proxy;
}
@@ -36,7 +37,7 @@ void UFindSessionsCallbackProxyAdvanced::Activate()
if (Sessions.IsValid())
{
DelegateHandle = Sessions->AddOnFindSessionsCompleteDelegate_Handle(Delegate);
SearchObject = MakeShareable(new FOnlineSessionSearch);
SearchObject->MaxSearchResults = MaxResults;
SearchObject->bIsLanQuery = bUseLAN;
@@ -44,7 +45,11 @@ void UFindSessionsCallbackProxyAdvanced::Activate()
// Create temp filter variable, because I had to re-define a blueprint version of this, it is required.
FOnlineSearchSettingsEx tem;
tem.Set(SEARCH_PRESENCE, true, EOnlineComparisonOp::Equals);
if (!bUseDedicated)
{
tem.Set(SEARCH_PRESENCE, true, EOnlineComparisonOp::Equals);
}
// Filter results
if (SearchSettings.Num() > 0)