Path: blob/master/RSDKv5/RSDK/User/Dummy/DummyLeaderboards.cpp
1168 views
#include <string>12#if RETRO_REV023void DummyLeaderboards::FillLeaderboardEntries(RSDK::SKU::LeaderboardLoadInfo *info)4{5const char *dummyNames[] = { "ORCIHILLARY124", "AUCTORJOLIE521", "SENECTUSFLORENCE789", "MAGNAAVRAM503", "SITVERNON320",6"DUICHRISTEN429", "NULLAKERMIT649", "INTEGERGEORGE708", "HENDRERITDREW443", "UTULYSSES507",7"ACCUMSANBRUCE276", "BANANAARON804", "MAURISSILAS372", "ETCALVIN641", "UTGALENA780",8"FEUGIATSHAY665", "ORCIJULIET388", "ETJENNA318", "LIBEROIDOLA420", "ATVIELKA576",9"PHASELLUSJENETTE627", "CONSECTETUERCALEB550", "SITVICTOR359", "PURUSDARRYL50", "DONECAVRAM56",10"PENATIBUSSYBILL30", "MAURISBARCLAY563", "CONGUECOLLEEN811", "MORBIDESTINY655", "SEMPERIONA579",11"RISUSKEANE807", "QUISQUEMARYAM927", "COMMODOSTEPHANIE54", "MALESUADABURTON350", "VIVAMUSROBIN330",12"QUISQUEWHILEMINA413", "VESTIBULUMRYDER890", "LACUSINDIRA112", "NEQUEJESCIE446", "EGESTASMORGAN390",13"ETODYSSEUS95", "EGETHERMIONE127", "ENIMPASCALE599", "ODIOWHOOPI328", "DOLORANGELICA718",14"ODIOSLOANE426", "DUIZELDA319", "METUSPORTER906", "NONUMMYSHANNON166", "IPSUMANTHONY906",15"ACCUMSANRAPHAEL296", "ORNAREHU604", "MOLESTIERYDER304", "FACILISILAITH900", "MIYVONNE287",16"CRASHEDY110", "TEMPUSRAE486", "ORCICOLBY173", "ULTRICESJADEN480", "LECTUSBEAU552",17"LIGULAJESSAMINE824", "ORCISOLOMON19", "VARIUSDARRYL437", "EUISMODKATELL668", "LACUSSTEVEN302",18"ALIQUETRICHARD807", "PEDEKAI692", "VIVAMUSCHARLOTTE167", "MAURISLEWIS101", "NULLANELLE11",19"MAECENASKAMEKO602", "LOREMHALEY545", "PHASELLUSPAUL954", "ERATGLORIA527", "DIAMBURKE290",20"SEMYOKO792", "ANTEMICHELLE769", "SEMPERDOMINIC873", "CONDIMENTUMNYSSA826", "PEDEDYLAN675",21"ETCRUZ380", "VELJAQUELYN95", "NONDACEY190", "UTCAIN386", "NULLANOMLANGA941",22"QUISQUESIERRA659", "MATTISABDUL346", "PHASELLUSKNOX183", "NEQUEXYLA92", "ORNAREGAY372",23"FACILISISIVY303", "TELLUSHARLAN339", "METUSSOPOLINE75", "NUNCKYLYNN927", "PROINHERMIONE775",24"TEMPORFITZGERALD656", "VELVELMA504", "FAUCIBUSTAMEKAH272", "PORTTITORWHOOPI881", "EUPETER41" };2526UserLeaderboards *leaderboards = info->parent->parent;27info->status = STATUS_OK;2829for (int32 e = 0; e < info->avail.length; ++e) {30LeaderboardEntry *entry = &info->entries[e];3132if (leaderboards->isUser) {33entry->status = STATUS_OK;34entry->globalRank = info->avail.start + e;35entry->score = (4 * entry->globalRank + 2400) % 59999;36entry->isUser = entry->globalRank == leaderboards->userRank;3738memset(&entry->username, 0, sizeof(entry->username));39if (entry->isUser) {40GetUsername(&entry->username);41}42else {43InitString(&entry->username, "", 0);44SetString(&entry->username, dummyNames[e % 100]);45}4647memset(&entry->userID, 0, sizeof(entry->userID));48InitString(&entry->userID, "DUMMY_USER_ID", 0);49}50else {51entry->status = STATUS_OK;52entry->globalRank = info->avail.start + e;53entry->score = (4 * entry->globalRank + 2400) % 59999;54entry->isUser = false;5556memset(&entry->username, 0, sizeof(entry->username));57InitString(&entry->username, "", 0);58SetString(&entry->username, dummyNames[e % 100]);5960memset(&entry->userID, 0, sizeof(entry->userID));61InitString(&entry->userID, "DUMMY_USER_ID", 0);62}63}64}6566void DummyLeaderboards::FinishLeaderboardFetch(DummyLeaderboardCallback *callback)67{68this->status = SKU::GetAPIValue(SKU::GetAPIValueID("SYSTEM_LEADERBOARD_STATUS", 0));6970if (this->status == STATUS_OK) {71int32 startIndex = 1;72if (callback->isUser) {73startIndex = this->userRank - 10;74if (this->userRank == 10)75startIndex = 1;76}7778LeaderboardLoadInfo *info = this->loadList.InitLoadInfo();79info->avail.start = startIndex;80info->avail.length = 20;8182FillLeaderboardEntries(info);8384this->loadList.Clear();85this->loadList.count = 1;86this->loadList.prev = info;87this->loadList.next = info;88this->loadList.last = info;89if (info->avail.start == 1)90info->disableLoadPrev = true;9192this->entryInfo.Setup();93leaderboards->entryInfo.loadSize.start = this->entryInfo.viewSize.start;94leaderboards->entryInfo.loadSize.length = this->entryInfo.viewSize.length;95}96}9798void DummyLeaderboards::FinishLeaderboardLoad(DummyLeaderboardCallback *callback)99{100FillLeaderboardEntries(callback->info);101entryInfo.Setup();102}103104void DummyLeaderboards::FetchLeaderboard(LeaderboardID *leaderboard, bool32 isUser)105{106if (!leaderboard)107return;108109if (status == STATUS_CONTINUE) {110std::string str = __FILE__;111str += ": FetchLeaderboard() # ERROR Attemped to fetch leaderboard when fetch currently in progress. \r\n";112PrintLog(PRINT_NORMAL, str.c_str());113}114else {115PrintLog(PRINT_NORMAL, "DUMMY FetchLeaderboard(%s, %s)", leaderboard->idPC, isUser ? "true" : "false");116117this->currentLeaderboard = leaderboard;118this->loadList.Clear();119this->entryInfo.Setup();120121this->isUser = isUser;122this->userRank = 0;123if (isUser)124userRank = rand() % 9999 + 1;125126status = STATUS_CONTINUE;127128DummyLeaderboardCallback *cb = callbackList.Append();129cb->type = 0;130cb->isUser = isUser;131cb->loadTime = SKU::GetAPIValue(SKU::GetAPIValueID("SYSTEM_LEADERBOARD_LOAD_TIME", 0));132}133}134135void DummyLeaderboards::LoadLeaderboards(RSDK::SKU::LeaderboardLoadInfo *info)136{137for (int32 i = 0; i < info->avail.length; ++i) {138info->entries[i].status = STATUS_CONTINUE;139info->entries[i].globalRank = info->avail.start + i;140}141142DummyLeaderboardCallback *cb = callbackList.Append();143cb->type = 1;144cb->loadTime = SKU::GetAPIValue(SKU::GetAPIValueID("SYSTEM_LEADERBOARD_LOAD_TIME", 0));145cb->info = info;146}147148void DummyLeaderboards::TrackScore(LeaderboardID *leaderboard, int32 score, void (*callback)(bool32 success, int32 rank))149{150if (!leaderboard)151return;152153std::string str = __FILE__;154str += ": TrackScore() # TrackScore ";155str += std::to_string(score);156str += " \r\n";157PrintLog(PRINT_NORMAL, str.c_str());158159DummyLeaderboardCallback *cb = callbackList.Append();160cb->type = 2;161cb->loadTime = SKU::GetAPIValue(SKU::GetAPIValueID("SYSTEM_LEADERBOARD_LOAD_TIME", 0));162cb->trackRank = rand() % 61 + 30;163cb->trackScore = rand() % 9999 + 1;164cb->trackCB = callback;165}166#endif167168169