Struct callback cleanup

This commit is contained in:
Garry Newman 2019-04-13 22:56:06 +01:00
parent 173a132d6e
commit 6b26323bf8
21 changed files with 1963 additions and 28377 deletions

View File

@ -6,6 +6,6 @@ public interface ISteamCallback
{
int GetCallbackId();
int GetStructSize();
ISteamCallback Fill( IntPtr ptr, int size );
ISteamCallback Fill( IntPtr ptr );
}
}

View File

@ -235,7 +235,7 @@ public static async Task<FileDetails> GetFileDetails( string filename )
}
/// <summary>
/// Get command line if game was launched via Steam URL, e.g. steam://run/<appid>//<command line>/.
/// Get command line if game was launched via Steam URL, e.g. steam://run/appid//command line/.
/// This method of passing a connect string (used when joining via rich presence, accepting an
/// invite, etc) is preferable to passing the connect string on the operating system command
/// line, which is a security risk. In order for rich presence joins to go through this

View File

@ -47,7 +47,7 @@ internal static bool IsCallComplete( SteamAPICall_t call, out bool failed )
if ( failed )
return null;
t = (T)t.Fill( ptr, size );
t = (T)t.Fill( ptr );
return t;
}

View File

@ -119,7 +119,138 @@ private void UnregisterCallback()
public virtual bool IsValid { get { return true; } }
}
internal abstract class CallResult : CallbackHandle
internal class CallbackHandle<T> : CallbackHandle where T: struct, Steamworks.ISteamCallback
{
T template;
internal CallbackHandle( Facepunch.Steamworks.BaseSteamworks steamworks ) : base( steamworks )
{
template = new T();
//
// Create the functions we need for the vtable
//
if ( Facepunch.Steamworks.Config.UseThisCall )
{
//
// Create the VTable by manually allocating the memory and copying across
//
if ( Platform.IsWindows )
{
vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTableWinThis ) ) );
var vTable = new Callback.VTableWinThis
{
ResultA = OnResultThis,
ResultB = OnResultWithInfoThis,
GetSize = OnGetSizeThis,
};
FuncA = GCHandle.Alloc( vTable.ResultA );
FuncB = GCHandle.Alloc( vTable.ResultB );
FuncC = GCHandle.Alloc( vTable.GetSize );
Marshal.StructureToPtr( vTable, vTablePtr, false );
}
else
{
vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTableThis ) ) );
var vTable = new Callback.VTableThis
{
ResultA = OnResultThis,
ResultB = OnResultWithInfoThis,
GetSize = OnGetSizeThis,
};
FuncA = GCHandle.Alloc( vTable.ResultA );
FuncB = GCHandle.Alloc( vTable.ResultB );
FuncC = GCHandle.Alloc( vTable.GetSize );
Marshal.StructureToPtr( vTable, vTablePtr, false );
}
}
else
{
//
// Create the VTable by manually allocating the memory and copying across
//
if ( Platform.IsWindows )
{
vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTableWin ) ) );
var vTable = new Callback.VTableWin
{
ResultA = OnResult,
ResultB = OnResultWithInfo,
GetSize = OnGetSize,
};
FuncA = GCHandle.Alloc( vTable.ResultA );
FuncB = GCHandle.Alloc( vTable.ResultB );
FuncC = GCHandle.Alloc( vTable.GetSize );
Marshal.StructureToPtr( vTable, vTablePtr, false );
}
else
{
vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTable ) ) );
var vTable = new Callback.VTable
{
ResultA = OnResult,
ResultB = OnResultWithInfo,
GetSize = OnGetSize,
};
FuncA = GCHandle.Alloc( vTable.ResultA );
FuncB = GCHandle.Alloc( vTable.ResultB );
FuncC = GCHandle.Alloc( vTable.GetSize );
Marshal.StructureToPtr( vTable, vTablePtr, false );
}
}
//
// Create the callback object
//
var cb = new Callback();
cb.vTablePtr = vTablePtr;
cb.CallbackFlags = steamworks.IsGameServer ? (byte)SteamNative.Callback.Flags.GameServer : (byte)0;
cb.CallbackId = template.GetCallbackId();
//
// Pin the callback, so it doesn't get garbage collected and we can pass the pointer to native
//
PinnedCallback = GCHandle.Alloc( cb, GCHandleType.Pinned );
//
// Register the callback with Steam
//
steamworks.native.api.SteamAPI_RegisterCallback( PinnedCallback.AddrOfPinnedObject(), cb.CallbackId );
steamworks.RegisterCallbackHandle( this );
}
[MonoPInvokeCallback]
internal void OnResultThis( IntPtr self, IntPtr param ) { OnResult( param ); }
[MonoPInvokeCallback]
internal void OnResultWithInfoThis( IntPtr self, IntPtr param, bool failure, SteamNative.SteamAPICall_t call ) { OnResultWithInfo( param, failure, call ); }
[MonoPInvokeCallback]
internal int OnGetSizeThis( IntPtr self ) { return OnGetSize(); }
[MonoPInvokeCallback]
internal int OnGetSize() { return template.GetStructSize(); }
[MonoPInvokeCallback]
internal void OnResult( IntPtr param )
{
OnResultWithInfo( param, false, 0 );
}
[MonoPInvokeCallback]
internal void OnResultWithInfo( IntPtr param, bool failure, SteamNative.SteamAPICall_t call )
{
if ( failure ) return;
var value = (T) template.Fill( param );
if ( Facepunch.Steamworks.Client.Instance != null )
Facepunch.Steamworks.Client.Instance.OnCallback<T>( value );
if ( Facepunch.Steamworks.Server.Instance != null )
Facepunch.Steamworks.Server.Instance.OnCallback<T>( value );
}
}
internal abstract class CallResult : CallbackHandle
{
internal SteamAPICall_t Call;
public override bool IsValid { get { return Call > 0; } }
@ -146,31 +277,27 @@ internal void Try()
}
internal class CallResult<T> : CallResult
internal class CallResult<T> : CallResult where T : struct, Steamworks.ISteamCallback
{
T template;
private static byte[] resultBuffer = new byte[1024 * 16];
internal delegate T ConvertFromPointer( IntPtr p );
Action<T, bool> CallbackFunction;
ConvertFromPointer ConvertFromPointerFunction;
internal int ResultSize = -1;
internal int CallbackId = 0;
internal CallResult( Facepunch.Steamworks.BaseSteamworks steamworks, SteamAPICall_t call, Action<T, bool> callbackFunction, ConvertFromPointer fromPointer, int resultSize, int callbackId ) : base( steamworks, call )
internal CallResult( Facepunch.Steamworks.BaseSteamworks steamworks, SteamAPICall_t call, Action<T, bool> callbackFunction ) : base( steamworks, call )
{
ResultSize = resultSize;
CallbackId = callbackId;
CallbackFunction = callbackFunction;
ConvertFromPointerFunction = fromPointer;
template = new T();
CallbackFunction = callbackFunction;
Steamworks.RegisterCallResult( this );
}
public override string ToString()
{
return $"CallResult( {typeof(T).Name}, {CallbackId}, {ResultSize}b )";
return $"CallResult( {typeof(T).Name}, {template.GetCallbackId()}, {template.GetStructSize()}b )";
}
unsafe internal override void RunCallback()
@ -179,13 +306,13 @@ unsafe internal override void RunCallback()
fixed ( byte* ptr = resultBuffer )
{
if ( !Steamworks.native.utils.GetAPICallResult( Call, (IntPtr)ptr, resultBuffer.Length, CallbackId, ref failed ) || failed )
if ( !Steamworks.native.utils.GetAPICallResult( Call, (IntPtr)ptr, resultBuffer.Length, template.GetCallbackId(), ref failed ) || failed )
{
CallbackFunction( default(T), true );
return;
}
var val = ConvertFromPointerFunction( (IntPtr)ptr );
var val = (T) template.Fill( (IntPtr)ptr );
CallbackFunction( val, false );
}
}

View File

@ -182,7 +182,7 @@ public uint GetEarliestPurchaseUnixTime( AppId_t nAppID /*AppId_t*/ )
}
// SteamAPICall_t
public CallbackHandle GetFileDetails( string pszFileName /*const char **/, Action<FileDetailsResult_t, bool> CallbackFunction = null /*Action<FileDetailsResult_t, bool>*/ )
public CallResult<FileDetailsResult_t> GetFileDetails( string pszFileName /*const char **/, Action<FileDetailsResult_t, bool> CallbackFunction = null /*Action<FileDetailsResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamApps_GetFileDetails( pszFileName );
@ -190,7 +190,7 @@ public CallbackHandle GetFileDetails( string pszFileName /*const char **/, Actio
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return FileDetailsResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<FileDetailsResult_t>( steamworks, callback, CallbackFunction );
}
// uint

View File

@ -90,7 +90,7 @@ public SteamAPICall_t DownloadClanActivityCounts( IntPtr psteamIDClans /*class C
}
// SteamAPICall_t
public CallbackHandle EnumerateFollowingList( uint unStartIndex /*uint32*/, Action<FriendsEnumerateFollowingList_t, bool> CallbackFunction = null /*Action<FriendsEnumerateFollowingList_t, bool>*/ )
public CallResult<FriendsEnumerateFollowingList_t> EnumerateFollowingList( uint unStartIndex /*uint32*/, Action<FriendsEnumerateFollowingList_t, bool> CallbackFunction = null /*Action<FriendsEnumerateFollowingList_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_EnumerateFollowingList( unStartIndex );
@ -98,7 +98,7 @@ public CallbackHandle EnumerateFollowingList( uint unStartIndex /*uint32*/, Acti
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return FriendsEnumerateFollowingList_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<FriendsEnumerateFollowingList_t>( steamworks, callback, CallbackFunction );
}
// ulong
@ -186,7 +186,7 @@ public int GetCoplayFriendCount()
}
// SteamAPICall_t
public CallbackHandle GetFollowerCount( CSteamID steamID /*class CSteamID*/, Action<FriendsGetFollowerCount_t, bool> CallbackFunction = null /*Action<FriendsGetFollowerCount_t, bool>*/ )
public CallResult<FriendsGetFollowerCount_t> GetFollowerCount( CSteamID steamID /*class CSteamID*/, Action<FriendsGetFollowerCount_t, bool> CallbackFunction = null /*Action<FriendsGetFollowerCount_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_GetFollowerCount( steamID.Value );
@ -194,7 +194,7 @@ public CallbackHandle GetFollowerCount( CSteamID steamID /*class CSteamID*/, Act
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return FriendsGetFollowerCount_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<FriendsGetFollowerCount_t>( steamworks, callback, CallbackFunction );
}
// ulong
@ -429,7 +429,7 @@ public bool IsClanPublic( CSteamID steamIDClan /*class CSteamID*/ )
}
// SteamAPICall_t
public CallbackHandle IsFollowing( CSteamID steamID /*class CSteamID*/, Action<FriendsIsFollowing_t, bool> CallbackFunction = null /*Action<FriendsIsFollowing_t, bool>*/ )
public CallResult<FriendsIsFollowing_t> IsFollowing( CSteamID steamID /*class CSteamID*/, Action<FriendsIsFollowing_t, bool> CallbackFunction = null /*Action<FriendsIsFollowing_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_IsFollowing( steamID.Value );
@ -437,7 +437,7 @@ public CallbackHandle IsFollowing( CSteamID steamID /*class CSteamID*/, Action<F
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return FriendsIsFollowing_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<FriendsIsFollowing_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -447,7 +447,7 @@ public bool IsUserInSource( CSteamID steamIDUser /*class CSteamID*/, CSteamID st
}
// SteamAPICall_t
public CallbackHandle JoinClanChatRoom( CSteamID steamIDClan /*class CSteamID*/, Action<JoinClanChatRoomCompletionResult_t, bool> CallbackFunction = null /*Action<JoinClanChatRoomCompletionResult_t, bool>*/ )
public CallResult<JoinClanChatRoomCompletionResult_t> JoinClanChatRoom( CSteamID steamIDClan /*class CSteamID*/, Action<JoinClanChatRoomCompletionResult_t, bool> CallbackFunction = null /*Action<JoinClanChatRoomCompletionResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_JoinClanChatRoom( steamIDClan.Value );
@ -455,7 +455,7 @@ public CallbackHandle JoinClanChatRoom( CSteamID steamIDClan /*class CSteamID*/,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return JoinClanChatRoomCompletionResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<JoinClanChatRoomCompletionResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -477,7 +477,7 @@ public bool ReplyToFriendMessage( CSteamID steamIDFriend /*class CSteamID*/, str
}
// SteamAPICall_t
public CallbackHandle RequestClanOfficerList( CSteamID steamIDClan /*class CSteamID*/, Action<ClanOfficerListResponse_t, bool> CallbackFunction = null /*Action<ClanOfficerListResponse_t, bool>*/ )
public CallResult<ClanOfficerListResponse_t> RequestClanOfficerList( CSteamID steamIDClan /*class CSteamID*/, Action<ClanOfficerListResponse_t, bool> CallbackFunction = null /*Action<ClanOfficerListResponse_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_RequestClanOfficerList( steamIDClan.Value );
@ -485,7 +485,7 @@ public CallbackHandle RequestClanOfficerList( CSteamID steamIDClan /*class CStea
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return ClanOfficerListResponse_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<ClanOfficerListResponse_t>( steamworks, callback, CallbackFunction );
}
// void
@ -519,7 +519,7 @@ public bool SetListenForFriendsMessages( bool bInterceptEnabled /*bool*/ )
}
// SteamAPICall_t
public CallbackHandle SetPersonaName( string pchPersonaName /*const char **/, Action<SetPersonaNameResponse_t, bool> CallbackFunction = null /*Action<SetPersonaNameResponse_t, bool>*/ )
public CallResult<SetPersonaNameResponse_t> SetPersonaName( string pchPersonaName /*const char **/, Action<SetPersonaNameResponse_t, bool> CallbackFunction = null /*Action<SetPersonaNameResponse_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamFriends_SetPersonaName( pchPersonaName );
@ -527,7 +527,7 @@ public CallbackHandle SetPersonaName( string pchPersonaName /*const char **/, Ac
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SetPersonaNameResponse_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SetPersonaNameResponse_t>( steamworks, callback, CallbackFunction );
}
// void

View File

@ -42,7 +42,7 @@ public virtual void Dispose()
}
// SteamAPICall_t
public CallbackHandle AssociateWithClan( CSteamID steamIDClan /*class CSteamID*/, Action<AssociateWithClanResult_t, bool> CallbackFunction = null /*Action<AssociateWithClanResult_t, bool>*/ )
public CallResult<AssociateWithClanResult_t> AssociateWithClan( CSteamID steamIDClan /*class CSteamID*/, Action<AssociateWithClanResult_t, bool> CallbackFunction = null /*Action<AssociateWithClanResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamGameServer_AssociateWithClan( steamIDClan.Value );
@ -50,7 +50,7 @@ public CallbackHandle AssociateWithClan( CSteamID steamIDClan /*class CSteamID*/
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return AssociateWithClanResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<AssociateWithClanResult_t>( steamworks, callback, CallbackFunction );
}
// BeginAuthSessionResult
@ -90,7 +90,7 @@ public void ClearAllKeyValues()
}
// SteamAPICall_t
public CallbackHandle ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer /*class CSteamID*/, Action<ComputeNewPlayerCompatibilityResult_t, bool> CallbackFunction = null /*Action<ComputeNewPlayerCompatibilityResult_t, bool>*/ )
public CallResult<ComputeNewPlayerCompatibilityResult_t> ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer /*class CSteamID*/, Action<ComputeNewPlayerCompatibilityResult_t, bool> CallbackFunction = null /*Action<ComputeNewPlayerCompatibilityResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamGameServer_ComputeNewPlayerCompatibility( steamIDNewPlayer.Value );
@ -98,7 +98,7 @@ public CallbackHandle ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer /
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return ComputeNewPlayerCompatibilityResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<ComputeNewPlayerCompatibilityResult_t>( steamworks, callback, CallbackFunction );
}
// ulong
@ -150,7 +150,7 @@ public uint GetPublicIP()
}
// SteamAPICall_t
public CallbackHandle GetServerReputation( Action<GSReputation_t, bool> CallbackFunction = null /*Action<GSReputation_t, bool>*/ )
public CallResult<GSReputation_t> GetServerReputation( Action<GSReputation_t, bool> CallbackFunction = null /*Action<GSReputation_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamGameServer_GetServerReputation();
@ -158,7 +158,7 @@ public CallbackHandle GetServerReputation( Action<GSReputation_t, bool> Callback
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GSReputation_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GSReputation_t>( steamworks, callback, CallbackFunction );
}
// ulong

View File

@ -66,7 +66,7 @@ public bool GetUserStat0( CSteamID steamIDUser /*class CSteamID*/, string pchNam
}
// SteamAPICall_t
public CallbackHandle RequestUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<GSStatsReceived_t, bool> CallbackFunction = null /*Action<GSStatsReceived_t, bool>*/ )
public CallResult<GSStatsReceived_t> RequestUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<GSStatsReceived_t, bool> CallbackFunction = null /*Action<GSStatsReceived_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamGameServerStats_RequestUserStats( steamIDUser.Value );
@ -74,7 +74,7 @@ public CallbackHandle RequestUserStats( CSteamID steamIDUser /*class CSteamID*/,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GSStatsReceived_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GSStatsReceived_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -96,7 +96,7 @@ public bool SetUserStat0( CSteamID steamIDUser /*class CSteamID*/, string pchNam
}
// SteamAPICall_t
public CallbackHandle StoreUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<GSStatsStored_t, bool> CallbackFunction = null /*Action<GSStatsStored_t, bool>*/ )
public CallResult<GSStatsStored_t> StoreUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<GSStatsStored_t, bool> CallbackFunction = null /*Action<GSStatsStored_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamGameServerStats_StoreUserStats( steamIDUser.Value );
@ -104,7 +104,7 @@ public CallbackHandle StoreUserStats( CSteamID steamIDUser /*class CSteamID*/, A
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GSStatsStored_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GSStatsStored_t>( steamworks, callback, CallbackFunction );
}
// bool

View File

@ -60,7 +60,7 @@ public void CopyToClipboard( HHTMLBrowser unBrowserHandle /*HHTMLBrowser*/ )
}
// SteamAPICall_t
public CallbackHandle CreateBrowser( string pchUserAgent /*const char **/, string pchUserCSS /*const char **/, Action<HTML_BrowserReady_t, bool> CallbackFunction = null /*Action<HTML_BrowserReady_t, bool>*/ )
public CallResult<HTML_BrowserReady_t> CreateBrowser( string pchUserAgent /*const char **/, string pchUserCSS /*const char **/, Action<HTML_BrowserReady_t, bool> CallbackFunction = null /*Action<HTML_BrowserReady_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamHTMLSurface_CreateBrowser( pchUserAgent, pchUserCSS );
@ -68,7 +68,7 @@ public CallbackHandle CreateBrowser( string pchUserAgent /*const char **/, strin
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return HTML_BrowserReady_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<HTML_BrowserReady_t>( steamworks, callback, CallbackFunction );
}
// void

View File

@ -235,7 +235,7 @@ public bool RemoveProperty( SteamInventoryUpdateHandle_t handle /*SteamInventory
}
// SteamAPICall_t
public CallbackHandle RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID /*class CSteamID*/, Action<SteamInventoryEligiblePromoItemDefIDs_t, bool> CallbackFunction = null /*Action<SteamInventoryEligiblePromoItemDefIDs_t, bool>*/ )
public CallResult<SteamInventoryEligiblePromoItemDefIDs_t> RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID /*class CSteamID*/, Action<SteamInventoryEligiblePromoItemDefIDs_t, bool> CallbackFunction = null /*Action<SteamInventoryEligiblePromoItemDefIDs_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamInventory_RequestEligiblePromoItemDefinitionsIDs( steamID.Value );
@ -243,11 +243,11 @@ public CallbackHandle RequestEligiblePromoItemDefinitionsIDs( CSteamID steamID /
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SteamInventoryEligiblePromoItemDefIDs_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SteamInventoryEligiblePromoItemDefIDs_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RequestPrices( Action<SteamInventoryRequestPricesResult_t, bool> CallbackFunction = null /*Action<SteamInventoryRequestPricesResult_t, bool>*/ )
public CallResult<SteamInventoryRequestPricesResult_t> RequestPrices( Action<SteamInventoryRequestPricesResult_t, bool> CallbackFunction = null /*Action<SteamInventoryRequestPricesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamInventory_RequestPrices();
@ -255,7 +255,7 @@ public CallbackHandle RequestPrices( Action<SteamInventoryRequestPricesResult_t,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SteamInventoryRequestPricesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SteamInventoryRequestPricesResult_t>( steamworks, callback, CallbackFunction );
}
// void
@ -295,7 +295,7 @@ public bool SetProperty2( SteamInventoryUpdateHandle_t handle /*SteamInventoryUp
}
// SteamAPICall_t
public CallbackHandle StartPurchase( SteamItemDef_t[] pArrayItemDefs /*const SteamItemDef_t **/, uint[] punArrayQuantity /*const uint32 **/, uint unArrayLength /*uint32*/, Action<SteamInventoryStartPurchaseResult_t, bool> CallbackFunction = null /*Action<SteamInventoryStartPurchaseResult_t, bool>*/ )
public CallResult<SteamInventoryStartPurchaseResult_t> StartPurchase( SteamItemDef_t[] pArrayItemDefs /*const SteamItemDef_t **/, uint[] punArrayQuantity /*const uint32 **/, uint unArrayLength /*uint32*/, Action<SteamInventoryStartPurchaseResult_t, bool> CallbackFunction = null /*Action<SteamInventoryStartPurchaseResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamInventory_StartPurchase( pArrayItemDefs.Select( x => x.Value ).ToArray(), punArrayQuantity, unArrayLength );
@ -303,7 +303,7 @@ public CallbackHandle StartPurchase( SteamItemDef_t[] pArrayItemDefs /*const Ste
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SteamInventoryStartPurchaseResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SteamInventoryStartPurchaseResult_t>( steamworks, callback, CallbackFunction );
}
// SteamInventoryUpdateHandle_t

View File

@ -90,7 +90,7 @@ public void AddRequestLobbyListStringFilter( string pchKeyToMatch /*const char *
}
// SteamAPICall_t
public CallbackHandle CreateLobby( LobbyType eLobbyType /*ELobbyType*/, int cMaxMembers /*int*/, Action<LobbyCreated_t, bool> CallbackFunction = null /*Action<LobbyCreated_t, bool>*/ )
public CallResult<LobbyCreated_t> CreateLobby( LobbyType eLobbyType /*ELobbyType*/, int cMaxMembers /*int*/, Action<LobbyCreated_t, bool> CallbackFunction = null /*Action<LobbyCreated_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamMatchmaking_CreateLobby( eLobbyType, cMaxMembers );
@ -98,7 +98,7 @@ public CallbackHandle CreateLobby( LobbyType eLobbyType /*ELobbyType*/, int cMax
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LobbyCreated_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LobbyCreated_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -212,7 +212,7 @@ public bool InviteUserToLobby( CSteamID steamIDLobby /*class CSteamID*/, CSteamI
}
// SteamAPICall_t
public CallbackHandle JoinLobby( CSteamID steamIDLobby /*class CSteamID*/, Action<LobbyEnter_t, bool> CallbackFunction = null /*Action<LobbyEnter_t, bool>*/ )
public CallResult<LobbyEnter_t> JoinLobby( CSteamID steamIDLobby /*class CSteamID*/, Action<LobbyEnter_t, bool> CallbackFunction = null /*Action<LobbyEnter_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamMatchmaking_JoinLobby( steamIDLobby.Value );
@ -220,7 +220,7 @@ public CallbackHandle JoinLobby( CSteamID steamIDLobby /*class CSteamID*/, Actio
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LobbyEnter_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LobbyEnter_t>( steamworks, callback, CallbackFunction );
}
// void
@ -242,7 +242,7 @@ public bool RequestLobbyData( CSteamID steamIDLobby /*class CSteamID*/ )
}
// SteamAPICall_t
public CallbackHandle RequestLobbyList( Action<LobbyMatchList_t, bool> CallbackFunction = null /*Action<LobbyMatchList_t, bool>*/ )
public CallResult<LobbyMatchList_t> RequestLobbyList( Action<LobbyMatchList_t, bool> CallbackFunction = null /*Action<LobbyMatchList_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamMatchmaking_RequestLobbyList();
@ -250,7 +250,7 @@ public CallbackHandle RequestLobbyList( Action<LobbyMatchList_t, bool> CallbackF
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LobbyMatchList_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LobbyMatchList_t>( steamworks, callback, CallbackFunction );
}
// bool

View File

@ -66,7 +66,7 @@ public gameserveritem_t GetServerDetails( HServerListRequest hRequest /*HServerL
IntPtr struct_pointer;
struct_pointer = platform.ISteamMatchmakingServers_GetServerDetails( hRequest.Value, iServer );
if ( struct_pointer == IntPtr.Zero ) return default(gameserveritem_t);
return gameserveritem_t.FromPointer( struct_pointer );
return new gameserveritem_t().Fill( struct_pointer );
}
// bool

View File

@ -48,7 +48,7 @@ public void CancelReservation( PartyBeaconID_t ulBeacon /*PartyBeaconID_t*/, CSt
}
// SteamAPICall_t
public CallbackHandle ChangeNumOpenSlots( PartyBeaconID_t ulBeacon /*PartyBeaconID_t*/, uint unOpenSlots /*uint32*/, Action<ChangeNumOpenSlotsCallback_t, bool> CallbackFunction = null /*Action<ChangeNumOpenSlotsCallback_t, bool>*/ )
public CallResult<ChangeNumOpenSlotsCallback_t> ChangeNumOpenSlots( PartyBeaconID_t ulBeacon /*PartyBeaconID_t*/, uint unOpenSlots /*uint32*/, Action<ChangeNumOpenSlotsCallback_t, bool> CallbackFunction = null /*Action<ChangeNumOpenSlotsCallback_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamParties_ChangeNumOpenSlots( ulBeacon.Value, unOpenSlots );
@ -56,11 +56,11 @@ public CallbackHandle ChangeNumOpenSlots( PartyBeaconID_t ulBeacon /*PartyBeacon
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return ChangeNumOpenSlotsCallback_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<ChangeNumOpenSlotsCallback_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle CreateBeacon( uint unOpenSlots /*uint32*/, ref SteamPartyBeaconLocation_t pBeaconLocation /*struct SteamPartyBeaconLocation_t **/, string pchConnectString /*const char **/, string pchMetadata /*const char **/, Action<CreateBeaconCallback_t, bool> CallbackFunction = null /*Action<CreateBeaconCallback_t, bool>*/ )
public CallResult<CreateBeaconCallback_t> CreateBeacon( uint unOpenSlots /*uint32*/, ref SteamPartyBeaconLocation_t pBeaconLocation /*struct SteamPartyBeaconLocation_t **/, string pchConnectString /*const char **/, string pchMetadata /*const char **/, Action<CreateBeaconCallback_t, bool> CallbackFunction = null /*Action<CreateBeaconCallback_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamParties_CreateBeacon( unOpenSlots, ref pBeaconLocation, pchConnectString, pchMetadata );
@ -68,7 +68,7 @@ public CallbackHandle CreateBeacon( uint unOpenSlots /*uint32*/, ref SteamPartyB
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return CreateBeaconCallback_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<CreateBeaconCallback_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -130,7 +130,7 @@ public bool GetNumAvailableBeaconLocations( IntPtr puNumLocations /*uint32 **/ )
}
// SteamAPICall_t
public CallbackHandle JoinParty( PartyBeaconID_t ulBeaconID /*PartyBeaconID_t*/, Action<JoinPartyCallback_t, bool> CallbackFunction = null /*Action<JoinPartyCallback_t, bool>*/ )
public CallResult<JoinPartyCallback_t> JoinParty( PartyBeaconID_t ulBeaconID /*PartyBeaconID_t*/, Action<JoinPartyCallback_t, bool> CallbackFunction = null /*Action<JoinPartyCallback_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamParties_JoinParty( ulBeaconID.Value );
@ -138,7 +138,7 @@ public CallbackHandle JoinParty( PartyBeaconID_t ulBeaconID /*PartyBeaconID_t*/,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return JoinPartyCallback_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<JoinPartyCallback_t>( steamworks, callback, CallbackFunction );
}
// void

View File

@ -42,7 +42,7 @@ public virtual void Dispose()
}
// SteamAPICall_t
public CallbackHandle CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle /*PublishedFileUpdateHandle_t*/, Action<RemoteStorageUpdatePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUpdatePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageUpdatePublishedFileResult_t> CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle /*PublishedFileUpdateHandle_t*/, Action<RemoteStorageUpdatePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUpdatePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_CommitPublishedFileUpdate( updateHandle.Value );
@ -50,7 +50,7 @@ public CallbackHandle CommitPublishedFileUpdate( PublishedFileUpdateHandle_t upd
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageUpdatePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageUpdatePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// PublishedFileUpdateHandle_t
@ -60,7 +60,7 @@ public PublishedFileUpdateHandle_t CreatePublishedFileUpdateRequest( PublishedFi
}
// SteamAPICall_t
public CallbackHandle DeletePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageDeletePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDeletePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageDeletePublishedFileResult_t> DeletePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageDeletePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDeletePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_DeletePublishedFile( unPublishedFileId.Value );
@ -68,11 +68,11 @@ public CallbackHandle DeletePublishedFile( PublishedFileId_t unPublishedFileId /
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageDeletePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageDeletePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle EnumeratePublishedFilesByUserAction( WorkshopFileAction eAction /*EWorkshopFileAction*/, uint unStartIndex /*uint32*/, Action<RemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool>*/ )
public CallResult<RemoteStorageEnumeratePublishedFilesByUserActionResult_t> EnumeratePublishedFilesByUserAction( WorkshopFileAction eAction /*EWorkshopFileAction*/, uint unStartIndex /*uint32*/, Action<RemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumeratePublishedFilesByUserActionResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( eAction, unStartIndex );
@ -80,12 +80,12 @@ public CallbackHandle EnumeratePublishedFilesByUserAction( WorkshopFileAction eA
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageEnumeratePublishedFilesByUserActionResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageEnumeratePublishedFilesByUserActionResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
// using: Detect_StringArray
public CallbackHandle EnumeratePublishedWorkshopFiles( WorkshopEnumerationType eEnumerationType /*EWorkshopEnumerationType*/, uint unStartIndex /*uint32*/, uint unCount /*uint32*/, uint unDays /*uint32*/, string[] pTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pUserTags /*struct SteamParamStringArray_t **/, Action<RemoteStorageEnumerateWorkshopFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateWorkshopFilesResult_t, bool>*/ )
public CallResult<RemoteStorageEnumerateWorkshopFilesResult_t> EnumeratePublishedWorkshopFiles( WorkshopEnumerationType eEnumerationType /*EWorkshopEnumerationType*/, uint unStartIndex /*uint32*/, uint unCount /*uint32*/, uint unDays /*uint32*/, string[] pTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pUserTags /*struct SteamParamStringArray_t **/, Action<RemoteStorageEnumerateWorkshopFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateWorkshopFilesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
// Create strings
@ -118,11 +118,11 @@ public CallbackHandle EnumeratePublishedWorkshopFiles( WorkshopEnumerationType e
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageEnumerateWorkshopFilesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageEnumerateWorkshopFilesResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle EnumerateUserPublishedFiles( uint unStartIndex /*uint32*/, Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/ )
public CallResult<RemoteStorageEnumerateUserPublishedFilesResult_t> EnumerateUserPublishedFiles( uint unStartIndex /*uint32*/, Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_EnumerateUserPublishedFiles( unStartIndex );
@ -130,12 +130,12 @@ public CallbackHandle EnumerateUserPublishedFiles( uint unStartIndex /*uint32*/,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageEnumerateUserPublishedFilesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageEnumerateUserPublishedFilesResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
// using: Detect_StringArray
public CallbackHandle EnumerateUserSharedWorkshopFiles( CSteamID steamId /*class CSteamID*/, uint unStartIndex /*uint32*/, string[] pRequiredTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pExcludedTags /*struct SteamParamStringArray_t **/, Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/ )
public CallResult<RemoteStorageEnumerateUserPublishedFilesResult_t> EnumerateUserSharedWorkshopFiles( CSteamID steamId /*class CSteamID*/, uint unStartIndex /*uint32*/, string[] pRequiredTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pExcludedTags /*struct SteamParamStringArray_t **/, Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
// Create strings
@ -168,11 +168,11 @@ public CallbackHandle EnumerateUserSharedWorkshopFiles( CSteamID steamId /*class
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageEnumerateUserPublishedFilesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageEnumerateUserPublishedFilesResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle EnumerateUserSubscribedFiles( uint unStartIndex /*uint32*/, Action<RemoteStorageEnumerateUserSubscribedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserSubscribedFilesResult_t, bool>*/ )
public CallResult<RemoteStorageEnumerateUserSubscribedFilesResult_t> EnumerateUserSubscribedFiles( uint unStartIndex /*uint32*/, Action<RemoteStorageEnumerateUserSubscribedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserSubscribedFilesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_EnumerateUserSubscribedFiles( unStartIndex );
@ -180,7 +180,7 @@ public CallbackHandle EnumerateUserSubscribedFiles( uint unStartIndex /*uint32*/
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageEnumerateUserSubscribedFilesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageEnumerateUserSubscribedFilesResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -214,7 +214,7 @@ public int FileRead( string pchFile /*const char **/, IntPtr pvData /*void **/,
}
// SteamAPICall_t
public CallbackHandle FileReadAsync( string pchFile /*const char **/, uint nOffset /*uint32*/, uint cubToRead /*uint32*/, Action<RemoteStorageFileReadAsyncComplete_t, bool> CallbackFunction = null /*Action<RemoteStorageFileReadAsyncComplete_t, bool>*/ )
public CallResult<RemoteStorageFileReadAsyncComplete_t> FileReadAsync( string pchFile /*const char **/, uint nOffset /*uint32*/, uint cubToRead /*uint32*/, Action<RemoteStorageFileReadAsyncComplete_t, bool> CallbackFunction = null /*Action<RemoteStorageFileReadAsyncComplete_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_FileReadAsync( pchFile, nOffset, cubToRead );
@ -222,7 +222,7 @@ public CallbackHandle FileReadAsync( string pchFile /*const char **/, uint nOffs
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageFileReadAsyncComplete_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageFileReadAsyncComplete_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -232,7 +232,7 @@ public bool FileReadAsyncComplete( SteamAPICall_t hReadCall /*SteamAPICall_t*/,
}
// SteamAPICall_t
public CallbackHandle FileShare( string pchFile /*const char **/, Action<RemoteStorageFileShareResult_t, bool> CallbackFunction = null /*Action<RemoteStorageFileShareResult_t, bool>*/ )
public CallResult<RemoteStorageFileShareResult_t> FileShare( string pchFile /*const char **/, Action<RemoteStorageFileShareResult_t, bool> CallbackFunction = null /*Action<RemoteStorageFileShareResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_FileShare( pchFile );
@ -240,7 +240,7 @@ public CallbackHandle FileShare( string pchFile /*const char **/, Action<RemoteS
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageFileShareResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageFileShareResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -250,7 +250,7 @@ public bool FileWrite( string pchFile /*const char **/, IntPtr pvData /*const vo
}
// SteamAPICall_t
public CallbackHandle FileWriteAsync( string pchFile /*const char **/, IntPtr pvData /*const void **/, uint cubData /*uint32*/, Action<RemoteStorageFileWriteAsyncComplete_t, bool> CallbackFunction = null /*Action<RemoteStorageFileWriteAsyncComplete_t, bool>*/ )
public CallResult<RemoteStorageFileWriteAsyncComplete_t> FileWriteAsync( string pchFile /*const char **/, IntPtr pvData /*const void **/, uint cubData /*uint32*/, Action<RemoteStorageFileWriteAsyncComplete_t, bool> CallbackFunction = null /*Action<RemoteStorageFileWriteAsyncComplete_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_FileWriteAsync( pchFile, (IntPtr) pvData, cubData );
@ -258,7 +258,7 @@ public CallbackHandle FileWriteAsync( string pchFile /*const char **/, IntPtr pv
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageFileWriteAsyncComplete_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageFileWriteAsyncComplete_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -325,7 +325,7 @@ public long GetFileTimestamp( string pchFile /*const char **/ )
}
// SteamAPICall_t
public CallbackHandle GetPublishedFileDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, uint unMaxSecondsOld /*uint32*/, Action<RemoteStorageGetPublishedFileDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedFileDetailsResult_t, bool>*/ )
public CallResult<RemoteStorageGetPublishedFileDetailsResult_t> GetPublishedFileDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, uint unMaxSecondsOld /*uint32*/, Action<RemoteStorageGetPublishedFileDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedFileDetailsResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_GetPublishedFileDetails( unPublishedFileId.Value, unMaxSecondsOld );
@ -333,11 +333,11 @@ public CallbackHandle GetPublishedFileDetails( PublishedFileId_t unPublishedFile
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageGetPublishedFileDetailsResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageGetPublishedFileDetailsResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool>*/ )
public CallResult<RemoteStorageGetPublishedItemVoteDetailsResult_t> GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_GetPublishedItemVoteDetails( unPublishedFileId.Value );
@ -345,7 +345,7 @@ public CallbackHandle GetPublishedItemVoteDetails( PublishedFileId_t unPublished
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageGetPublishedItemVoteDetailsResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageGetPublishedItemVoteDetailsResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -381,7 +381,7 @@ public bool GetUGCDownloadProgress( UGCHandle_t hContent /*UGCHandle_t*/, out in
}
// SteamAPICall_t
public CallbackHandle GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool>*/ )
public CallResult<RemoteStorageGetPublishedItemVoteDetailsResult_t> GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool> CallbackFunction = null /*Action<RemoteStorageGetPublishedItemVoteDetailsResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_GetUserPublishedItemVoteDetails( unPublishedFileId.Value );
@ -389,7 +389,7 @@ public CallbackHandle GetUserPublishedItemVoteDetails( PublishedFileId_t unPubli
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageGetPublishedItemVoteDetailsResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageGetPublishedItemVoteDetailsResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -406,7 +406,7 @@ public bool IsCloudEnabledForApp()
// SteamAPICall_t
// using: Detect_StringArray
public CallbackHandle PublishVideo( WorkshopVideoProvider eVideoProvider /*EWorkshopVideoProvider*/, string pchVideoAccount /*const char **/, string pchVideoIdentifier /*const char **/, string pchPreviewFile /*const char **/, AppId_t nConsumerAppId /*AppId_t*/, string pchTitle /*const char **/, string pchDescription /*const char **/, RemoteStoragePublishedFileVisibility eVisibility /*ERemoteStoragePublishedFileVisibility*/, string[] pTags /*struct SteamParamStringArray_t **/, Action<RemoteStoragePublishFileProgress_t, bool> CallbackFunction = null /*Action<RemoteStoragePublishFileProgress_t, bool>*/ )
public CallResult<RemoteStoragePublishFileProgress_t> PublishVideo( WorkshopVideoProvider eVideoProvider /*EWorkshopVideoProvider*/, string pchVideoAccount /*const char **/, string pchVideoIdentifier /*const char **/, string pchPreviewFile /*const char **/, AppId_t nConsumerAppId /*AppId_t*/, string pchTitle /*const char **/, string pchDescription /*const char **/, RemoteStoragePublishedFileVisibility eVisibility /*ERemoteStoragePublishedFileVisibility*/, string[] pTags /*struct SteamParamStringArray_t **/, Action<RemoteStoragePublishFileProgress_t, bool> CallbackFunction = null /*Action<RemoteStoragePublishFileProgress_t, bool>*/ )
{
SteamAPICall_t callback = 0;
// Create strings
@ -439,12 +439,12 @@ public CallbackHandle PublishVideo( WorkshopVideoProvider eVideoProvider /*EWork
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStoragePublishFileProgress_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStoragePublishFileProgress_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
// using: Detect_StringArray
public CallbackHandle PublishWorkshopFile( string pchFile /*const char **/, string pchPreviewFile /*const char **/, AppId_t nConsumerAppId /*AppId_t*/, string pchTitle /*const char **/, string pchDescription /*const char **/, RemoteStoragePublishedFileVisibility eVisibility /*ERemoteStoragePublishedFileVisibility*/, string[] pTags /*struct SteamParamStringArray_t **/, WorkshopFileType eWorkshopFileType /*EWorkshopFileType*/, Action<RemoteStoragePublishFileProgress_t, bool> CallbackFunction = null /*Action<RemoteStoragePublishFileProgress_t, bool>*/ )
public CallResult<RemoteStoragePublishFileProgress_t> PublishWorkshopFile( string pchFile /*const char **/, string pchPreviewFile /*const char **/, AppId_t nConsumerAppId /*AppId_t*/, string pchTitle /*const char **/, string pchDescription /*const char **/, RemoteStoragePublishedFileVisibility eVisibility /*ERemoteStoragePublishedFileVisibility*/, string[] pTags /*struct SteamParamStringArray_t **/, WorkshopFileType eWorkshopFileType /*EWorkshopFileType*/, Action<RemoteStoragePublishFileProgress_t, bool> CallbackFunction = null /*Action<RemoteStoragePublishFileProgress_t, bool>*/ )
{
SteamAPICall_t callback = 0;
// Create strings
@ -477,7 +477,7 @@ public CallbackHandle PublishWorkshopFile( string pchFile /*const char **/, stri
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStoragePublishFileProgress_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStoragePublishFileProgress_t>( steamworks, callback, CallbackFunction );
}
// void
@ -493,7 +493,7 @@ public bool SetSyncPlatforms( string pchFile /*const char **/, RemoteStoragePlat
}
// SteamAPICall_t
public CallbackHandle SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, WorkshopFileAction eAction /*EWorkshopFileAction*/, Action<RemoteStorageSetUserPublishedFileActionResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSetUserPublishedFileActionResult_t, bool>*/ )
public CallResult<RemoteStorageSetUserPublishedFileActionResult_t> SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, WorkshopFileAction eAction /*EWorkshopFileAction*/, Action<RemoteStorageSetUserPublishedFileActionResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSetUserPublishedFileActionResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_SetUserPublishedFileAction( unPublishedFileId.Value, eAction );
@ -501,11 +501,11 @@ public CallbackHandle SetUserPublishedFileAction( PublishedFileId_t unPublishedF
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageSetUserPublishedFileActionResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageSetUserPublishedFileActionResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle SubscribePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageSubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSubscribePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageSubscribePublishedFileResult_t> SubscribePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageSubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSubscribePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_SubscribePublishedFile( unPublishedFileId.Value );
@ -513,11 +513,11 @@ public CallbackHandle SubscribePublishedFile( PublishedFileId_t unPublishedFileI
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageSubscribePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageSubscribePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle UGCDownload( UGCHandle_t hContent /*UGCHandle_t*/, uint unPriority /*uint32*/, Action<RemoteStorageDownloadUGCResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDownloadUGCResult_t, bool>*/ )
public CallResult<RemoteStorageDownloadUGCResult_t> UGCDownload( UGCHandle_t hContent /*UGCHandle_t*/, uint unPriority /*uint32*/, Action<RemoteStorageDownloadUGCResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDownloadUGCResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_UGCDownload( hContent.Value, unPriority );
@ -525,11 +525,11 @@ public CallbackHandle UGCDownload( UGCHandle_t hContent /*UGCHandle_t*/, uint un
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageDownloadUGCResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageDownloadUGCResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle UGCDownloadToLocation( UGCHandle_t hContent /*UGCHandle_t*/, string pchLocation /*const char **/, uint unPriority /*uint32*/, Action<RemoteStorageDownloadUGCResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDownloadUGCResult_t, bool>*/ )
public CallResult<RemoteStorageDownloadUGCResult_t> UGCDownloadToLocation( UGCHandle_t hContent /*UGCHandle_t*/, string pchLocation /*const char **/, uint unPriority /*uint32*/, Action<RemoteStorageDownloadUGCResult_t, bool> CallbackFunction = null /*Action<RemoteStorageDownloadUGCResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_UGCDownloadToLocation( hContent.Value, pchLocation, unPriority );
@ -537,7 +537,7 @@ public CallbackHandle UGCDownloadToLocation( UGCHandle_t hContent /*UGCHandle_t*
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageDownloadUGCResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageDownloadUGCResult_t>( steamworks, callback, CallbackFunction );
}
// int
@ -547,7 +547,7 @@ public int UGCRead( UGCHandle_t hContent /*UGCHandle_t*/, IntPtr pvData /*void *
}
// SteamAPICall_t
public CallbackHandle UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageUnsubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUnsubscribePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageUnsubscribePublishedFileResult_t> UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, Action<RemoteStorageUnsubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUnsubscribePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_UnsubscribePublishedFile( unPublishedFileId.Value );
@ -555,7 +555,7 @@ public CallbackHandle UnsubscribePublishedFile( PublishedFileId_t unPublishedFil
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageUnsubscribePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageUnsubscribePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -627,7 +627,7 @@ public bool UpdatePublishedFileVisibility( PublishedFileUpdateHandle_t updateHan
}
// SteamAPICall_t
public CallbackHandle UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, bool bVoteUp /*bool*/, Action<RemoteStorageUpdateUserPublishedItemVoteResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUpdateUserPublishedItemVoteResult_t, bool>*/ )
public CallResult<RemoteStorageUpdateUserPublishedItemVoteResult_t> UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId /*PublishedFileId_t*/, bool bVoteUp /*bool*/, Action<RemoteStorageUpdateUserPublishedItemVoteResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUpdateUserPublishedItemVoteResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamRemoteStorage_UpdateUserPublishedItemVote( unPublishedFileId.Value, bVoteUp );
@ -635,7 +635,7 @@ public CallbackHandle UpdateUserPublishedItemVote( PublishedFileId_t unPublished
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageUpdateUserPublishedItemVoteResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageUpdateUserPublishedItemVoteResult_t>( steamworks, callback, CallbackFunction );
}
}

View File

@ -42,7 +42,7 @@ public virtual void Dispose()
}
// SteamAPICall_t
public CallbackHandle AddAppDependency( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, AppId_t nAppID /*AppId_t*/, Action<AddAppDependencyResult_t, bool> CallbackFunction = null /*Action<AddAppDependencyResult_t, bool>*/ )
public CallResult<AddAppDependencyResult_t> AddAppDependency( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, AppId_t nAppID /*AppId_t*/, Action<AddAppDependencyResult_t, bool> CallbackFunction = null /*Action<AddAppDependencyResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_AddAppDependency( nPublishedFileID.Value, nAppID.Value );
@ -50,11 +50,11 @@ public CallbackHandle AddAppDependency( PublishedFileId_t nPublishedFileID /*Pub
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return AddAppDependencyResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<AddAppDependencyResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle AddDependency( PublishedFileId_t nParentPublishedFileID /*PublishedFileId_t*/, PublishedFileId_t nChildPublishedFileID /*PublishedFileId_t*/, Action<AddUGCDependencyResult_t, bool> CallbackFunction = null /*Action<AddUGCDependencyResult_t, bool>*/ )
public CallResult<AddUGCDependencyResult_t> AddDependency( PublishedFileId_t nParentPublishedFileID /*PublishedFileId_t*/, PublishedFileId_t nChildPublishedFileID /*PublishedFileId_t*/, Action<AddUGCDependencyResult_t, bool> CallbackFunction = null /*Action<AddUGCDependencyResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_AddDependency( nParentPublishedFileID.Value, nChildPublishedFileID.Value );
@ -62,7 +62,7 @@ public CallbackHandle AddDependency( PublishedFileId_t nParentPublishedFileID /*
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return AddUGCDependencyResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<AddUGCDependencyResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -90,7 +90,7 @@ public bool AddItemPreviewVideo( UGCUpdateHandle_t handle /*UGCUpdateHandle_t*/,
}
// SteamAPICall_t
public CallbackHandle AddItemToFavorites( AppId_t nAppId /*AppId_t*/, PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<UserFavoriteItemsListChanged_t, bool> CallbackFunction = null /*Action<UserFavoriteItemsListChanged_t, bool>*/ )
public CallResult<UserFavoriteItemsListChanged_t> AddItemToFavorites( AppId_t nAppId /*AppId_t*/, PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<UserFavoriteItemsListChanged_t, bool> CallbackFunction = null /*Action<UserFavoriteItemsListChanged_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_AddItemToFavorites( nAppId.Value, nPublishedFileID.Value );
@ -98,7 +98,7 @@ public CallbackHandle AddItemToFavorites( AppId_t nAppId /*AppId_t*/, PublishedF
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return UserFavoriteItemsListChanged_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<UserFavoriteItemsListChanged_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -120,7 +120,7 @@ public bool BInitWorkshopForGameServer( DepotId_t unWorkshopDepotID /*DepotId_t*
}
// SteamAPICall_t
public CallbackHandle CreateItem( AppId_t nConsumerAppId /*AppId_t*/, WorkshopFileType eFileType /*EWorkshopFileType*/, Action<CreateItemResult_t, bool> CallbackFunction = null /*Action<CreateItemResult_t, bool>*/ )
public CallResult<CreateItemResult_t> CreateItem( AppId_t nConsumerAppId /*AppId_t*/, WorkshopFileType eFileType /*EWorkshopFileType*/, Action<CreateItemResult_t, bool> CallbackFunction = null /*Action<CreateItemResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_CreateItem( nConsumerAppId.Value, eFileType );
@ -128,7 +128,7 @@ public CallbackHandle CreateItem( AppId_t nConsumerAppId /*AppId_t*/, WorkshopFi
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return CreateItemResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<CreateItemResult_t>( steamworks, callback, CallbackFunction );
}
// UGCQueryHandle_t
@ -161,7 +161,7 @@ public UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID /*Acc
}
// SteamAPICall_t
public CallbackHandle DeleteItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<DeleteItemResult_t, bool> CallbackFunction = null /*Action<DeleteItemResult_t, bool>*/ )
public CallResult<DeleteItemResult_t> DeleteItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<DeleteItemResult_t, bool> CallbackFunction = null /*Action<DeleteItemResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_DeleteItem( nPublishedFileID.Value );
@ -169,7 +169,7 @@ public CallbackHandle DeleteItem( PublishedFileId_t nPublishedFileID /*Published
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return DeleteItemResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<DeleteItemResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -179,7 +179,7 @@ public bool DownloadItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t
}
// SteamAPICall_t
public CallbackHandle GetAppDependencies( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<GetAppDependenciesResult_t, bool> CallbackFunction = null /*Action<GetAppDependenciesResult_t, bool>*/ )
public CallResult<GetAppDependenciesResult_t> GetAppDependencies( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<GetAppDependenciesResult_t, bool> CallbackFunction = null /*Action<GetAppDependenciesResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_GetAppDependencies( nPublishedFileID.Value );
@ -187,7 +187,7 @@ public CallbackHandle GetAppDependencies( PublishedFileId_t nPublishedFileID /*P
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GetAppDependenciesResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GetAppDependenciesResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -333,7 +333,7 @@ public uint GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID /*Publish
}
// SteamAPICall_t
public CallbackHandle GetUserItemVote( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<GetUserItemVoteResult_t, bool> CallbackFunction = null /*Action<GetUserItemVoteResult_t, bool>*/ )
public CallResult<GetUserItemVoteResult_t> GetUserItemVote( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<GetUserItemVoteResult_t, bool> CallbackFunction = null /*Action<GetUserItemVoteResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_GetUserItemVote( nPublishedFileID.Value );
@ -341,7 +341,7 @@ public CallbackHandle GetUserItemVote( PublishedFileId_t nPublishedFileID /*Publ
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GetUserItemVoteResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GetUserItemVoteResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -351,7 +351,7 @@ public bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle /*UGCQueryHandle_t*/
}
// SteamAPICall_t
public CallbackHandle RemoveAppDependency( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, AppId_t nAppID /*AppId_t*/, Action<RemoveAppDependencyResult_t, bool> CallbackFunction = null /*Action<RemoveAppDependencyResult_t, bool>*/ )
public CallResult<RemoveAppDependencyResult_t> RemoveAppDependency( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, AppId_t nAppID /*AppId_t*/, Action<RemoveAppDependencyResult_t, bool> CallbackFunction = null /*Action<RemoveAppDependencyResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_RemoveAppDependency( nPublishedFileID.Value, nAppID.Value );
@ -359,11 +359,11 @@ public CallbackHandle RemoveAppDependency( PublishedFileId_t nPublishedFileID /*
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoveAppDependencyResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoveAppDependencyResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RemoveDependency( PublishedFileId_t nParentPublishedFileID /*PublishedFileId_t*/, PublishedFileId_t nChildPublishedFileID /*PublishedFileId_t*/, Action<RemoveUGCDependencyResult_t, bool> CallbackFunction = null /*Action<RemoveUGCDependencyResult_t, bool>*/ )
public CallResult<RemoveUGCDependencyResult_t> RemoveDependency( PublishedFileId_t nParentPublishedFileID /*PublishedFileId_t*/, PublishedFileId_t nChildPublishedFileID /*PublishedFileId_t*/, Action<RemoveUGCDependencyResult_t, bool> CallbackFunction = null /*Action<RemoveUGCDependencyResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_RemoveDependency( nParentPublishedFileID.Value, nChildPublishedFileID.Value );
@ -371,11 +371,11 @@ public CallbackHandle RemoveDependency( PublishedFileId_t nParentPublishedFileID
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoveUGCDependencyResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoveUGCDependencyResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RemoveItemFromFavorites( AppId_t nAppId /*AppId_t*/, PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<UserFavoriteItemsListChanged_t, bool> CallbackFunction = null /*Action<UserFavoriteItemsListChanged_t, bool>*/ )
public CallResult<UserFavoriteItemsListChanged_t> RemoveItemFromFavorites( AppId_t nAppId /*AppId_t*/, PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<UserFavoriteItemsListChanged_t, bool> CallbackFunction = null /*Action<UserFavoriteItemsListChanged_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_RemoveItemFromFavorites( nAppId.Value, nPublishedFileID.Value );
@ -383,7 +383,7 @@ public CallbackHandle RemoveItemFromFavorites( AppId_t nAppId /*AppId_t*/, Publi
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return UserFavoriteItemsListChanged_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<UserFavoriteItemsListChanged_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -405,7 +405,7 @@ public SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID /*Pu
}
// SteamAPICall_t
public CallbackHandle SendQueryUGCRequest( UGCQueryHandle_t handle /*UGCQueryHandle_t*/, Action<SteamUGCQueryCompleted_t, bool> CallbackFunction = null /*Action<SteamUGCQueryCompleted_t, bool>*/ )
public CallResult<SteamUGCQueryCompleted_t> SendQueryUGCRequest( UGCQueryHandle_t handle /*UGCQueryHandle_t*/, Action<SteamUGCQueryCompleted_t, bool> CallbackFunction = null /*Action<SteamUGCQueryCompleted_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_SendQueryUGCRequest( handle.Value );
@ -413,7 +413,7 @@ public CallbackHandle SendQueryUGCRequest( UGCQueryHandle_t handle /*UGCQueryHan
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SteamUGCQueryCompleted_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SteamUGCQueryCompleted_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -581,7 +581,7 @@ public bool SetSearchText( UGCQueryHandle_t handle /*UGCQueryHandle_t*/, string
}
// SteamAPICall_t
public CallbackHandle SetUserItemVote( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, bool bVoteUp /*bool*/, Action<SetUserItemVoteResult_t, bool> CallbackFunction = null /*Action<SetUserItemVoteResult_t, bool>*/ )
public CallResult<SetUserItemVoteResult_t> SetUserItemVote( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, bool bVoteUp /*bool*/, Action<SetUserItemVoteResult_t, bool> CallbackFunction = null /*Action<SetUserItemVoteResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_SetUserItemVote( nPublishedFileID.Value, bVoteUp );
@ -589,7 +589,7 @@ public CallbackHandle SetUserItemVote( PublishedFileId_t nPublishedFileID /*Publ
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SetUserItemVoteResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SetUserItemVoteResult_t>( steamworks, callback, CallbackFunction );
}
// UGCUpdateHandle_t
@ -600,7 +600,7 @@ public UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId /*AppId_t*/, Pu
// with: Detect_VectorReturn
// SteamAPICall_t
public CallbackHandle StartPlaytimeTracking( PublishedFileId_t[] pvecPublishedFileID /*PublishedFileId_t **/, Action<StartPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StartPlaytimeTrackingResult_t, bool>*/ )
public CallResult<StartPlaytimeTrackingResult_t> StartPlaytimeTracking( PublishedFileId_t[] pvecPublishedFileID /*PublishedFileId_t **/, Action<StartPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StartPlaytimeTrackingResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
var unNumPublishedFileIDs = (uint) pvecPublishedFileID.Length;
@ -612,12 +612,12 @@ public CallbackHandle StartPlaytimeTracking( PublishedFileId_t[] pvecPublishedFi
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return StartPlaytimeTrackingResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<StartPlaytimeTrackingResult_t>( steamworks, callback, CallbackFunction );
}
// with: Detect_VectorReturn
// SteamAPICall_t
public CallbackHandle StopPlaytimeTracking( PublishedFileId_t[] pvecPublishedFileID /*PublishedFileId_t **/, Action<StopPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StopPlaytimeTrackingResult_t, bool>*/ )
public CallResult<StopPlaytimeTrackingResult_t> StopPlaytimeTracking( PublishedFileId_t[] pvecPublishedFileID /*PublishedFileId_t **/, Action<StopPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StopPlaytimeTrackingResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
var unNumPublishedFileIDs = (uint) pvecPublishedFileID.Length;
@ -629,11 +629,11 @@ public CallbackHandle StopPlaytimeTracking( PublishedFileId_t[] pvecPublishedFil
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return StopPlaytimeTrackingResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<StopPlaytimeTrackingResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle StopPlaytimeTrackingForAllItems( Action<StopPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StopPlaytimeTrackingResult_t, bool>*/ )
public CallResult<StopPlaytimeTrackingResult_t> StopPlaytimeTrackingForAllItems( Action<StopPlaytimeTrackingResult_t, bool> CallbackFunction = null /*Action<StopPlaytimeTrackingResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_StopPlaytimeTrackingForAllItems();
@ -641,11 +641,11 @@ public CallbackHandle StopPlaytimeTrackingForAllItems( Action<StopPlaytimeTracki
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return StopPlaytimeTrackingResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<StopPlaytimeTrackingResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle SubmitItemUpdate( UGCUpdateHandle_t handle /*UGCUpdateHandle_t*/, string pchChangeNote /*const char **/, Action<SubmitItemUpdateResult_t, bool> CallbackFunction = null /*Action<SubmitItemUpdateResult_t, bool>*/ )
public CallResult<SubmitItemUpdateResult_t> SubmitItemUpdate( UGCUpdateHandle_t handle /*UGCUpdateHandle_t*/, string pchChangeNote /*const char **/, Action<SubmitItemUpdateResult_t, bool> CallbackFunction = null /*Action<SubmitItemUpdateResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_SubmitItemUpdate( handle.Value, pchChangeNote );
@ -653,11 +653,11 @@ public CallbackHandle SubmitItemUpdate( UGCUpdateHandle_t handle /*UGCUpdateHand
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return SubmitItemUpdateResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<SubmitItemUpdateResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle SubscribeItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<RemoteStorageSubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSubscribePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageSubscribePublishedFileResult_t> SubscribeItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<RemoteStorageSubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageSubscribePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_SubscribeItem( nPublishedFileID.Value );
@ -665,7 +665,7 @@ public CallbackHandle SubscribeItem( PublishedFileId_t nPublishedFileID /*Publis
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageSubscribePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageSubscribePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// void
@ -675,7 +675,7 @@ public void SuspendDownloads( bool bSuspend /*bool*/ )
}
// SteamAPICall_t
public CallbackHandle UnsubscribeItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<RemoteStorageUnsubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUnsubscribePublishedFileResult_t, bool>*/ )
public CallResult<RemoteStorageUnsubscribePublishedFileResult_t> UnsubscribeItem( PublishedFileId_t nPublishedFileID /*PublishedFileId_t*/, Action<RemoteStorageUnsubscribePublishedFileResult_t, bool> CallbackFunction = null /*Action<RemoteStorageUnsubscribePublishedFileResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUGC_UnsubscribeItem( nPublishedFileID.Value );
@ -683,7 +683,7 @@ public CallbackHandle UnsubscribeItem( PublishedFileId_t nPublishedFileID /*Publ
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return RemoteStorageUnsubscribePublishedFileResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<RemoteStorageUnsubscribePublishedFileResult_t>( steamworks, callback, CallbackFunction );
}
// bool

View File

@ -138,7 +138,7 @@ public HSteamUser GetHSteamUser()
}
// SteamAPICall_t
public CallbackHandle GetMarketEligibility( Action<MarketEligibilityResponse_t, bool> CallbackFunction = null /*Action<MarketEligibilityResponse_t, bool>*/ )
public CallResult<MarketEligibilityResponse_t> GetMarketEligibility( Action<MarketEligibilityResponse_t, bool> CallbackFunction = null /*Action<MarketEligibilityResponse_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUser_GetMarketEligibility();
@ -146,7 +146,7 @@ public CallbackHandle GetMarketEligibility( Action<MarketEligibilityResponse_t,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return MarketEligibilityResponse_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<MarketEligibilityResponse_t>( steamworks, callback, CallbackFunction );
}
// int
@ -192,7 +192,7 @@ public int InitiateGameConnection( IntPtr pAuthBlob /*void **/, int cbMaxAuthBlo
}
// SteamAPICall_t
public CallbackHandle RequestEncryptedAppTicket( IntPtr pDataToInclude /*void **/, int cbDataToInclude /*int*/, Action<EncryptedAppTicketResponse_t, bool> CallbackFunction = null /*Action<EncryptedAppTicketResponse_t, bool>*/ )
public CallResult<EncryptedAppTicketResponse_t> RequestEncryptedAppTicket( IntPtr pDataToInclude /*void **/, int cbDataToInclude /*int*/, Action<EncryptedAppTicketResponse_t, bool> CallbackFunction = null /*Action<EncryptedAppTicketResponse_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUser_RequestEncryptedAppTicket( (IntPtr) pDataToInclude, cbDataToInclude );
@ -200,11 +200,11 @@ public CallbackHandle RequestEncryptedAppTicket( IntPtr pDataToInclude /*void **
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return EncryptedAppTicketResponse_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<EncryptedAppTicketResponse_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RequestStoreAuthURL( string pchRedirectURL /*const char **/, Action<StoreAuthURLResponse_t, bool> CallbackFunction = null /*Action<StoreAuthURLResponse_t, bool>*/ )
public CallResult<StoreAuthURLResponse_t> RequestStoreAuthURL( string pchRedirectURL /*const char **/, Action<StoreAuthURLResponse_t, bool> CallbackFunction = null /*Action<StoreAuthURLResponse_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUser_RequestStoreAuthURL( pchRedirectURL );
@ -212,7 +212,7 @@ public CallbackHandle RequestStoreAuthURL( string pchRedirectURL /*const char **
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return StoreAuthURLResponse_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<StoreAuthURLResponse_t>( steamworks, callback, CallbackFunction );
}
// void

View File

@ -42,7 +42,7 @@ public virtual void Dispose()
}
// SteamAPICall_t
public CallbackHandle AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, UGCHandle_t hUGC /*UGCHandle_t*/, Action<LeaderboardUGCSet_t, bool> CallbackFunction = null /*Action<LeaderboardUGCSet_t, bool>*/ )
public CallResult<LeaderboardUGCSet_t> AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, UGCHandle_t hUGC /*UGCHandle_t*/, Action<LeaderboardUGCSet_t, bool> CallbackFunction = null /*Action<LeaderboardUGCSet_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_AttachLeaderboardUGC( hSteamLeaderboard.Value, hUGC.Value );
@ -50,7 +50,7 @@ public CallbackHandle AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardUGCSet_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardUGCSet_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -60,7 +60,7 @@ public bool ClearAchievement( string pchName /*const char **/ )
}
// SteamAPICall_t
public CallbackHandle DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, LeaderboardDataRequest eLeaderboardDataRequest /*ELeaderboardDataRequest*/, int nRangeStart /*int*/, int nRangeEnd /*int*/, Action<LeaderboardScoresDownloaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoresDownloaded_t, bool>*/ )
public CallResult<LeaderboardScoresDownloaded_t> DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, LeaderboardDataRequest eLeaderboardDataRequest /*ELeaderboardDataRequest*/, int nRangeStart /*int*/, int nRangeEnd /*int*/, Action<LeaderboardScoresDownloaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoresDownloaded_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_DownloadLeaderboardEntries( hSteamLeaderboard.Value, eLeaderboardDataRequest, nRangeStart, nRangeEnd );
@ -68,11 +68,11 @@ public CallbackHandle DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeade
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardScoresDownloaded_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardScoresDownloaded_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, IntPtr prgUsers /*class CSteamID **/, int cUsers /*int*/, Action<LeaderboardScoresDownloaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoresDownloaded_t, bool>*/ )
public CallResult<LeaderboardScoresDownloaded_t> DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, IntPtr prgUsers /*class CSteamID **/, int cUsers /*int*/, Action<LeaderboardScoresDownloaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoresDownloaded_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_DownloadLeaderboardEntriesForUsers( hSteamLeaderboard.Value, (IntPtr) prgUsers, cUsers );
@ -80,11 +80,11 @@ public CallbackHandle DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSt
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardScoresDownloaded_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardScoresDownloaded_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle FindLeaderboard( string pchLeaderboardName /*const char **/, Action<LeaderboardFindResult_t, bool> CallbackFunction = null /*Action<LeaderboardFindResult_t, bool>*/ )
public CallResult<LeaderboardFindResult_t> FindLeaderboard( string pchLeaderboardName /*const char **/, Action<LeaderboardFindResult_t, bool> CallbackFunction = null /*Action<LeaderboardFindResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_FindLeaderboard( pchLeaderboardName );
@ -92,11 +92,11 @@ public CallbackHandle FindLeaderboard( string pchLeaderboardName /*const char **
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardFindResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardFindResult_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle FindOrCreateLeaderboard( string pchLeaderboardName /*const char **/, LeaderboardSortMethod eLeaderboardSortMethod /*ELeaderboardSortMethod*/, LeaderboardDisplayType eLeaderboardDisplayType /*ELeaderboardDisplayType*/, Action<LeaderboardFindResult_t, bool> CallbackFunction = null /*Action<LeaderboardFindResult_t, bool>*/ )
public CallResult<LeaderboardFindResult_t> FindOrCreateLeaderboard( string pchLeaderboardName /*const char **/, LeaderboardSortMethod eLeaderboardSortMethod /*ELeaderboardSortMethod*/, LeaderboardDisplayType eLeaderboardDisplayType /*ELeaderboardDisplayType*/, Action<LeaderboardFindResult_t, bool> CallbackFunction = null /*Action<LeaderboardFindResult_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_FindOrCreateLeaderboard( pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType );
@ -104,7 +104,7 @@ public CallbackHandle FindOrCreateLeaderboard( string pchLeaderboardName /*const
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardFindResult_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardFindResult_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -241,7 +241,7 @@ public uint GetNumAchievements()
}
// SteamAPICall_t
public CallbackHandle GetNumberOfCurrentPlayers( Action<NumberOfCurrentPlayers_t, bool> CallbackFunction = null /*Action<NumberOfCurrentPlayers_t, bool>*/ )
public CallResult<NumberOfCurrentPlayers_t> GetNumberOfCurrentPlayers( Action<NumberOfCurrentPlayers_t, bool> CallbackFunction = null /*Action<NumberOfCurrentPlayers_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_GetNumberOfCurrentPlayers();
@ -249,7 +249,7 @@ public CallbackHandle GetNumberOfCurrentPlayers( Action<NumberOfCurrentPlayers_t
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return NumberOfCurrentPlayers_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<NumberOfCurrentPlayers_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -301,7 +301,7 @@ public bool RequestCurrentStats()
}
// SteamAPICall_t
public CallbackHandle RequestGlobalAchievementPercentages( Action<GlobalAchievementPercentagesReady_t, bool> CallbackFunction = null /*Action<GlobalAchievementPercentagesReady_t, bool>*/ )
public CallResult<GlobalAchievementPercentagesReady_t> RequestGlobalAchievementPercentages( Action<GlobalAchievementPercentagesReady_t, bool> CallbackFunction = null /*Action<GlobalAchievementPercentagesReady_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_RequestGlobalAchievementPercentages();
@ -309,11 +309,11 @@ public CallbackHandle RequestGlobalAchievementPercentages( Action<GlobalAchievem
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GlobalAchievementPercentagesReady_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GlobalAchievementPercentagesReady_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RequestGlobalStats( int nHistoryDays /*int*/, Action<GlobalStatsReceived_t, bool> CallbackFunction = null /*Action<GlobalStatsReceived_t, bool>*/ )
public CallResult<GlobalStatsReceived_t> RequestGlobalStats( int nHistoryDays /*int*/, Action<GlobalStatsReceived_t, bool> CallbackFunction = null /*Action<GlobalStatsReceived_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_RequestGlobalStats( nHistoryDays );
@ -321,11 +321,11 @@ public CallbackHandle RequestGlobalStats( int nHistoryDays /*int*/, Action<Globa
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return GlobalStatsReceived_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<GlobalStatsReceived_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICall_t
public CallbackHandle RequestUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<UserStatsReceived_t, bool> CallbackFunction = null /*Action<UserStatsReceived_t, bool>*/ )
public CallResult<UserStatsReceived_t> RequestUserStats( CSteamID steamIDUser /*class CSteamID*/, Action<UserStatsReceived_t, bool> CallbackFunction = null /*Action<UserStatsReceived_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_RequestUserStats( steamIDUser.Value );
@ -333,7 +333,7 @@ public CallbackHandle RequestUserStats( CSteamID steamIDUser /*class CSteamID*/,
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return UserStatsReceived_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<UserStatsReceived_t>( steamworks, callback, CallbackFunction );
}
// bool
@ -373,7 +373,7 @@ public bool UpdateAvgRateStat( string pchName /*const char **/, float flCountThi
}
// SteamAPICall_t
public CallbackHandle UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, LeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod /*ELeaderboardUploadScoreMethod*/, int nScore /*int32*/, int[] pScoreDetails /*const int32 **/, int cScoreDetailsCount /*int*/, Action<LeaderboardScoreUploaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoreUploaded_t, bool>*/ )
public CallResult<LeaderboardScoreUploaded_t> UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard /*SteamLeaderboard_t*/, LeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod /*ELeaderboardUploadScoreMethod*/, int nScore /*int32*/, int[] pScoreDetails /*const int32 **/, int cScoreDetailsCount /*int*/, Action<LeaderboardScoreUploaded_t, bool> CallbackFunction = null /*Action<LeaderboardScoreUploaded_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUserStats_UploadLeaderboardScore( hSteamLeaderboard.Value, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount );
@ -381,7 +381,7 @@ public CallbackHandle UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboa
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return LeaderboardScoreUploaded_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<LeaderboardScoreUploaded_t>( steamworks, callback, CallbackFunction );
}
}

View File

@ -48,7 +48,7 @@ public bool BOverlayNeedsPresent()
}
// SteamAPICall_t
public CallbackHandle CheckFileSignature( string szFileName /*const char **/, Action<CheckFileSignature_t, bool> CallbackFunction = null /*Action<CheckFileSignature_t, bool>*/ )
public CallResult<CheckFileSignature_t> CheckFileSignature( string szFileName /*const char **/, Action<CheckFileSignature_t, bool> CallbackFunction = null /*Action<CheckFileSignature_t, bool>*/ )
{
SteamAPICall_t callback = 0;
callback = platform.ISteamUtils_CheckFileSignature( szFileName );
@ -56,7 +56,7 @@ public CallbackHandle CheckFileSignature( string szFileName /*const char **/, Ac
if ( CallbackFunction == null ) return null;
if ( callback == 0 ) return null;
return CheckFileSignature_t.CallResult( steamworks, callback, CallbackFunction );
return new CallResult<CheckFileSignature_t>( steamworks, callback, CallbackFunction );
}
// SteamAPICallFailure

File diff suppressed because it is too large Load Diff

View File

@ -175,14 +175,14 @@ private void Detect_CallResult( List<Argument> argList, List<Argument> callargs
BeforeLines.Insert( 0, "SteamAPICall_t callback = 0;" );
ReturnVar = "callback";
ReturnType = $"CallbackHandle";
ReturnType = $"CallResult<{MethodDef.CallResult}>";
AfterLines.Add( "" );
AfterLines.Add( "if ( CallbackFunction == null ) return null;" );
AfterLines.Add("if ( callback == 0 ) return null;");
AfterLines.Add( "" );
AfterLines.Add( $"return {MethodDef.CallResult}.CallResult( steamworks, callback, CallbackFunction );" );
AfterLines.Add( $"return new CallResult<{MethodDef.CallResult}>( steamworks, callback, CallbackFunction );" );
}
private void Detect_StringArray( List<Argument> argList, List<Argument> callargs )
@ -303,7 +303,7 @@ private void Detect_ReturningStruct()
BeforeLines.Add( "IntPtr struct_pointer;" );
AfterLines.Add( $"if ( struct_pointer == IntPtr.Zero ) return default({ReturnType});" );
AfterLines.Add( $"return {ReturnType}.FromPointer( struct_pointer );" );
AfterLines.Add( $"return new {ReturnType}().Fill( struct_pointer );" );
}

View File

@ -60,110 +60,95 @@ void Structs()
//
StartBlock( $"public struct {c.Name}{(isCallback?" : Steamworks.ISteamCallback":"")}" );
{
if ( isCallback )
{
WriteLine( "internal const int CallbackId = " + c.CallbackId + ";" );
WriteLine( "public int GetCallbackId() => CallbackId;" );
WriteLine( "public int GetStructSize() => StructSize();" );
//
// The fields
//
StructFields( c.Fields );
WriteLine();
StartBlock( "public Steamworks.ISteamCallback Fill( IntPtr p, int size)" );
if ( isCallback )
{
WriteLine( "#region ISteamCallback" );
{
WriteLine( "return FromPointer( p ); // TODO - USE SIZE HERE SOMEHOW" );
WriteLine( $"public int GetCallbackId() => {c.CallbackId};" );
WriteLine( $"public int GetStructSize() => System.Runtime.InteropServices.Marshal.SizeOf( Platform.PackSmall ? typeof(Pack4) : typeof(Pack8) );" );
WriteLine( $"public Steamworks.ISteamCallback Fill( IntPtr p ) => Platform.PackSmall ? (({c.Name})(Pack4) Marshal.PtrToStructure( p, typeof(Pack4) )) : (({c.Name})(Pack8) Marshal.PtrToStructure( p, typeof(Pack8) ));" );
}
WriteLine( "#endregion" );
}
else
{
WriteLine( "#region Marshalling" );
{
WriteLine( $"public int GetStructSize() => System.Runtime.InteropServices.Marshal.SizeOf( Platform.PackSmall ? typeof(Pack4) : typeof(Pack8) );" );
WriteLine( $"public {c.Name} Fill( IntPtr p ) => Platform.PackSmall ? (({c.Name})(Pack4) Marshal.PtrToStructure( p, typeof(Pack4) )) : (({c.Name})(Pack8) Marshal.PtrToStructure( p, typeof(Pack8) ));" );
}
WriteLine( "#endregion" );
}
WriteLine( "#region Packed Versions" );
{
//
// Small packed struct (for osx, linux)
//
WriteLine( $"[StructLayout( LayoutKind.Sequential, Pack = 4 )]" );
StartBlock( $"public struct Pack4" );
{
StructFields( c.Fields );
//
// Implicit convert from PackSmall to regular
//
WriteLine();
Write( $"public static implicit operator {c.Name} ( {c.Name}.Pack4 d ) => " );
{
Write( $"new {c.Name}{{ " );
{
foreach ( var f in c.Fields )
{
Write( $"{CleanMemberName( f.Name )} = d.{CleanMemberName( f.Name )}," );
}
}
WriteLine( " };" );
}
}
EndBlock();
}
//
// The fields
//
StructFields( c.Fields );
WriteLine();
WriteLine( "//" );
WriteLine( "// Read this struct from a pointer, usually from Native. It will automatically do the awesome stuff." );
WriteLine( "//" );
WriteLine( $"internal static {c.Name} FromPointer( IntPtr p ) => " );
{
WriteLine( $" Platform.PackSmall ? (({c.Name})(Pack4) Marshal.PtrToStructure( p, typeof(Pack4) )) : (({c.Name})(Pack8) Marshal.PtrToStructure( p, typeof(Pack8) ));" );
}
WriteLine();
WriteLine( "//" );
WriteLine( "// Get the size of the structure we're going to be using." );
WriteLine( "//" );
StartBlock( $"internal static int StructSize()" );
{
WriteLine( $"return System.Runtime.InteropServices.Marshal.SizeOf( Platform.PackSmall ? typeof(Pack4) : typeof(Pack8) );" );
}
EndBlock();
// if ( defaultPack == 8 )
// defaultPack = 4;
//
// Small packed struct (for osx, linux)
//
WriteLine();
WriteLine( $"[StructLayout( LayoutKind.Sequential, Pack = 4 )]" );
StartBlock( $"public struct Pack4" );
{
StructFields( c.Fields );
//
// Implicit convert from PackSmall to regular
//
WriteLine();
Write( $"public static implicit operator {c.Name} ( {c.Name}.Pack4 d ) => " );
{
Write( $"new {c.Name}{{ " );
{
foreach ( var f in c.Fields )
{
Write( $"{CleanMemberName( f.Name )} = d.{CleanMemberName( f.Name )}," );
}
}
WriteLine( " };" );
}
}
EndBlock();
//
// Small packed struct (for osx, linux)
//
WriteLine();
WriteLine( $"[StructLayout( LayoutKind.Sequential, Pack = {defaultPack} )]" );
StartBlock( $"public struct Pack8" );
{
StructFields( c.Fields );
//
// Implicit convert from PackSmall to regular
// Small packed struct (for osx, linux)
//
WriteLine();
Write( $"public static implicit operator {c.Name} ( {c.Name}.Pack8 d ) => " );
WriteLine( $"[StructLayout( LayoutKind.Sequential, Pack = {defaultPack} )]" );
StartBlock( $"public struct Pack8" );
{
Write( $"new {c.Name}{{ " );
StructFields( c.Fields );
//
// Implicit convert from PackSmall to regular
//
WriteLine();
Write( $"public static implicit operator {c.Name} ( {c.Name}.Pack8 d ) => " );
{
foreach ( var f in c.Fields )
Write( $"new {c.Name}{{ " );
{
Write( $"{CleanMemberName( f.Name )} = d.{CleanMemberName( f.Name )}," );
foreach ( var f in c.Fields )
{
Write( $"{CleanMemberName( f.Name )} = d.{CleanMemberName( f.Name )}," );
}
}
WriteLine( " };" );
}
WriteLine( " };" );
}
EndBlock();
}
EndBlock();
if ( c.IsCallResult )
{
CallResult( c );
}
WriteLine( "#endregion" );
if ( !string.IsNullOrEmpty( c.CallbackId ) )
{
Callback( c );
callbackList.Add( c );
}
@ -177,7 +162,7 @@ void Structs()
{
foreach ( var c in callbackList )
{
WriteLine( $"{c.Name}.Register( steamworks );" );
WriteLine( $"new CallbackHandle<{c.Name}>( steamworks );" );
}
}
EndBlock();
@ -257,154 +242,5 @@ private void StructFields( SteamApiDefinition.StructDef.StructFields[] fields )
WriteLine( $"internal {t} {CleanMemberName( m.Name )}; // {m.Name} {m.Type}" );
}
}
private void Callback( SteamApiDefinition.StructDef c )
{
WriteLine();
StartBlock( $"internal static void Register( Facepunch.Steamworks.BaseSteamworks steamworks )" );
{
WriteLine( $"var handle = new CallbackHandle( steamworks );" );
WriteLine( $"" );
CallbackCall( c );
WriteLine( "" );
WriteLine( "//" );
WriteLine( "// Register the callback with Steam" );
WriteLine( "//" );
WriteLine( $"steamworks.native.api.SteamAPI_RegisterCallback( handle.PinnedCallback.AddrOfPinnedObject(), CallbackId );" );
WriteLine();
WriteLine( "steamworks.RegisterCallbackHandle( handle );" );
}
EndBlock();
WriteLine();
WriteLine( "[MonoPInvokeCallback]" );
WriteLine( "internal static void OnResultThis( IntPtr self, IntPtr param ){ OnResult( param ); }" );
WriteLine( "[MonoPInvokeCallback]" );
WriteLine( "internal static void OnResultWithInfoThis( IntPtr self, IntPtr param, bool failure, SteamNative.SteamAPICall_t call ){ OnResultWithInfo( param, failure, call ); }" );
WriteLine( "[MonoPInvokeCallback]" );
WriteLine( "internal static int OnGetSizeThis( IntPtr self ){ return OnGetSize(); }" );
WriteLine( "[MonoPInvokeCallback]" );
WriteLine( "internal static int OnGetSize(){ return StructSize(); }" );
WriteLine();
WriteLine( "[MonoPInvokeCallback]" );
StartBlock( "internal static void OnResult( IntPtr param )" );
{
WriteLine( $"OnResultWithInfo( param, false, 0 );" );
}
EndBlock();
WriteLine();
WriteLine( "[MonoPInvokeCallback]" );
StartBlock( "internal static void OnResultWithInfo( IntPtr param, bool failure, SteamNative.SteamAPICall_t call )" );
{
WriteLine( $"if ( failure ) return;" );
WriteLine();
WriteLine( "var value = FromPointer( param );" );
WriteLine();
WriteLine( "if ( Facepunch.Steamworks.Client.Instance != null )" );
WriteLine( $" Facepunch.Steamworks.Client.Instance.OnCallback<{c.Name}>( value );" );
WriteLine();
WriteLine( "if ( Facepunch.Steamworks.Server.Instance != null )" );
WriteLine( $" Facepunch.Steamworks.Server.Instance.OnCallback<{c.Name}>( value );" );
}
EndBlock();
}
private void CallResult( SteamApiDefinition.StructDef c )
{
WriteLine();
StartBlock( $"internal static CallResult<{c.Name}> CallResult( Facepunch.Steamworks.BaseSteamworks steamworks, SteamAPICall_t call, Action<{c.Name}, bool> CallbackFunction )" );
{
WriteLine( $"return new CallResult<{c.Name}>( steamworks, call, CallbackFunction, FromPointer, StructSize(), CallbackId );" );
}
EndBlock();
}
private void CallbackCall( SteamApiDefinition.StructDef c )
{
WriteLine( "//" );
WriteLine( "// Create the functions we need for the vtable" );
WriteLine( "//" );
StartBlock( "if ( Facepunch.Steamworks.Config.UseThisCall )" );
{
CallFunctions( c, "ThisCall", "_" );
}
Else();
{
CallFunctions( c, "StdCall", "" );
}
EndBlock();
WriteLine( "" );
WriteLine( "//" );
WriteLine( "// Create the callback object" );
WriteLine( "//" );
WriteLine( $"var cb = new Callback();" );
WriteLine( $"cb.vTablePtr = handle.vTablePtr;" );
WriteLine( $"cb.CallbackFlags = steamworks.IsGameServer ? (byte) SteamNative.Callback.Flags.GameServer : (byte) 0;" );
WriteLine( $"cb.CallbackId = CallbackId;" );
WriteLine( "" );
WriteLine( "//" );
WriteLine( "// Pin the callback, so it doesn't get garbage collected and we can pass the pointer to native" );
WriteLine( "//" );
WriteLine( $"handle.PinnedCallback = GCHandle.Alloc( cb, GCHandleType.Pinned );" );
}
private void CallFunctions( SteamApiDefinition.StructDef c, string ThisCall, string ThisArg )
{
var ThisArgC = ThisArg.Length > 0 ? $"{ThisArg}, " : "";
var This = ThisArg.Length > 0 ? "This" : "";
WriteLine( "//" );
WriteLine( "// Create the VTable by manually allocating the memory and copying across" );
WriteLine( "//" );
StartBlock( "if ( Platform.IsWindows )" );
{
WriteLine( $"handle.vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTableWin{This} ) ) );" );
StartBlock( $"var vTable = new Callback.VTableWin{This}" );
{
WriteLine( $"ResultA = OnResult{This}," );
WriteLine( $"ResultB = OnResultWithInfo{This}," );
WriteLine( $"GetSize = OnGetSize{This}," );
}
EndBlock( ";" );
WriteLine( "handle.FuncA = GCHandle.Alloc( vTable.ResultA );" );
WriteLine( "handle.FuncB = GCHandle.Alloc( vTable.ResultB );" );
WriteLine( "handle.FuncC = GCHandle.Alloc( vTable.GetSize );" );
WriteLine( "Marshal.StructureToPtr( vTable, handle.vTablePtr, false );" );
}
Else();
{
WriteLine( $"handle.vTablePtr = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Callback.VTable{This} ) ) );" );
StartBlock( $"var vTable = new Callback.VTable{This}" );
{
WriteLine( $"ResultA = OnResult{This}," );
WriteLine( $"ResultB = OnResultWithInfo{This}," );
WriteLine( $"GetSize = OnGetSize{This}," );
}
EndBlock( ";" );
WriteLine( "handle.FuncA = GCHandle.Alloc( vTable.ResultA );" );
WriteLine( "handle.FuncB = GCHandle.Alloc( vTable.ResultB );" );
WriteLine( "handle.FuncC = GCHandle.Alloc( vTable.GetSize );" );
WriteLine( "Marshal.StructureToPtr( vTable, handle.vTablePtr, false );" );
}
EndBlock();
}
}
}