예제 #1
0
        public async Task <LeaderboardEntry[]> LeaderboardResultToEntries(LeaderboardScoresDownloaded_t r)
        {
            if (r.CEntryCount <= 0)
            {
                return(null);
            }

            var output = new LeaderboardEntry[r.CEntryCount];
            var e      = default(LeaderboardEntry_t);

            for (var i = 0; i < output.Length; i++)
            {
                if (SteamUserStats.Internal.GetDownloadedLeaderboardEntry(r.SteamLeaderboardEntries, i, ref e, detailsBuffer, detailsBuffer.Length))
                {
                    output[i] = LeaderboardEntry.From(e, detailsBuffer);
                }
            }

            await WaitForUserNames(output);

            return(output);
        }
예제 #2
0
        internal async Task <LeaderboardEntry[]> LeaderboardResultToEntries(LeaderboardScoresDownloaded_t r)
        {
            LeaderboardEntry[] leaderboardEntryArray;
            if (r.CEntryCount > 0)
            {
                LeaderboardEntry[] leaderboardEntryArray1 = new LeaderboardEntry[r.CEntryCount];
                LeaderboardEntry_t leaderboardEntryT      = new LeaderboardEntry_t();
                for (int i = 0; i < (int)leaderboardEntryArray1.Length; i++)
                {
                    if (SteamUserStats.Internal.GetDownloadedLeaderboardEntry(r.SteamLeaderboardEntries, i, ref leaderboardEntryT, Leaderboard.detailsBuffer, (int)Leaderboard.detailsBuffer.Length))
                    {
                        leaderboardEntryArray1[i] = LeaderboardEntry.From(leaderboardEntryT, Leaderboard.detailsBuffer);
                    }
                }
                await this.WaitForUserNames(leaderboardEntryArray1);

                leaderboardEntryArray = leaderboardEntryArray1;
            }
            else
            {
                leaderboardEntryArray = null;
            }
            return(leaderboardEntryArray);
        }