Files
2026-04-08 23:40:05 +02:00

429 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Threading;
using Cpp2IlInjected;
using UnityEngine;
namespace Steamworks
{
// Token: 0x02001089 RID: 4233
[Token(Token = "0x2001089")]
[StructLayout(3)]
public static class CallbackDispatcher
{
// Token: 0x06006738 RID: 26424 RVA: 0x0016A030 File Offset: 0x00168230
[Token(Token = "0x6006738")]
[Address(RVA = "0x1D5DBE0", Offset = "0x1D5C5E0", VA = "0x181D5DBE0")]
public static void ExceptionHandler(Exception e)
{
Debug.LogException(e);
}
// Token: 0x17001283 RID: 4739
// (get) Token: 0x06006739 RID: 26425 RVA: 0x0016A044 File Offset: 0x00168244
[Token(Token = "0x17001283")]
public static bool IsInitialized
{
[Token(Token = "0x6006739")]
[Address(RVA = "0x1D5FB40", Offset = "0x1D5E540", VA = "0x181D5FB40")]
get
{
return "{il2cpp field on {'constant10' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StaticFieldsPtr)}, offset 0x28}" > (ulong)0L;
}
}
// Token: 0x0600673A RID: 26426 RVA: 0x0016A05C File Offset: 0x0016825C
[Token(Token = "0x600673A")]
[Address(RVA = "0x1D5DC40", Offset = "0x1D5C640", VA = "0x181D5DC40")]
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);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600673B RID: 26427 RVA: 0x0016A0A0 File Offset: 0x001682A0
[Token(Token = "0x600673B")]
[Address(RVA = "0x1D5ECC0", Offset = "0x1D5D6C0", VA = "0x181D5ECC0")]
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);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600673C RID: 26428 RVA: 0x0016A0DC File Offset: 0x001682DC
[Token(Token = "0x600673C")]
[Address(RVA = "0x1D5DE40", Offset = "0x1D5C840", VA = "0x181D5DE40")]
internal static void Register(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))
{
List<Callback> list = new List();
registeredCallbacks.Add(num3, list);
}
Monitor.Exit(sync);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600673D RID: 26429 RVA: 0x0016A144 File Offset: 0x00168344
[Token(Token = "0x600673D")]
[Address(RVA = "0x1D5E070", Offset = "0x1D5CA70", VA = "0x181D5E070")]
internal static void Register(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)
{
List<CallResult> list = new List();
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
}
Monitor.Exit(sync);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600673E RID: 26430 RVA: 0x0016A194 File Offset: 0x00168394
[Token(Token = "0x600673E")]
[Address(RVA = "0x1D5F830", Offset = "0x1D5E230", VA = "0x181D5F830")]
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);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600673F RID: 26431 RVA: 0x0016A1FC File Offset: 0x001683FC
[Token(Token = "0x600673F")]
[Address(RVA = "0x1D5F5F0", Offset = "0x1D5DFF0", VA = "0x181D5F5F0")]
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);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x06006740 RID: 26432 RVA: 0x0016A248 File Offset: 0x00168448
[Token(Token = "0x6006740")]
[Address(RVA = "0x1D5EE60", Offset = "0x1D5D860", VA = "0x181D5EE60")]
private static void UnregisterAll()
{
for (;;)
{
int 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;
Dictionary.Enumerator enumerator;
if (enumerator != 0)
{
}
if (num == -1)
{
goto IL_3A;
}
CallbackDispatcher.m_registeredCallbacks.Clear();
Dictionary<int, List<Callback>> registeredGameServerCallbacks = CallbackDispatcher.m_registeredGameServerCallbacks;
Dictionary.Enumerator enumerator2;
if (enumerator2 != 0)
{
goto IL_3A;
}
IL_41:
num++;
if (num == -1)
{
goto IL_5F;
}
CallbackDispatcher.m_registeredGameServerCallbacks.Clear();
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
Dictionary.Enumerator enumerator3;
if (enumerator3 != 0)
{
goto IL_5F;
}
IL_63:
num++;
if (num == -1)
{
goto IL_87;
}
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
registeredCallResults2.Clear();
List.Enumerator enumerator4;
if (enumerator4 != 0)
{
ICollection<ulong> collection = registeredCallResults2.System.Collections.Generic.IDictionary<TKey,TValue>.get_Keys();
goto IL_87;
}
IL_8B:
num++;
List.Enumerator enumerator5;
if ((num == -1 || enumerator5 != 0) && num != 0)
{
goto IL_D3;
}
num++;
if (num != -1)
{
}
if (num != 0)
{
goto IL_D9;
}
Monitor.Exit(registeredCallResults2);
if (num != -1)
{
}
if (num == 0)
{
break;
}
continue;
IL_87:
if (num == 0)
{
goto IL_8B;
}
goto IL_CD;
IL_5F:
if (num == 0)
{
goto IL_63;
}
goto IL_C7;
IL_3A:
if (num == 0)
{
goto IL_41;
}
goto IL_C1;
}
return;
IL_C1:
throw new NullReferenceException();
IL_C7:
throw new NullReferenceException();
IL_CD:
throw new NullReferenceException();
IL_D3:
throw new NullReferenceException();
IL_D9:
throw new NullReferenceException();
}
// Token: 0x06006741 RID: 26433 RVA: 0x0016A360 File Offset: 0x00168560
[Token(Token = "0x6006741")]
[Address(RVA = "0x1D5E2C0", Offset = "0x1D5CCC0", VA = "0x181D5E2C0")]
internal static void RunFrame(bool isGameServer)
{
for (;;)
{
int num = 0;
if (isGameServer)
{
int num2 = NativeMethods.SteamGameServer_GetHSteamPipe();
}
int num3 = NativeMethods.SteamAPI_GetHSteamPipe();
if (isGameServer)
{
}
bool flag;
if (flag)
{
IntPtr pCallbackMsg = CallbackDispatcher.m_pCallbackMsg;
Type typeFromHandle = typeof(CallbackMsg_t);
object obj = Marshal.PtrToStructure(pCallbackMsg, typeFromHandle);
bool flag2;
if (!flag2)
{
goto IL_E3;
}
object sync = CallbackDispatcher.m_sync;
uint num4;
num4 += (uint)1;
Monitor.Exit(sync);
List.Enumerator enumerator;
if ((num4 == (uint)(-1) || enumerator != 0) && num != 0)
{
goto IL_FE;
}
num4 += (uint)1;
if (num4 != (uint)(-1))
{
}
if (num == 0)
{
Type typeFromHandle2 = typeof(SteamAPICallCompleted_t);
object obj2 = Marshal.PtrToStructure(typeof(Marshal).TypeHandle, typeFromHandle2);
bool flag3;
if (flag3)
{
object sync2 = CallbackDispatcher.m_sync;
Dictionary<ulong, List<CallResult>> registeredCallResults = CallbackDispatcher.m_registeredCallResults;
bool flag4;
if (flag4)
{
Dictionary<ulong, List<CallResult>> registeredCallResults2 = CallbackDispatcher.m_registeredCallResults;
List.Enumerator enumerator2;
if (enumerator2 != 0)
{
}
num4 += (uint)1;
if (num4 != (uint)(-1))
{
}
if (num != 0)
{
goto IL_116;
}
}
num4 += (uint)1;
Monitor.Exit(sync2);
if (num4 == (uint)(-1))
{
goto IL_E8;
}
}
IntPtr intPtr;
Marshal.FreeHGlobal(intPtr);
goto IL_E3;
}
goto IL_104;
IL_E8:
if (num != 0)
{
goto IL_128;
}
num4 += (uint)1;
if (num4 != (uint)(-1))
{
}
if (num == 0)
{
break;
}
continue;
IL_E3:
num4 += (uint)1;
goto IL_E8;
}
break;
}
return;
IL_FE:
throw new NullReferenceException();
IL_104:
throw new NullReferenceException();
IL_116:
throw new NullReferenceException();
IL_128:
throw new NullReferenceException();
}
// Token: 0x0400496A RID: 18794
[Token(Token = "0x400496A")]
private static Dictionary<int, List<Callback>> m_registeredCallbacks = new Dictionary();
// Token: 0x0400496B RID: 18795
[Token(Token = "0x400496B")]
private static Dictionary<int, List<Callback>> m_registeredGameServerCallbacks = new Dictionary();
// Token: 0x0400496C RID: 18796
[Token(Token = "0x400496C")]
private static Dictionary<ulong, List<CallResult>> m_registeredCallResults = new Dictionary();
// Token: 0x0400496D RID: 18797
[Token(Token = "0x400496D")]
private static object m_sync = new object();
// Token: 0x0400496E RID: 18798
[Token(Token = "0x400496E")]
private static IntPtr m_pCallbackMsg;
// Token: 0x0400496F RID: 18799
[Token(Token = "0x400496F")]
private static int m_initCount;
}
}