mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-23 08:24:18 +00:00

This is because Steam splits the two queries up and doesn't allow combining them. Added initial Workshop Items support for viewing subscribed items details and information. Former-commit-id: 3153b6dbabf811e864a16408e816df5a03f5c0a3
55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "OnlineSubSystemHeader.h"
|
|
#include "SteamFuncs/SteamWSRequestUGCDetailsCallbackProxy.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// UEndSessionCallbackProxy
|
|
|
|
USteamWSRequestUGCDetailsCallbackProxy::USteamWSRequestUGCDetailsCallbackProxy(const FObjectInitializer& ObjectInitializer)
|
|
: Super(ObjectInitializer)
|
|
{
|
|
NumSecondsBeforeTimeout = 4.0f;
|
|
}
|
|
|
|
|
|
USteamWSRequestUGCDetailsCallbackProxy* USteamWSRequestUGCDetailsCallbackProxy::GetWorkshopItemDetails(UObject* WorldContextObject, FBPSteamWorkshopID WorkShopID, int32 NumSecondsBeforeTimeout)
|
|
{
|
|
USteamWSRequestUGCDetailsCallbackProxy* Proxy = NewObject<USteamWSRequestUGCDetailsCallbackProxy>();
|
|
|
|
Proxy->WorkShopID = WorkShopID;
|
|
Proxy->NumSecondsBeforeTimeout = NumSecondsBeforeTimeout;
|
|
return Proxy;
|
|
}
|
|
|
|
void USteamWSRequestUGCDetailsCallbackProxy::Activate()
|
|
{
|
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
|
if (SteamAPI_Init())
|
|
{
|
|
SteamAPICall_t hSteamAPICall = SteamUGC()->RequestUGCDetails(WorkShopID.SteamWorkshopID, NumSecondsBeforeTimeout);
|
|
m_callResultUGCRequestDetails.Set(hSteamAPICall, this, &USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails);
|
|
return;
|
|
}
|
|
#endif
|
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
}
|
|
|
|
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCRequestUGCDetailsResult_t *pResult, bool bIOFailure)
|
|
{
|
|
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
|
|
|
if (bIOFailure || !pResult)
|
|
{
|
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
return;
|
|
}
|
|
|
|
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(pResult->m_details));
|
|
return;
|
|
#endif
|
|
|
|
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
|
}
|
|
|