cstrike15_src/public/gcsdk/gcleaderboardapi.h
2025-06-04 03:22:50 +02:00

57 lines
1.9 KiB
C++

//========= Copyright (c), Valve LLC, All rights reserved. ============
//
// Purpose: API to interact with Steam leaderboards on the GC.
//
// $NoKeywords: $
//=============================================================================
#ifndef GCLEADERBOARDAPI_H
#define GCLEADERBOARDAPI_H
namespace GCSDK
{
class CGCBase;
/**
* Yielding call that attempts to find a leaderboard by name, creating one if necessary.
* @param pName
* @param eLeaderboardSortMethod
* @param eLeaderboardDisplayType
* @param bCreateIfNotFound
* @return 0 if the leaderboard was not found, > 0 otherwise
*/
uint32 Leaderboard_YieldingFind( const char *pName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType, bool bCreateIfNotFound );
/**
* Yielding call that attempts to set the score for the steamID in the leaderboard.
* @param unLeaderboardID
* @param steamID
* @param eLeaderboardUploadScoreMethod
* @param score
* @param pDetails
* @param unDetailsLength
* @return true if successful, false otherwise.
*/
bool Leaderboard_YieldingSetScore( uint32 unLeaderboardID, const CSteamID &steamID, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int score, uint8* pDetails = 0, uint32 unDetailsLength = 0 );
/**
* @param pKVOutput
* @return true if successful, false otherwise.
*/
bool Leaderboard_YieldingGetLeaderboardsForGame( KeyValuesAD* pKVOutput );
/**
* Yielding call that attempts to get leaderboard entries by leaderboard name
* @param unRangeStart
* @param unRangeEnd
* @param pSteamID
* @param unLeaderboardID
* @param eDataRequestType
* @param pKVOutput
* @return number of entries found from specified range.
*/
bool Leaderbaord_YieldingGetLeaderboardEntries( int32 nRangeStart, int32 nRangeEnd, CSteamID* pSteamID, int32 unLeaderboardID, ELeaderboardDataRequest eDataRequestType, KeyValuesAD* pKVOutput );
}; // namespace GCSDK
#endif // GCLEADERBOARDAPI_H