public void UpdateLeaderboard() { //Check if leaderboard exists. if (m_LocalData != null) { //Check if player has existing score. int pIndex = m_LocalData.FindUser(m_LocalUser); if (pIndex > -1) { //Check if Player has new highscore. if (m_LocalData.GetUser(pIndex).m_Score < m_LocalUser.m_Score) { m_LocalData.GetUser(pIndex).m_Score = m_PInfo.m_UserData.m_Score; //Sort Leaderboard to account for changes. m_LocalData.SortLeaderboard(); } //Update local stats. m_LocalUser = m_LocalData.GetUser(m_LocalUser.m_UserName); } else { //User doesn't exist, create new user. m_LocalData.AddUser(m_LocalUser); m_LocalData.SortLeaderboard(); m_LocalUser = m_LocalData.GetUser(m_LocalUser.m_UserName); } //Save. //SaveGameSystem.DeleteSaveGame("LeaderboardData"); SaveGameSystem.SaveGame(m_LocalData, "LeaderboardData"); } else { //create new save data; m_LocalUser.m_Rank = 1; //Add player data to the leaderboard. LeaderboardData newLeaderboard = new LeaderboardData(); newLeaderboard.AddUser(m_LocalUser); //Save Leaderboard SaveGameSystem.SaveGame(newLeaderboard, "LeaderboardData"); } }