Space Plunder
Loading...
Searching...
No Matches
UFindLeaderboard Class Reference

#include <FindLeaderboard.h>

Inheritance diagram for UFindLeaderboard:

Static Public Member Functions

static UFindLeaderboardFindOrCreateLeaderboard (FString Name, ESteamLeaderboardSortMethod SortMethod, ESteamLeaderboardDisplayType DisplayType)
 
static UFindLeaderboardFindLeaderboard (FString Name)
 

Public Attributes

FResponseFindLeaderboardDelegate OnSuccess
 
FResponseFindLeaderboardDelegate OnFailure
 

Private Member Functions

virtual void Activate () override
 
void FindLeaderboardByName ()
 
void FindOrCreateLeaderboardByName ()
 
void OnLeaderboardFound (LeaderboardFindResult_t *pCallback, bool bIOFailure)
 

Private Attributes

FOnlineSubsystemSteam * SteamSubsystem
 
FSteamLeaderboardHandle Handle
 
FString LeaderboardName
 
bool bCreateLeaderboard
 
ESteamLeaderboardSortMethod LeaderboardSortMethod
 
ESteamLeaderboardDisplayType LeaderboardDisplayType
 
CCallResult< UFindLeaderboard, LeaderboardFindResult_t > m_callFindResult
 

Member Function Documentation

◆ Activate()

void UFindLeaderboard::Activate ( )
overrideprivatevirtual
29{
30 if(SteamAPI_Init())
31 {
33 {
35 }
36 else
37 {
39 }
40 }
41 else
42 {
43 GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Failed to initialize the Steam API!"));
44 OnFailure.Broadcast(Handle, EResult::k_EResultFail);
45 RemoveFromRoot();
46 }
47}
FSteamLeaderboardHandle Handle
Definition FindLeaderboard.h:60
void FindOrCreateLeaderboardByName()
Definition FindLeaderboard.cpp:57
void FindLeaderboardByName()
Definition FindLeaderboard.cpp:49
bool bCreateLeaderboard
Definition FindLeaderboard.h:62
FResponseFindLeaderboardDelegate OnFailure
Definition FindLeaderboard.h:46

◆ FindLeaderboard()

UFindLeaderboard * UFindLeaderboard::FindLeaderboard ( FString Name)
static
20{
21 UFindLeaderboard* SelfRef = NewObject<UFindLeaderboard>();
22 SelfRef->SteamSubsystem = static_cast<FOnlineSubsystemSteam*>(IOnlineSubsystem::Get());
23 SelfRef->bCreateLeaderboard = false;
24 SelfRef->LeaderboardName = Name;
25 return SelfRef;
26}
Definition FindLeaderboard.h:38
FString LeaderboardName
Definition FindLeaderboard.h:61
FOnlineSubsystemSteam * SteamSubsystem
Definition FindLeaderboard.h:57

◆ FindLeaderboardByName()

void UFindLeaderboard::FindLeaderboardByName ( )
private
50{
51 //- Call Find Function //
52 SteamAPICall_t hSteamAPICall = SteamUserStats()->FindLeaderboard(TCHAR_TO_ANSI(*LeaderboardName));
53 //- Attach Callback function //
55}
void OnLeaderboardFound(LeaderboardFindResult_t *pCallback, bool bIOFailure)
Definition FindLeaderboard.cpp:69
CCallResult< UFindLeaderboard, LeaderboardFindResult_t > m_callFindResult
Definition FindLeaderboard.h:71

◆ FindOrCreateLeaderboard()

UFindLeaderboard * UFindLeaderboard::FindOrCreateLeaderboard ( FString Name,
ESteamLeaderboardSortMethod SortMethod,
ESteamLeaderboardDisplayType DisplayType )
static
9{
10 UFindLeaderboard* SelfRef = NewObject<UFindLeaderboard>();
11 SelfRef->SteamSubsystem = static_cast<FOnlineSubsystemSteam*>(IOnlineSubsystem::Get());
12 SelfRef->LeaderboardName = Name;
13 SelfRef->bCreateLeaderboard = true;
14 SelfRef->LeaderboardSortMethod = SortMethod;
15 SelfRef->LeaderboardDisplayType = DisplayType;
16 return SelfRef;
17}
ESteamLeaderboardSortMethod LeaderboardSortMethod
Definition FindLeaderboard.h:63
ESteamLeaderboardDisplayType LeaderboardDisplayType
Definition FindLeaderboard.h:64

◆ FindOrCreateLeaderboardByName()

void UFindLeaderboard::FindOrCreateLeaderboardByName ( )
private
58{
59 uint8 SortMethodIndex = static_cast<uint8>(LeaderboardSortMethod);
60 uint8 DisplayTypeIndex = static_cast<uint8>(LeaderboardDisplayType);
61 const ELeaderboardSortMethod SortMethod = static_cast<ELeaderboardSortMethod>(SortMethodIndex);
62 const ELeaderboardDisplayType DisplayType = static_cast<ELeaderboardDisplayType>(DisplayTypeIndex);
63 //- Call Find Function //
64 SteamAPICall_t hSteamAPICall = SteamUserStats()->FindOrCreateLeaderboard(TCHAR_TO_ANSI(*LeaderboardName), SortMethod, DisplayType);
65 //- Attach Callback function //
67}

◆ OnLeaderboardFound()

void UFindLeaderboard::OnLeaderboardFound ( LeaderboardFindResult_t * pCallback,
bool bIOFailure )
private
70{
71 Handle = FSteamLeaderboardHandle(pCallback->m_hSteamLeaderboard);
72 if(!bIOFailure && pCallback->m_bLeaderboardFound != 0)
73 {
74 AsyncTask(ENamedThreads::GameThread, [this]()
75 { OnSuccess.Broadcast(Handle, EResult::k_EResultOK);}
76 );
77 GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, TEXT("Leaderboard Found!"));
78 }
79 else
80 {
81 GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Failed to find Leaderboard!"));
82 OnFailure.Broadcast(Handle, 99);
83 }
84 RemoveFromRoot();
85}
FResponseFindLeaderboardDelegate OnSuccess
Definition FindLeaderboard.h:43
Definition LeaderboardData.h:68

Member Data Documentation

◆ bCreateLeaderboard

bool UFindLeaderboard::bCreateLeaderboard
private

◆ Handle

FSteamLeaderboardHandle UFindLeaderboard::Handle
private

◆ LeaderboardDisplayType

ESteamLeaderboardDisplayType UFindLeaderboard::LeaderboardDisplayType
private

◆ LeaderboardName

FString UFindLeaderboard::LeaderboardName
private

◆ LeaderboardSortMethod

ESteamLeaderboardSortMethod UFindLeaderboard::LeaderboardSortMethod
private

◆ m_callFindResult

CCallResult<UFindLeaderboard, LeaderboardFindResult_t> UFindLeaderboard::m_callFindResult
private

◆ OnFailure

FResponseFindLeaderboardDelegate UFindLeaderboard::OnFailure

◆ OnSuccess

FResponseFindLeaderboardDelegate UFindLeaderboard::OnSuccess

◆ SteamSubsystem

FOnlineSubsystemSteam* UFindLeaderboard::SteamSubsystem
private

The documentation for this class was generated from the following files: