m
This commit is contained in:
@@ -0,0 +1,398 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using Cpp2IlInjected;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Steamworks
|
||||
{
|
||||
// Token: 0x02001788 RID: 6024
|
||||
[Token(Token = "0x2001788")]
|
||||
public static class CallbackDispatcher
|
||||
{
|
||||
// Token: 0x06008A7F RID: 35455 RVA: 0x001D49B0 File Offset: 0x001D2BB0
|
||||
[Token(Token = "0x6008A7F")]
|
||||
[Address(RVA = "0x210FA70", Offset = "0x210EA70", VA = "0x18210FA70")]
|
||||
public static void ExceptionHandler(Exception e)
|
||||
{
|
||||
Debug.LogException(e);
|
||||
}
|
||||
|
||||
// Token: 0x17001763 RID: 5987
|
||||
// (get) Token: 0x06008A80 RID: 35456 RVA: 0x001D49C4 File Offset: 0x001D2BC4
|
||||
[Token(Token = "0x17001763")]
|
||||
public static bool IsInitialized
|
||||
{
|
||||
[Token(Token = "0x6008A80")]
|
||||
[Address(RVA = "0x2111850", Offset = "0x2110850", VA = "0x182111850")]
|
||||
get
|
||||
{
|
||||
return "{il2cpp field on {'constant10' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StaticFieldsPtr)}, offset 0x28}" > (ulong)0L;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06008A81 RID: 35457 RVA: 0x001D49DC File Offset: 0x001D2BDC
|
||||
[Token(Token = "0x6008A81")]
|
||||
[Address(RVA = "0x210FAD0", Offset = "0x210EAD0", VA = "0x18210FAD0")]
|
||||
internal static void Initialize()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
NativeMethods.SteamAPI_ManualDispatch_Init();
|
||||
CallbackDispatcher.m_pCallbackMsg = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CallbackMsg_t)));
|
||||
Monitor.Exit(sync);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x06008A82 RID: 35458 RVA: 0x001D4A1C File Offset: 0x001D2C1C
|
||||
[Token(Token = "0x6008A82")]
|
||||
[Address(RVA = "0x2110AB0", Offset = "0x210FAB0", VA = "0x182110AB0")]
|
||||
internal static void Shutdown()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
CallbackDispatcher.UnregisterAll();
|
||||
Marshal.FreeHGlobal(CallbackDispatcher.m_pCallbackMsg);
|
||||
CallbackDispatcher.m_pCallbackMsg = (IntPtr)num;
|
||||
Monitor.Exit(sync);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x06008A83 RID: 35459 RVA: 0x001D4A54 File Offset: 0x001D2C54
|
||||
[Token(Token = "0x6008A83")]
|
||||
[Address(RVA = "0x210FCA0", Offset = "0x210ECA0", VA = "0x18210FCA0")]
|
||||
internal static void Register(Callback cb)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
bool isGameServer = cb.IsGameServer;
|
||||
if (cb.ToString() != 0)
|
||||
{
|
||||
}
|
||||
Dictionary<int, List<Callback>> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
int num2 = 0;
|
||||
int num3;
|
||||
if (!registeredCallbacks.TryGetValue(num3, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(sync);
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
List<Callback> list = new List();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06008A84 RID: 35460 RVA: 0x001D4AB4 File Offset: 0x001D2CB4
|
||||
[Token(Token = "0x6008A84")]
|
||||
[Address(RVA = "0x210FEA0", Offset = "0x210EEA0", VA = "0x18210FEA0")]
|
||||
internal static void Register(SteamAPICall_t asyncCall, CallResult cr)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
|
||||
bool flag;
|
||||
if (!flag)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(sync);
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
List<CallResult> list = new List();
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06008A85 RID: 35461 RVA: 0x001D4B04 File Offset: 0x001D2D04
|
||||
[Token(Token = "0x6008A85")]
|
||||
[Address(RVA = "0x2111580", Offset = "0x2110580", VA = "0x182111580")]
|
||||
internal static void Unregister(Callback cb)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
bool isGameServer = cb.IsGameServer;
|
||||
if (cb.ToString() != 0)
|
||||
{
|
||||
}
|
||||
Dictionary<int, List<Callback>> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
int num2 = 0;
|
||||
int num3;
|
||||
if (registeredCallbacks.TryGetValue(num3, num2))
|
||||
{
|
||||
bool flag = registeredCallbacks.Remove(num3);
|
||||
}
|
||||
Monitor.Exit(sync);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x06008A86 RID: 35462 RVA: 0x001D4B68 File Offset: 0x001D2D68
|
||||
[Token(Token = "0x6008A86")]
|
||||
[Address(RVA = "0x2111370", Offset = "0x2110370", VA = "0x182111370")]
|
||||
internal static void Unregister(SteamAPICall_t asyncCall, CallResult cr)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
|
||||
}
|
||||
Monitor.Exit(sync);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x06008A87 RID: 35463 RVA: 0x001D4BB0 File Offset: 0x001D2DB0
|
||||
[Token(Token = "0x6008A87")]
|
||||
[Address(RVA = "0x2110C30", Offset = "0x210FC30", VA = "0x182110C30")]
|
||||
private static void UnregisterAll()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
List<Callback> list = new List();
|
||||
List<CallResult> list2 = new List();
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
Dictionary<int, List<Callback>> registeredCallbacks = CallbackDispatcher.m_registeredCallbacks;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
CallbackDispatcher.m_registeredCallbacks.Clear();
|
||||
Dictionary<int, List<Callback>> registeredGameServerCallbacks = CallbackDispatcher.m_registeredGameServerCallbacks;
|
||||
bool flag2;
|
||||
if (flag2)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_C6;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
CallbackDispatcher.m_registeredGameServerCallbacks.Clear();
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
|
||||
bool flag3;
|
||||
if (flag3)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_CC;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
|
||||
registeredCallResults2.Clear();
|
||||
bool flag4;
|
||||
if (flag4)
|
||||
{
|
||||
ICollection<ulong> collection = registeredCallResults2.System.Collections.Generic.IDictionary<TKey,TValue>.get_Keys();
|
||||
}
|
||||
num++;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_D2;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
bool flag5;
|
||||
if (flag5)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_D8;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Monitor.Exit(registeredCallResults2);
|
||||
}
|
||||
while (num != 0);
|
||||
return;
|
||||
IL_C0:
|
||||
throw new NullReferenceException();
|
||||
IL_C6:
|
||||
throw new NullReferenceException();
|
||||
IL_CC:
|
||||
throw new NullReferenceException();
|
||||
IL_D2:
|
||||
throw new NullReferenceException();
|
||||
IL_D8:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06008A88 RID: 35464 RVA: 0x001D4CC4 File Offset: 0x001D2EC4
|
||||
[Token(Token = "0x6008A88")]
|
||||
[Address(RVA = "0x21100C0", Offset = "0x210F0C0", VA = "0x1821100C0")]
|
||||
internal static void RunFrame(bool isGameServer)
|
||||
{
|
||||
int num;
|
||||
uint num4;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (isGameServer)
|
||||
{
|
||||
int num2 = NativeMethods.SteamGameServer_GetHSteamPipe();
|
||||
}
|
||||
int num3 = NativeMethods.SteamAPI_GetHSteamPipe();
|
||||
if (isGameServer)
|
||||
{
|
||||
}
|
||||
bool flag;
|
||||
if (!flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
IntPtr pCallbackMsg = CallbackDispatcher.m_pCallbackMsg;
|
||||
Type typeFromHandle = typeof(CallbackMsg_t);
|
||||
object obj = Marshal.PtrToStructure(pCallbackMsg, typeFromHandle);
|
||||
bool flag2;
|
||||
if (flag2)
|
||||
{
|
||||
object sync = CallbackDispatcher.m_sync;
|
||||
num4 += (uint)1;
|
||||
Monitor.Exit(sync);
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_101;
|
||||
}
|
||||
if (num4 != (uint)(-1))
|
||||
{
|
||||
}
|
||||
bool flag3;
|
||||
if (flag3)
|
||||
{
|
||||
}
|
||||
num4 += (uint)1;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_107;
|
||||
}
|
||||
if (num4 != (uint)(-1))
|
||||
{
|
||||
Type typeFromHandle2 = typeof(SteamAPICallCompleted_t);
|
||||
object obj2 = Marshal.PtrToStructure(typeof(Marshal).TypeHandle, typeFromHandle2);
|
||||
bool flag4;
|
||||
if (flag4)
|
||||
{
|
||||
object sync2 = CallbackDispatcher.m_sync;
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
|
||||
bool flag5;
|
||||
if (flag5)
|
||||
{
|
||||
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
|
||||
bool flag6;
|
||||
if (flag6)
|
||||
{
|
||||
}
|
||||
num4 += (uint)1;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_119;
|
||||
}
|
||||
if (num4 != (uint)(-1))
|
||||
{
|
||||
}
|
||||
}
|
||||
num4 += (uint)1;
|
||||
Monitor.Exit(sync2);
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_12B;
|
||||
}
|
||||
if (num4 != (uint)(-1))
|
||||
{
|
||||
}
|
||||
}
|
||||
IntPtr intPtr;
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
}
|
||||
}
|
||||
num4 += (uint)1;
|
||||
num4 += (uint)1;
|
||||
}
|
||||
while (num != 0);
|
||||
if (num4 != (uint)(-1))
|
||||
{
|
||||
}
|
||||
return;
|
||||
IL_101:
|
||||
throw new NullReferenceException();
|
||||
IL_107:
|
||||
throw new NullReferenceException();
|
||||
IL_119:
|
||||
throw new NullReferenceException();
|
||||
IL_12B:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x04005AFE RID: 23294
|
||||
[Token(Token = "0x4005AFE")]
|
||||
private static Dictionary<int, List<Callback>> m_registeredCallbacks = new Dictionary();
|
||||
|
||||
// Token: 0x04005AFF RID: 23295
|
||||
[Token(Token = "0x4005AFF")]
|
||||
private static Dictionary<int, List<Callback>> m_registeredGameServerCallbacks = new Dictionary();
|
||||
|
||||
// Token: 0x04005B00 RID: 23296
|
||||
[Token(Token = "0x4005B00")]
|
||||
private static Dictionary<ulong, List<CallResult>> m_registeredCallResults = new Dictionary();
|
||||
|
||||
// Token: 0x04005B01 RID: 23297
|
||||
[Token(Token = "0x4005B01")]
|
||||
private static object m_sync = new object();
|
||||
|
||||
// Token: 0x04005B02 RID: 23298
|
||||
[Token(Token = "0x4005B02")]
|
||||
private static IntPtr m_pCallbackMsg;
|
||||
|
||||
// Token: 0x04005B03 RID: 23299
|
||||
[Token(Token = "0x4005B03")]
|
||||
private static int m_initCount;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user