void CScores::OnRequestSuccessRanking() { //Get score and rank m_curuserscore = 0; m_curuserrank = (int)SC_RankingController_GetRanking(m_rankingController); SC_Score_h score = SC_RankingController_GetScore(m_rankingController); if (score) { m_curuserscore = (int)SC_Score_GetResult(score); m_curuserminorresult = (int)SC_Score_GetMinorResult(score); } if (g_localhighscore > m_curuserscore) //Submit local highscore if need be { DoSubmitScore(); StartWait("Submiting current user score"); } else // Else loading scores list { //See OnRequestSuccess() SC_ScoresController_SetMode(m_scoresController, 1); SC_ScoresController_LoadRange(m_scoresController, 0, SC_PAGE_SCORES_COUNT); StartWait("Loading global scores"); } }
FREObject loadScores(FREContext ctx, void* functionData, uint32_t argc, FREObject argv[]) { FREObject start=0,length=0; int aStart=0,aLength=0; FREGetObjectProperty(argv[0],(const uint8_t*)"start",start,NULL); FREGetObjectProperty(argv[0],(const uint8_t*)"length",length,NULL); FREGetObjectAsInt32(start,&aStart); FREGetObjectAsInt32(length,&aLength); #if defined(BB10) SC_Range_t aRange = {aStart,aLength}; SC_ScoresController_LoadScores(scores_controller,aRange); // TODO: This is different in bb10, there is a range object #else SC_ScoresController_LoadRange(scores_controller,aStart,aLength); #endif return NULL; }