the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "LeaderboardInterface.h"
3
4LeaderboardInterface::LeaderboardInterface(LeaderboardManager *man)
5{
6 m_manager = man;
7 m_pending = false;
8
9 m_filter = (LeaderboardManager::EFilterMode) -1;
10 m_callback = NULL;
11 m_difficulty = 0;
12 m_type = LeaderboardManager::eStatsType_UNDEFINED;
13 m_startIndex = 0;
14 m_readCount = 0;
15
16 m_manager->OpenSession();
17}
18
19LeaderboardInterface::~LeaderboardInterface()
20{
21 m_manager->CancelOperation();
22 m_manager->CloseSession();
23}
24
25void LeaderboardInterface::ReadStats_Friends(LeaderboardReadListener *callback, int difficulty, LeaderboardManager::EStatsType type, PlayerUID myUID, unsigned int startIndex, unsigned int readCount)
26{
27 m_filter = LeaderboardManager::eFM_Friends;
28 m_pending = true;
29
30 m_callback = callback;
31 m_difficulty = difficulty;
32 m_type = type;
33 m_myUID = myUID;
34 m_startIndex = startIndex;
35 m_readCount = readCount;
36
37 tick();
38}
39
40void LeaderboardInterface::ReadStats_MyScore(LeaderboardReadListener *callback, int difficulty, LeaderboardManager::EStatsType type, PlayerUID myUID, unsigned int readCount)
41{
42 m_filter = LeaderboardManager::eFM_MyScore;
43 m_pending = true;
44
45 m_callback = callback;
46 m_difficulty = difficulty;
47 m_type = type;
48 m_myUID = myUID;
49 m_readCount = readCount;
50
51 tick();
52}
53
54void LeaderboardInterface::ReadStats_TopRank(LeaderboardReadListener *callback, int difficulty, LeaderboardManager::EStatsType type, unsigned int startIndex, unsigned int readCount)
55{
56 m_filter = LeaderboardManager::eFM_TopRank;
57 m_pending = true;
58
59 m_callback = callback;
60 m_difficulty = difficulty;
61 m_type = type;
62 m_startIndex = startIndex;
63 m_readCount = readCount;
64
65 tick();
66}
67
68void LeaderboardInterface::CancelOperation()
69{
70 m_manager->CancelOperation();
71 m_pending = false;
72}
73
74void LeaderboardInterface::tick()
75{
76 if (m_pending) m_pending = !callManager();
77}
78
79bool LeaderboardInterface::callManager()
80{
81 switch (m_filter)
82 {
83 case LeaderboardManager::eFM_Friends: return m_manager->ReadStats_Friends(m_callback, m_difficulty, m_type, m_myUID, m_startIndex, m_readCount);
84 case LeaderboardManager::eFM_MyScore: return m_manager->ReadStats_MyScore(m_callback, m_difficulty, m_type, m_myUID, m_readCount);
85 case LeaderboardManager::eFM_TopRank: return m_manager->ReadStats_TopRank(m_callback, m_difficulty, m_type, m_startIndex, m_readCount);
86 default: assert(false); return true;
87 }
88}