Files
UnrealEngine/Engine/Plugins/Online/OnlineServicesEOSGS/Source/Public/Online/AchievementsEOSGS.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

51 lines
2.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Online/AchievementsCommon.h"
#include "Online/OnlineServicesEOSGSTypes.h"
#if defined(EOS_PLATFORM_BASE_FILE_NAME)
#include EOS_PLATFORM_BASE_FILE_NAME
#endif
#include "eos_achievements_types.h"
namespace UE::Online {
class FOnlineServicesEpicCommon;
class FAchievementsEOSGS : public FAchievementsCommon
{
public:
using Super = FAchievementsCommon;
ONLINESERVICESEOSGS_API FAchievementsEOSGS(FOnlineServicesEpicCommon& InOwningSubsystem);
virtual ~FAchievementsEOSGS() = default;
// IOnlineComponent
ONLINESERVICESEOSGS_API virtual void Initialize() override;
ONLINESERVICESEOSGS_API virtual void Shutdown() override;
// IAchievements
ONLINESERVICESEOSGS_API virtual TOnlineAsyncOpHandle<FQueryAchievementDefinitions> QueryAchievementDefinitions(FQueryAchievementDefinitions::Params&& Params) override;
ONLINESERVICESEOSGS_API virtual TOnlineResult<FGetAchievementIds> GetAchievementIds(FGetAchievementIds::Params&& Params) override;
ONLINESERVICESEOSGS_API virtual TOnlineResult<FGetAchievementDefinition> GetAchievementDefinition(FGetAchievementDefinition::Params&& Params) override;
ONLINESERVICESEOSGS_API virtual TOnlineAsyncOpHandle<FQueryAchievementStates> QueryAchievementStates(FQueryAchievementStates::Params&& Params) override;
ONLINESERVICESEOSGS_API virtual TOnlineResult<FGetAchievementState> GetAchievementState(FGetAchievementState::Params&& Params) const override;
ONLINESERVICESEOSGS_API virtual TOnlineAsyncOpHandle<FUnlockAchievements> UnlockAchievements(FUnlockAchievements::Params&& Params) override;
protected:
ONLINESERVICESEOSGS_API void HandleAchievementsUnlocked(const EOS_Achievements_OnAchievementsUnlockedCallbackV2Info* Data);
ONLINESERVICESEOSGS_API FAccountId FindAccountId(const EOS_ProductUserId ProductUserId);
EOS_HAchievements AchievementsHandle = nullptr;
using FAchievementDefinitionMap = TMap<FString, FAchievementDefinition>;
TOptional<FAchievementDefinitionMap> AchievementDefinitions;
FEOSEventRegistrationPtr OnAchievementsUnlocked;
};
/* UE::Online */ }