diff --git a/Facepunch.Steamworks/Generated/Interfaces/ISteamUserStats.cs b/Facepunch.Steamworks/Generated/Interfaces/ISteamUserStats.cs new file mode 100644 index 0000000..26bc64b --- /dev/null +++ b/Facepunch.Steamworks/Generated/Interfaces/ISteamUserStats.cs @@ -0,0 +1,586 @@ +using System; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using Steamworks.Data; + + +namespace Steamworks +{ + internal class ISteamUserStats : SteamInterface + { + public ISteamUserStats( bool server = false ) : base( server ) + { + } + + public override string InterfaceName => "STEAMUSERSTATS_INTERFACE_VERSION011"; + + public override void InitInternals() + { + RequestCurrentStatsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 0) ); + GetStatDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 8) ); + GetStat2DelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 16) ); + SetStatDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 24) ); + SetStat2DelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 32) ); + UpdateAvgRateStatDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 40) ); + GetAchievementDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 48) ); + SetAchievementDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 56) ); + ClearAchievementDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 64) ); + GetAchievementAndUnlockTimeDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 72) ); + StoreStatsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 80) ); + GetAchievementIconDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 88) ); + GetAchievementDisplayAttributeDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 96) ); + IndicateAchievementProgressDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 104) ); + GetNumAchievementsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 112) ); + GetAchievementNameDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 120) ); + RequestUserStatsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 128) ); + GetUserStatDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 136) ); + GetUserStat2DelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 144) ); + GetUserAchievementDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 152) ); + GetUserAchievementAndUnlockTimeDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 160) ); + ResetAllStatsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 168) ); + FindOrCreateLeaderboardDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 176) ); + FindLeaderboardDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 184) ); + GetLeaderboardNameDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 192) ); + GetLeaderboardEntryCountDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 200) ); + GetLeaderboardSortMethodDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 208) ); + GetLeaderboardDisplayTypeDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 216) ); + DownloadLeaderboardEntriesDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 224) ); + GetDownloadedLeaderboardEntryDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 232) ); + UploadLeaderboardScoreDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 240) ); + AttachLeaderboardUGCDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 248) ); + GetNumberOfCurrentPlayersDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 256) ); + RequestGlobalAchievementPercentagesDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 264) ); + GetMostAchievedAchievementInfoDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 272) ); + GetNextMostAchievedAchievementInfoDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 280) ); + GetAchievementAchievedPercentDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 288) ); + RequestGlobalStatsDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 296) ); + GetGlobalStatDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 304) ); + GetGlobalStat2DelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 312) ); + GetGlobalStatHistoryDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 320) ); + GetGlobalStatHistory2DelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 328) ); + GetTrophySpaceRequiredBeforeInstallDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 336) ); + SetUserStatsDataDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 344) ); + GetUserStatsDataDelegatePointer = Marshal.GetDelegateForFunctionPointer( Marshal.ReadIntPtr( VTable, 352) ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool RequestCurrentStatsDelegate( IntPtr self ); + private RequestCurrentStatsDelegate RequestCurrentStatsDelegatePointer; + + #endregion + internal bool RequestCurrentStats() + { + return RequestCurrentStatsDelegatePointer( Self ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetStatDelegate( IntPtr self, string pchName, ref int pData ); + private GetStatDelegate GetStatDelegatePointer; + + #endregion + internal bool GetStat( string pchName, ref int pData ) + { + return GetStatDelegatePointer( Self, pchName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetStat2Delegate( IntPtr self, string pchName, ref float pData ); + private GetStat2Delegate GetStat2DelegatePointer; + + #endregion + internal bool GetStat2( string pchName, ref float pData ) + { + return GetStat2DelegatePointer( Self, pchName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool SetStatDelegate( IntPtr self, string pchName, int nData ); + private SetStatDelegate SetStatDelegatePointer; + + #endregion + internal bool SetStat( string pchName, int nData ) + { + return SetStatDelegatePointer( Self, pchName, nData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool SetStat2Delegate( IntPtr self, string pchName, float fData ); + private SetStat2Delegate SetStat2DelegatePointer; + + #endregion + internal bool SetStat2( string pchName, float fData ) + { + return SetStat2DelegatePointer( Self, pchName, fData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool UpdateAvgRateStatDelegate( IntPtr self, string pchName, float flCountThisSession, double dSessionLength ); + private UpdateAvgRateStatDelegate UpdateAvgRateStatDelegatePointer; + + #endregion + internal bool UpdateAvgRateStat( string pchName, float flCountThisSession, double dSessionLength ) + { + return UpdateAvgRateStatDelegatePointer( Self, pchName, flCountThisSession, dSessionLength ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetAchievementDelegate( IntPtr self, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ); + private GetAchievementDelegate GetAchievementDelegatePointer; + + #endregion + internal bool GetAchievement( string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ) + { + return GetAchievementDelegatePointer( Self, pchName, ref pbAchieved ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool SetAchievementDelegate( IntPtr self, string pchName ); + private SetAchievementDelegate SetAchievementDelegatePointer; + + #endregion + internal bool SetAchievement( string pchName ) + { + return SetAchievementDelegatePointer( Self, pchName ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool ClearAchievementDelegate( IntPtr self, string pchName ); + private ClearAchievementDelegate ClearAchievementDelegatePointer; + + #endregion + internal bool ClearAchievement( string pchName ) + { + return ClearAchievementDelegatePointer( Self, pchName ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetAchievementAndUnlockTimeDelegate( IntPtr self, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved, ref uint punUnlockTime ); + private GetAchievementAndUnlockTimeDelegate GetAchievementAndUnlockTimeDelegatePointer; + + #endregion + internal bool GetAchievementAndUnlockTime( string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved, ref uint punUnlockTime ) + { + return GetAchievementAndUnlockTimeDelegatePointer( Self, pchName, ref pbAchieved, ref punUnlockTime ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool StoreStatsDelegate( IntPtr self ); + private StoreStatsDelegate StoreStatsDelegatePointer; + + #endregion + internal bool StoreStats() + { + return StoreStatsDelegatePointer( Self ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetAchievementIconDelegate( IntPtr self, string pchName ); + private GetAchievementIconDelegate GetAchievementIconDelegatePointer; + + #endregion + internal int GetAchievementIcon( string pchName ) + { + return GetAchievementIconDelegatePointer( Self, pchName ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate IntPtr GetAchievementDisplayAttributeDelegate( IntPtr self, string pchName, string pchKey ); + private GetAchievementDisplayAttributeDelegate GetAchievementDisplayAttributeDelegatePointer; + + #endregion + internal string GetAchievementDisplayAttribute( string pchName, string pchKey ) + { + return GetString( GetAchievementDisplayAttributeDelegatePointer( Self, pchName, pchKey ) ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool IndicateAchievementProgressDelegate( IntPtr self, string pchName, uint nCurProgress, uint nMaxProgress ); + private IndicateAchievementProgressDelegate IndicateAchievementProgressDelegatePointer; + + #endregion + internal bool IndicateAchievementProgress( string pchName, uint nCurProgress, uint nMaxProgress ) + { + return IndicateAchievementProgressDelegatePointer( Self, pchName, nCurProgress, nMaxProgress ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate uint GetNumAchievementsDelegate( IntPtr self ); + private GetNumAchievementsDelegate GetNumAchievementsDelegatePointer; + + #endregion + internal uint GetNumAchievements() + { + return GetNumAchievementsDelegatePointer( Self ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate IntPtr GetAchievementNameDelegate( IntPtr self, uint iAchievement ); + private GetAchievementNameDelegate GetAchievementNameDelegatePointer; + + #endregion + internal string GetAchievementName( uint iAchievement ) + { + return GetString( GetAchievementNameDelegatePointer( Self, iAchievement ) ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t RequestUserStatsDelegate( IntPtr self, SteamId steamIDUser ); + private RequestUserStatsDelegate RequestUserStatsDelegatePointer; + + #endregion + internal async Task RequestUserStats( SteamId steamIDUser ) + { + return await (new Result( RequestUserStatsDelegatePointer( Self, steamIDUser ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetUserStatDelegate( IntPtr self, SteamId steamIDUser, string pchName, ref int pData ); + private GetUserStatDelegate GetUserStatDelegatePointer; + + #endregion + internal bool GetUserStat( SteamId steamIDUser, string pchName, ref int pData ) + { + return GetUserStatDelegatePointer( Self, steamIDUser, pchName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetUserStat2Delegate( IntPtr self, SteamId steamIDUser, string pchName, ref float pData ); + private GetUserStat2Delegate GetUserStat2DelegatePointer; + + #endregion + internal bool GetUserStat2( SteamId steamIDUser, string pchName, ref float pData ) + { + return GetUserStat2DelegatePointer( Self, steamIDUser, pchName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetUserAchievementDelegate( IntPtr self, SteamId steamIDUser, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ); + private GetUserAchievementDelegate GetUserAchievementDelegatePointer; + + #endregion + internal bool GetUserAchievement( SteamId steamIDUser, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ) + { + return GetUserAchievementDelegatePointer( Self, steamIDUser, pchName, ref pbAchieved ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetUserAchievementAndUnlockTimeDelegate( IntPtr self, SteamId steamIDUser, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved, ref uint punUnlockTime ); + private GetUserAchievementAndUnlockTimeDelegate GetUserAchievementAndUnlockTimeDelegatePointer; + + #endregion + internal bool GetUserAchievementAndUnlockTime( SteamId steamIDUser, string pchName, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved, ref uint punUnlockTime ) + { + return GetUserAchievementAndUnlockTimeDelegatePointer( Self, steamIDUser, pchName, ref pbAchieved, ref punUnlockTime ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool ResetAllStatsDelegate( IntPtr self, [MarshalAs( UnmanagedType.U1 )] bool bAchievementsToo ); + private ResetAllStatsDelegate ResetAllStatsDelegatePointer; + + #endregion + internal bool ResetAllStats( [MarshalAs( UnmanagedType.U1 )] bool bAchievementsToo ) + { + return ResetAllStatsDelegatePointer( Self, bAchievementsToo ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t FindOrCreateLeaderboardDelegate( IntPtr self, string pchLeaderboardName, LeaderboardSortMethod eLeaderboardSortMethod, LeaderboardDisplayType eLeaderboardDisplayType ); + private FindOrCreateLeaderboardDelegate FindOrCreateLeaderboardDelegatePointer; + + #endregion + internal async Task FindOrCreateLeaderboard( string pchLeaderboardName, LeaderboardSortMethod eLeaderboardSortMethod, LeaderboardDisplayType eLeaderboardDisplayType ) + { + return await (new Result( FindOrCreateLeaderboardDelegatePointer( Self, pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t FindLeaderboardDelegate( IntPtr self, string pchLeaderboardName ); + private FindLeaderboardDelegate FindLeaderboardDelegatePointer; + + #endregion + internal async Task FindLeaderboard( string pchLeaderboardName ) + { + return await (new Result( FindLeaderboardDelegatePointer( Self, pchLeaderboardName ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate IntPtr GetLeaderboardNameDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard ); + private GetLeaderboardNameDelegate GetLeaderboardNameDelegatePointer; + + #endregion + internal string GetLeaderboardName( SteamLeaderboard_t hSteamLeaderboard ) + { + return GetString( GetLeaderboardNameDelegatePointer( Self, hSteamLeaderboard ) ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetLeaderboardEntryCountDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard ); + private GetLeaderboardEntryCountDelegate GetLeaderboardEntryCountDelegatePointer; + + #endregion + internal int GetLeaderboardEntryCount( SteamLeaderboard_t hSteamLeaderboard ) + { + return GetLeaderboardEntryCountDelegatePointer( Self, hSteamLeaderboard ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate LeaderboardSortMethod GetLeaderboardSortMethodDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard ); + private GetLeaderboardSortMethodDelegate GetLeaderboardSortMethodDelegatePointer; + + #endregion + internal LeaderboardSortMethod GetLeaderboardSortMethod( SteamLeaderboard_t hSteamLeaderboard ) + { + return GetLeaderboardSortMethodDelegatePointer( Self, hSteamLeaderboard ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate LeaderboardDisplayType GetLeaderboardDisplayTypeDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard ); + private GetLeaderboardDisplayTypeDelegate GetLeaderboardDisplayTypeDelegatePointer; + + #endregion + internal LeaderboardDisplayType GetLeaderboardDisplayType( SteamLeaderboard_t hSteamLeaderboard ) + { + return GetLeaderboardDisplayTypeDelegatePointer( Self, hSteamLeaderboard ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t DownloadLeaderboardEntriesDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard, LeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ); + private DownloadLeaderboardEntriesDelegate DownloadLeaderboardEntriesDelegatePointer; + + #endregion + internal async Task DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, LeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) + { + return await (new Result( DownloadLeaderboardEntriesDelegatePointer( Self, hSteamLeaderboard, eLeaderboardDataRequest, nRangeStart, nRangeEnd ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetDownloadedLeaderboardEntryDelegate( IntPtr self, SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, ref int pDetails, int cDetailsMax ); + private GetDownloadedLeaderboardEntryDelegate GetDownloadedLeaderboardEntryDelegatePointer; + + #endregion + internal bool GetDownloadedLeaderboardEntry( SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, ref LeaderboardEntry_t pLeaderboardEntry, ref int pDetails, int cDetailsMax ) + { + return GetDownloadedLeaderboardEntryDelegatePointer( Self, hSteamLeaderboardEntries, index, ref pLeaderboardEntry, ref pDetails, cDetailsMax ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t UploadLeaderboardScoreDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard, LeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int nScore, [In,Out] int[] pScoreDetails, int cScoreDetailsCount ); + private UploadLeaderboardScoreDelegate UploadLeaderboardScoreDelegatePointer; + + #endregion + internal async Task UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, LeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int nScore, [In,Out] int[] pScoreDetails, int cScoreDetailsCount ) + { + return await (new Result( UploadLeaderboardScoreDelegatePointer( Self, hSteamLeaderboard, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t AttachLeaderboardUGCDelegate( IntPtr self, SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ); + private AttachLeaderboardUGCDelegate AttachLeaderboardUGCDelegatePointer; + + #endregion + internal async Task AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC ) + { + return await (new Result( AttachLeaderboardUGCDelegatePointer( Self, hSteamLeaderboard, hUGC ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t GetNumberOfCurrentPlayersDelegate( IntPtr self ); + private GetNumberOfCurrentPlayersDelegate GetNumberOfCurrentPlayersDelegatePointer; + + #endregion + internal async Task GetNumberOfCurrentPlayers() + { + return await (new Result( GetNumberOfCurrentPlayersDelegatePointer( Self ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t RequestGlobalAchievementPercentagesDelegate( IntPtr self ); + private RequestGlobalAchievementPercentagesDelegate RequestGlobalAchievementPercentagesDelegatePointer; + + #endregion + internal async Task RequestGlobalAchievementPercentages() + { + return await (new Result( RequestGlobalAchievementPercentagesDelegatePointer( Self ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetMostAchievedAchievementInfoDelegate( IntPtr self, StringBuilder pchName, uint unNameBufLen, ref float pflPercent, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ); + private GetMostAchievedAchievementInfoDelegate GetMostAchievedAchievementInfoDelegatePointer; + + #endregion + internal int GetMostAchievedAchievementInfo( StringBuilder pchName, uint unNameBufLen, ref float pflPercent, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ) + { + return GetMostAchievedAchievementInfoDelegatePointer( Self, pchName, unNameBufLen, ref pflPercent, ref pbAchieved ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetNextMostAchievedAchievementInfoDelegate( IntPtr self, int iIteratorPrevious, StringBuilder pchName, uint unNameBufLen, ref float pflPercent, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ); + private GetNextMostAchievedAchievementInfoDelegate GetNextMostAchievedAchievementInfoDelegatePointer; + + #endregion + internal int GetNextMostAchievedAchievementInfo( int iIteratorPrevious, StringBuilder pchName, uint unNameBufLen, ref float pflPercent, [MarshalAs( UnmanagedType.U1 )] ref bool pbAchieved ) + { + return GetNextMostAchievedAchievementInfoDelegatePointer( Self, iIteratorPrevious, pchName, unNameBufLen, ref pflPercent, ref pbAchieved ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetAchievementAchievedPercentDelegate( IntPtr self, string pchName, ref float pflPercent ); + private GetAchievementAchievedPercentDelegate GetAchievementAchievedPercentDelegatePointer; + + #endregion + internal bool GetAchievementAchievedPercent( string pchName, ref float pflPercent ) + { + return GetAchievementAchievedPercentDelegatePointer( Self, pchName, ref pflPercent ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate SteamAPICall_t RequestGlobalStatsDelegate( IntPtr self, int nHistoryDays ); + private RequestGlobalStatsDelegate RequestGlobalStatsDelegatePointer; + + #endregion + internal async Task RequestGlobalStats( int nHistoryDays ) + { + return await (new Result( RequestGlobalStatsDelegatePointer( Self, nHistoryDays ) )).GetResult(); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetGlobalStatDelegate( IntPtr self, string pchStatName, ref long pData ); + private GetGlobalStatDelegate GetGlobalStatDelegatePointer; + + #endregion + internal bool GetGlobalStat( string pchStatName, ref long pData ) + { + return GetGlobalStatDelegatePointer( Self, pchStatName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetGlobalStat2Delegate( IntPtr self, string pchStatName, ref double pData ); + private GetGlobalStat2Delegate GetGlobalStat2DelegatePointer; + + #endregion + internal bool GetGlobalStat2( string pchStatName, ref double pData ) + { + return GetGlobalStat2DelegatePointer( Self, pchStatName, ref pData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetGlobalStatHistoryDelegate( IntPtr self, string pchStatName, ref long pData, uint cubData ); + private GetGlobalStatHistoryDelegate GetGlobalStatHistoryDelegatePointer; + + #endregion + internal int GetGlobalStatHistory( string pchStatName, ref long pData, uint cubData ) + { + return GetGlobalStatHistoryDelegatePointer( Self, pchStatName, ref pData, cubData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate int GetGlobalStatHistory2Delegate( IntPtr self, string pchStatName, ref double pData, uint cubData ); + private GetGlobalStatHistory2Delegate GetGlobalStatHistory2DelegatePointer; + + #endregion + internal int GetGlobalStatHistory2( string pchStatName, ref double pData, uint cubData ) + { + return GetGlobalStatHistory2DelegatePointer( Self, pchStatName, ref pData, cubData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + private delegate ulong GetTrophySpaceRequiredBeforeInstallDelegate( IntPtr self ); + private GetTrophySpaceRequiredBeforeInstallDelegate GetTrophySpaceRequiredBeforeInstallDelegatePointer; + + #endregion + internal ulong GetTrophySpaceRequiredBeforeInstall() + { + return GetTrophySpaceRequiredBeforeInstallDelegatePointer( Self ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool SetUserStatsDataDelegate( IntPtr self, IntPtr pvData, uint cubData ); + private SetUserStatsDataDelegate SetUserStatsDataDelegatePointer; + + #endregion + internal bool SetUserStatsData( IntPtr pvData, uint cubData ) + { + return SetUserStatsDataDelegatePointer( Self, pvData, cubData ); + } + + #region FunctionMeta + [UnmanagedFunctionPointer( CallingConvention.ThisCall )] + [return: MarshalAs( UnmanagedType.I1 )] + private delegate bool GetUserStatsDataDelegate( IntPtr self, IntPtr pvData, uint cubData, ref uint pcubWritten ); + private GetUserStatsDataDelegate GetUserStatsDataDelegatePointer; + + #endregion + internal bool GetUserStatsData( IntPtr pvData, uint cubData, ref uint pcubWritten ) + { + return GetUserStatsDataDelegatePointer( Self, pvData, cubData, ref pcubWritten ); + } + + } +} diff --git a/Generator/CodeWriter/CodeWriter.cs b/Generator/CodeWriter/CodeWriter.cs index f81602b..ef982ad 100644 --- a/Generator/CodeWriter/CodeWriter.cs +++ b/Generator/CodeWriter/CodeWriter.cs @@ -67,6 +67,7 @@ namespace Generator GenerateVTableClass( "ISteamGameServer", $"{folder}../Generated/Interfaces/ISteamGameServer.cs" ); GenerateVTableClass( "ISteamGameServer", $"{folder}../Generated/Interfaces/ISteamGameServer.cs" ); GenerateVTableClass( "ISteamScreenshots", $"{folder}../Generated/Interfaces/ISteamScreenshots.cs" ); + GenerateVTableClass( "ISteamUserStats", $"{folder}../Generated/Interfaces/ISteamUserStats.cs" ); } } diff --git a/Generator/CodeWriter/Types/BaseType.cs b/Generator/CodeWriter/Types/BaseType.cs index a85b4bb..29bd929 100644 --- a/Generator/CodeWriter/Types/BaseType.cs +++ b/Generator/CodeWriter/Types/BaseType.cs @@ -23,7 +23,7 @@ internal class BaseType if ( type.Replace( " ", "" ) == "constchar*" ) return new ConstCharType { NativeType = type, VarName = varname }; if ( type == "char *" ) return new StringBuilderType { NativeType = type, VarName = varname }; - var basicType = type.Trim( ' ', '*' ); + var basicType = type.Replace( "const ", "" ).Trim( ' ', '*' ); if ( basicType == "void" ) return new PointerType { NativeType = type, VarName = varname }; if ( basicType.StartsWith( "ISteam" ) ) return new PointerType { NativeType = type, VarName = varname }; @@ -34,6 +34,7 @@ internal class BaseType if ( basicType == "uint16" ) return new UInt16Type { NativeType = type, VarName = varname }; if ( basicType == "SteamId" ) return new CSteamIdType { NativeType = type, VarName = varname }; if ( basicType == "uint64" ) return new ULongType { NativeType = type, VarName = varname }; + if ( basicType == "int64" ) return new LongType { NativeType = type, VarName = varname }; if ( basicType == "bool" ) return new BoolType { NativeType = type, VarName = varname }; if ( basicType.EndsWith( "_t" ) ) return new StructType { NativeType = type, VarName = varname, StructName = basicType }; @@ -59,6 +60,7 @@ internal class BaseType if ( VarName == "pubRGB" ) return false; if ( VarName == "psteamIDClans" ) return true; + if ( VarName == "pScoreDetails" ) return true; if ( NativeType.EndsWith( "**" ) ) return true; if ( NativeType.EndsWith( "*" ) ) @@ -143,13 +145,16 @@ internal class PointerType : BaseType public override string Ref => ""; } - - internal class ULongType : BaseType { public override string TypeName => $"ulong"; } +internal class LongType : BaseType +{ + public override string TypeName => $"long"; +} + internal class ConstCharType : BaseType { public override string TypeName => $"string";