17#include "Interfaces/OnlineAchievementsInterface.h"
18#include "OnlineIdentityPico.h"
19#include "OnlineSubsystemPicoPackage.h"
21#define USE_PICO_ACHIEVEMENT_DESC FName(TEXT("USE_PICO_ACHIEVEMENT_DESC"))
22#define USE_PICO_ACHIEVEMENT FName(TEXT("USE_PICO_ACHIEVEMNT"))
23#define USE_PICO_ACHIEVEMENT_WRITE FName(TEXT("USE_PICO_ACHIEVEMENT_WRITE"))
54 FString ToDebugString()
const
56 return FString::Printf( TEXT(
"Name=%s\nTitle=%s\nLockedDesc=%s\nUnlockedDesc=%s\nbIsHidden=%s\nType=%d\nTarget=%llu\nBitfieldLength=%u\nIsArchived: %s\nLockedImageURL: %s\nUnlockedImageURL: %s\nWritePolicy: %d\n"),
57 *
Name, *Title.ToString(),
58 *LockedDesc.ToString(),
59 *UnlockedDesc.ToString(),
60 bIsHidden ? TEXT(
"true") : TEXT(
"false"),
92 Count = ppf_AchievementProgress_GetCount(AchievementProgress);
93 Bitfield = ppf_AchievementProgress_GetBitfield(AchievementProgress);
94 bIsUnlocked = ppf_AchievementProgress_GetIsUnlocked(AchievementProgress);
96 FString AchievementName = UTF8_TO_TCHAR(ppf_AchievementProgress_GetName(AchievementProgress));
97 UE_LOG_ONLINE_ACHIEVEMENTS(Display, TEXT(
"PPF_GAME FOnlineAchievementPico constructor ppf_AchievementProgress_GetName: %s, ppf_AchievementProgress_GetCount: %lld"), *AchievementName, ppf_AchievementProgress_GetCount(AchievementProgress));
105 UE_LOG_ONLINE_ACHIEVEMENTS(Display, TEXT(
"PPF_GAME FOnlineAchievementPico constructor by FOnlineAchievementDescPico AchievementDesc.Name: %s"), *AchievementDesc.
Name);
106 Id = AchievementDesc.
Name;
108 if (AchievementDesc.
Type == EAchievementType::Bitfield)
121 UE_LOG_ONLINE_ACHIEVEMENTS(Display, TEXT(
"PPF_GAME FOnlineAchievementPico constructor by FOnlineAchievement Id: %s"), *OnlineAchievementPico.Id);
122 Id = OnlineAchievementPico.Id;
123 Progress = OnlineAchievementPico.Progress;
148 FOnlineSubsystemPico& PicoSubsystem;
151 TMap<FUniqueNetIdPico, TArray<FOnlineAchievement>> PlayerAchievements;
154 TMap<FString, FOnlineAchievementDescPico> AchievementDescriptions;
156 void GetWriteAchievementCountValue(FVariantData VariantData,
long long& OutData)
const;
157 void GetWriteAchievementBitfieldValue(FVariantData VariantData, FString& OutData, uint32 BitfieldLength)
const;
161 void SaveLog(
const ELogVerbosity::Type Verbosity,
const FString & Log)
const;
164 const int MAX_REQUEST_SIZE = 50;
165 int GetAllProgressIndex = 0;
166 int GetAllDefinitionIndex = 0;
185 virtual void WriteAchievements(
const FUniqueNetId& PlayerId, FOnlineAchievementsWriteRef& WriteObject,
const FOnAchievementsWrittenDelegate& Delegate = FOnAchievementsWrittenDelegate())
override;
190 virtual void QueryAchievements(
const FUniqueNetId& PlayerId,
const FOnQueryAchievementsCompleteDelegate& Delegate = FOnQueryAchievementsCompleteDelegate())
override;
195 virtual void QueryAchievementDescriptions(
const FUniqueNetId& PlayerId,
const FOnQueryAchievementsCompleteDelegate& Delegate = FOnQueryAchievementsCompleteDelegate())
override;
207 virtual EOnlineCachedResult::Type
GetCachedAchievement(
const FUniqueNetId& PlayerId,
const FString& AchievementId, FOnlineAchievement& OutAchievement)
override;
218 virtual EOnlineCachedResult::Type
GetCachedAchievements(
const FUniqueNetId& PlayerId, TArray<FOnlineAchievement> & OutAchievements)
override;
230#if !UE_BUILD_SHIPPING
231 virtual bool ResetAchievements(
const FUniqueNetId& PlayerId)
override;
OnlineAchievementsPico class inherited from IOnlineAchievements(Unreal Engine)
Definition: OnlineAchievementsInterfacePico.h:144
virtual void QueryAchievements(const FUniqueNetId &PlayerId, const FOnQueryAchievementsCompleteDelegate &Delegate=FOnQueryAchievementsCompleteDelegate()) override
Read achievement ids and progress from the server. You must use QueryAchievementDescriptions first to...
virtual void QueryAchievementDescriptions(const FUniqueNetId &PlayerId, const FOnQueryAchievementsCompleteDelegate &Delegate=FOnQueryAchievementsCompleteDelegate()) override
Read achievement descriptions from the server for displaying achievements in game。
virtual EOnlineCachedResult::Type GetCachedAchievements(const FUniqueNetId &PlayerId, TArray< FOnlineAchievement > &OutAchievements) override
Get cached achievements data.
virtual void WriteAchievements(const FUniqueNetId &PlayerId, FOnlineAchievementsWriteRef &WriteObject, const FOnAchievementsWrittenDelegate &Delegate=FOnAchievementsWrittenDelegate()) override
Refresh achievement progress data to the server, or unlock an achievement. If the achievement type is...
virtual EOnlineCachedResult::Type GetCachedAchievement(const FUniqueNetId &PlayerId, const FString &AchievementId, FOnlineAchievement &OutAchievement) override
Get cached achievement data.
virtual EOnlineCachedResult::Type GetCachedAchievementDescription(const FString &AchievementId, FOnlineAchievementDesc &OutAchievementDesc) override
The lookup achievement data was found in the cache.
EAchievementType
The type of the achievement.
Definition: OnlineSubsystemPicoNames.h:573
EAchievementWritePolicy
The write policy of the achievement.
Definition: OnlineSubsystemPicoNames.h:582
Definition: OnlineAchievementsInterfacePico.h:29
uint32 BitfieldLength
Definition: OnlineAchievementsInterfacePico.h:37
FString UnlockedImageURL
Definition: OnlineAchievementsInterfacePico.h:52
EAchievementType Type
Definition: OnlineAchievementsInterfacePico.h:31
uint64 Target
Definition: OnlineAchievementsInterfacePico.h:34
FString LockedImageURL
Definition: OnlineAchievementsInterfacePico.h:49
bool IsArchived
Definition: OnlineAchievementsInterfacePico.h:43
FString Name
Definition: OnlineAchievementsInterfacePico.h:46
EAchievementWritePolicy WritePolicy
Definition: OnlineAchievementsInterfacePico.h:40
Definition: OnlineAchievementsInterfacePico.h:77
long long Count
Definition: OnlineAchievementsInterfacePico.h:79
FString Bitfield
Definition: OnlineAchievementsInterfacePico.h:82
bool bIsUnlocked
Definition: OnlineAchievementsInterfacePico.h:85