mirror of
https://github.com/mordentral/AdvancedSessionsPlugin.git
synced 2025-10-28 19:04:07 +00:00
Fixing the blueprint events being thrown in the steam callback thread.
Former-commit-id: e333ce44217f61acd3545ea12a33a5fddcd27d98
This commit is contained in:
@@ -47,10 +47,20 @@ void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanO
|
||||
TArray<FBPSteamGroupOfficer> OfficerArray;
|
||||
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || !pResult->m_bSuccess)
|
||||
{
|
||||
OnFailure.Broadcast(OfficerArray);
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -79,11 +89,31 @@ void USteamRequestGroupOfficersCallbackProxy::OnRequestGroupOfficerDetails(ClanO
|
||||
OfficerArray.Add(Officer);
|
||||
}
|
||||
|
||||
OnSuccess.Broadcast(OfficerArray);
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([OfficerArray, this]()
|
||||
{
|
||||
OnSuccess.Broadcast(OfficerArray);
|
||||
});
|
||||
}
|
||||
|
||||
//OnSuccess.Broadcast(OfficerArray);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
TArray<FBPSteamGroupOfficer> FailureArray;
|
||||
OnFailure.Broadcast(FailureArray);
|
||||
});
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
OnFailure.Broadcast(OfficerArray);
|
||||
// Should never hit this anyway
|
||||
//OnFailure.Broadcast(OfficerArray);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,23 +49,51 @@ void USteamWSRequestUGCDetailsCallbackProxy::Activate()
|
||||
void USteamWSRequestUGCDetailsCallbackProxy::OnUGCRequestUGCDetails(SteamUGCQueryCompleted_t *pResult, bool bIOFailure)
|
||||
{
|
||||
#if PLATFORM_WINDOWS || PLATFORM_MAC || PLATFORM_LINUX
|
||||
|
||||
FOnlineSubsystemSteam* SteamSubsystem = (FOnlineSubsystemSteam*)(IOnlineSubsystem::Get(STEAM_SUBSYSTEM));
|
||||
|
||||
if (bIOFailure || !pResult || pResult->m_unNumResultsReturned <= 0)
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
return;
|
||||
}
|
||||
if (SteamAPI_Init())
|
||||
{
|
||||
SteamUGCDetails_t Details;
|
||||
if (SteamUGC()->GetQueryUGCResult(pResult->m_handle, 0, &Details))
|
||||
{
|
||||
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([Details, this]()
|
||||
{
|
||||
OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||
});
|
||||
}
|
||||
|
||||
//OnSuccess.Broadcast(FBPSteamWorkshopItemDetails(Details));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SteamSubsystem != nullptr)
|
||||
{
|
||||
SteamSubsystem->ExecuteNextTick([this]()
|
||||
{
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
});
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
// Not needed, should never hit here
|
||||
//OnFailure.Broadcast(FBPSteamWorkshopItemDetails());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user