mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-23 13:13:37 +00:00
111 lines
3.3 KiB
C++
111 lines
3.3 KiB
C++
#include "LeaderboardManager.h"
|
|
|
|
#include "Minecraft.Client/Linux/Linux_App.h"
|
|
#include "Minecraft.Client/include/NetTypes.h"
|
|
#include "Minecraft.Client/include/SkinBox.h"
|
|
#include "Minecraft.Client/include/XboxStubs.h"
|
|
#include "console_helpers/StringHelpers.h"
|
|
|
|
const std::wstring LeaderboardManager::filterNames[eNumFilterModes] = {
|
|
L"Friends", L"MyScore", L"TopRank"};
|
|
|
|
void LeaderboardManager::DeleteInstance() {
|
|
delete m_instance;
|
|
m_instance = nullptr;
|
|
}
|
|
|
|
LeaderboardManager::LeaderboardManager() {
|
|
zeroReadParameters();
|
|
|
|
m_myXUID = INVALID_XUID;
|
|
}
|
|
|
|
void LeaderboardManager::zeroReadParameters() {
|
|
m_difficulty = -1;
|
|
m_statsType = eStatsType_UNDEFINED;
|
|
m_readListener = nullptr;
|
|
m_startIndex = 0;
|
|
m_readCount = 0;
|
|
m_eFilterMode = eFM_UNDEFINED;
|
|
}
|
|
|
|
bool LeaderboardManager::ReadStats_Friends(LeaderboardReadListener* listener,
|
|
int difficulty, EStatsType type,
|
|
PlayerUID myUID,
|
|
unsigned int startIndex,
|
|
unsigned int readCount) {
|
|
zeroReadParameters();
|
|
|
|
m_readListener = listener;
|
|
m_difficulty = difficulty;
|
|
m_statsType = type;
|
|
|
|
m_eFilterMode = eFM_Friends;
|
|
return true;
|
|
}
|
|
|
|
bool LeaderboardManager::ReadStats_MyScore(LeaderboardReadListener* listener,
|
|
int difficulty, EStatsType type,
|
|
PlayerUID myUID,
|
|
unsigned int readCount) {
|
|
zeroReadParameters();
|
|
|
|
m_readListener = listener;
|
|
m_difficulty = difficulty;
|
|
m_statsType = type;
|
|
|
|
m_readCount = readCount;
|
|
|
|
m_eFilterMode = eFM_MyScore;
|
|
return true;
|
|
}
|
|
|
|
bool LeaderboardManager::ReadStats_TopRank(LeaderboardReadListener* listener,
|
|
int difficulty, EStatsType type,
|
|
unsigned int startIndex,
|
|
unsigned int readCount) {
|
|
zeroReadParameters();
|
|
|
|
m_readListener = listener;
|
|
m_difficulty = difficulty;
|
|
m_statsType = type;
|
|
|
|
m_startIndex = startIndex;
|
|
m_readCount = readCount;
|
|
|
|
m_eFilterMode = eFM_TopRank;
|
|
return true;
|
|
}
|
|
|
|
void LeaderboardManager::printStats(ReadView& view) {
|
|
app.DebugPrintf(
|
|
"[LeaderboardManager] Printing stats:\n"
|
|
"\tnumQueries=%i\n",
|
|
view.m_numQueries);
|
|
|
|
for (int i = 0; i < view.m_numQueries; i++) {
|
|
ReadScore score = view.m_queries[i];
|
|
|
|
app.DebugPrintf("\tname='%s'\n",
|
|
wstringtofilename(std::wstring(score.m_name)));
|
|
app.DebugPrintf("\trank='%i'\n", score.m_rank);
|
|
|
|
app.DebugPrintf("\tstatsData=[");
|
|
for (int j = 0; j < score.m_statsSize; j++)
|
|
app.DebugPrintf(" %i", score.m_statsData[j]);
|
|
app.DebugPrintf("]\n");
|
|
}
|
|
}
|
|
|
|
bool DebugReadListener::OnStatsReadComplete(
|
|
LeaderboardManager::eStatsReturn success, int numResults,
|
|
LeaderboardManager::ViewOut results) {
|
|
app.DebugPrintf("[DebugReadListener] OnStatsReadComplete, %s:\n",
|
|
(success ? "success" : "FAILED"));
|
|
LeaderboardManager::printStats(results);
|
|
|
|
return true;
|
|
}
|
|
|
|
DebugReadListener* DebugReadListener::m_instance = new DebugReadListener();
|