void FOnlineAchievementsNull::QueryAchievements( const FUniqueNetId& PlayerId, const FOnQueryAchievementsCompleteDelegate& Delegate ) { if (!ReadAchievementsFromConfig()) { // we don't have achievements Delegate.ExecuteIfBound(PlayerId, false); return; } FUniqueNetIdString NullId(PlayerId); if (!PlayerAchievements.Find(NullId)) { // copy for a new player TArray<FOnlineAchievement> AchievementsForPlayer; const int32 AchNum = Achievements.Num(); for (int32 AchIdx = 0; AchIdx < AchNum; ++AchIdx) { AchievementsForPlayer.Add( Achievements[ AchIdx ] ); } PlayerAchievements.Add(NullId, AchievementsForPlayer); } Delegate.ExecuteIfBound(PlayerId, true); }
void FOnlineAchievementsGameCircle::QueryAchievements(const FUniqueNetId& PlayerId, const FOnQueryAchievementsCompleteDelegate& Delegate) { if(AndroidSubsystem->GetCallbackManager() == nullptr || AndroidSubsystem->GetIdentityGameCircle()->GetLoginStatus(0) != ELoginStatus::LoggedIn) { Delegate.ExecuteIfBound(PlayerId, false); return; } AmazonGames::AchievementsClientInterface::getAchievements(new FOnlineGetAchievementsCallback(AndroidSubsystem, FUniqueNetIdString(PlayerId), Delegate)); }
void FOnlineAchievementsNull::QueryAchievementDescriptions( const FUniqueNetId& PlayerId, const FOnQueryAchievementsCompleteDelegate& Delegate ) { if (!ReadAchievementsFromConfig()) { // we don't have achievements Delegate.ExecuteIfBound(PlayerId, false); return; } if (AchievementDescriptions.Num() == 0) { const int32 AchNum = Achievements.Num(); for (int32 AchIdx = 0; AchIdx < AchNum; ++AchIdx) { AchievementDescriptions.Add(Achievements[AchIdx].Id, Achievements[AchIdx]); } check(AchievementDescriptions.Num() > 0); } Delegate.ExecuteIfBound(PlayerId, true); }
void FOnlineAchievementsSteam::QueryAchievementDescriptions( const FUniqueNetId& PlayerId, const FOnQueryAchievementsCompleteDelegate& Delegate ) { if (!bHaveConfiguredAchievements) { // we don't have achievements UE_LOG_ONLINE(Warning, TEXT("Steam achievements have not been configured in .ini")); Delegate.ExecuteIfBound( PlayerId, false ); return; } // schedule a read (this will trigger the OnAchievementDescriptionsRead delegates) StatsInt->QueryAchievementsInternal( FUniqueNetIdSteam(PlayerId), Delegate ); }