// UGCHandle_t m_hUGC

        internal static LeaderboardEntry From(LeaderboardEntry_t e, int[] detailsBuffer)
        {
            var r = new LeaderboardEntry
            {
                User       = new Friend(e.SteamIDUser),
                GlobalRank = e.GlobalRank,
                Score      = e.Score,
                Details    = null
            };

            if (e.CDetails > 0)
            {
                r.Details = detailsBuffer.Take(e.CDetails).ToArray();
            }

            return(r);
        }
Exemplo n.º 2
0
        internal 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 (int 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);
        }