Advertisement
Guest User

example of upSL initialization

a guest
Jul 18th, 2012
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. #include "Application.h"
  2.  
  3. #include "GameScene.h"
  4.  
  5. #include "Scoreloop.h"
  6.  
  7. Scoreloop::UserController*      gUserController = NULL;
  8. Scoreloop::AchievementsController*  gAchievementsController = NULL;
  9. bool    gScoreloopInitialized = false;
  10. Scoreloop::SessionState::Enum   gSessionState = Scoreloop::SessionState::Initial;   // there is own enumeration, not from upSL
  11.  
  12. Application::Application()
  13. {
  14. }
  15.  
  16. Application::~Application()
  17. {
  18.     if (gAchievementsController)
  19.         Scoreloop::AchievementsController::Release(gAchievementsController);
  20.     if (gUserController)
  21.         Scoreloop::UserController::Release(gUserController);
  22.     Scoreloop::Client::Shutdown();
  23. }
  24.  
  25. void LoadUserRequestComplete(int error_code)
  26. {
  27.  
  28.     if (error_code == Scoreloop::ErrorCode::Ok)
  29.     {
  30.         gSessionState = Scoreloop::SessionState::Authenticated;
  31.         Scoreloop::User* user = Scoreloop::Session::GetUser();
  32.         const char* login = Scoreloop::User::GetLogin(user);
  33.     }
  34.     else
  35.         gSessionState = Scoreloop::SessionState::Failed;
  36. }
  37.  
  38. void LoadAchievementsComplete(int error_code)
  39. {
  40.     if (error_code == ErrorCode::Ok)
  41.     {
  42.         AchievementList* achievements = AchievementsController::GetAchievements(gAchievementsController);
  43.         unsigned int achievements_count = AchievementList::GetAchievementsCount(achievements);
  44.         for (size_t i = 0; i < achievements_count; i++)
  45.         {
  46.             Achievement* achievement = AchievementList::GetAchievement(achievements, i);
  47.             if (Achievement::IsAchieved(achievement))
  48.             {
  49.                 Award* award = Achievement::GetAward(achievement);
  50.                 const char* award_identifier = Award::GetIdentifier(award);
  51.                 // do something
  52.             }          
  53.         }
  54.     }
  55. }
  56.  
  57. void InitializeScoreloopControllers()
  58. {
  59.     gSessionState = Scoreloop::SessionState::Authenticating;
  60.     if (gUserController == NULL)
  61.     {
  62.         gSessionState = Scoreloop::SessionState::Authenticating;
  63.         gUserController = Scoreloop::UserController::Create(LoadUserRequestComplete);
  64.         Scoreloop::UserController::LoadUser(gUserController);
  65.     }
  66.  
  67.     if (gAchievementsController == NULL)
  68.     {
  69.         gAchievementsController = Scoreloop::AchievementsController::Create(LoadAchievementsComplete);
  70.         gAchievementsSynchronizationInProgress = true;
  71.         Scoreloop::AchievementsController::SynchronizeAchievements(gAchievementsController);
  72.     }
  73. }
  74.  
  75. void TOSAccepted()
  76. {
  77.     gScoreloopInitialized = true;
  78.  
  79.     InitializeScoreloopControllers();  
  80. }
  81.  
  82. bool Application::applicationDidFinishLaunching()
  83. {
  84.     // ... usual steps
  85.    
  86.     Scoreloop::Client::Initialize(TOSAccepted);
  87.  
  88.     pDirector->runWithScene(GameScene::node());
  89.  
  90.     return true;
  91. }
  92.  
  93. // .. other methods not contained any upSL related code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement