using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun.RecRoomCustom; using RecRoom.Core; using RecRoom.Core.DataStructures; using UnityEngine; namespace RecRoom.Networking { // Token: 0x0200226C RID: 8812 [Token(Token = "0x200226C")] [StructLayout(3)] public class NetworkCullingArea : SingletonMonoBehaviour, INetworkCullingArea { // Token: 0x170028CA RID: 10442 // (get) Token: 0x0600F27A RID: 62074 RVA: 0x00395BCC File Offset: 0x00393DCC // (set) Token: 0x0600F27B RID: 62075 RVA: 0x00395BE0 File Offset: 0x00393DE0 [Token(Token = "0x170028CA")] public InterestGroupMember GBJKDHJEMGB { [Token(Token = "0x600F27A")] [Address(RVA = "0x3EE8E0", Offset = "0x3ED2E0", VA = "0x1803EE8E0")] get; [Token(Token = "0x600F27B")] [Address(RVA = "0x421E00", Offset = "0x420800", VA = "0x180421E00")] set; } // Token: 0x170028CB RID: 10443 // (get) Token: 0x0600F27C RID: 62076 RVA: 0x00395BF4 File Offset: 0x00393DF4 // (set) Token: 0x0600F27D RID: 62077 RVA: 0x00395C08 File Offset: 0x00393E08 [Token(Token = "0x170028CB")] public List IPJHMGCJCLI { [Token(Token = "0x600F27C")] [Address(RVA = "0x3D32F0", Offset = "0x3D1CF0", VA = "0x1803D32F0")] get; [Token(Token = "0x600F27D")] [Address(RVA = "0x3D3460", Offset = "0x3D1E60", VA = "0x1803D3460")] private set; } // Token: 0x170028CC RID: 10444 // (get) Token: 0x0600F27E RID: 62078 RVA: 0x00395C1C File Offset: 0x00393E1C [Token(Token = "0x170028CC")] public bool OPPJPDCMKKJ { [Token(Token = "0x600F27E")] [Address(RVA = "0xFA0250", Offset = "0xF9EC50", VA = "0x180FA0250")] get { NetworkCullingOverride instance = SingletonMonoBehaviour.Instance; int num = 0; return instance == num || !SingletonMonoBehaviour.Instance.DisableNetworkLODCulling; } } // Token: 0x170028CD RID: 10445 // (get) Token: 0x0600F27F RID: 62079 RVA: 0x00395C50 File Offset: 0x00393E50 // (set) Token: 0x0600F280 RID: 62080 RVA: 0x00395C64 File Offset: 0x00393E64 [Token(Token = "0x170028CD")] public int LLPAPOMPCHN { [Token(Token = "0x600F27F")] [Address(RVA = "0x4F8170", Offset = "0x4F6B70", VA = "0x1804F8170")] get; [Token(Token = "0x600F280")] [Address(RVA = "0x4F8620", Offset = "0x4F7020", VA = "0x1804F8620")] private set; } // Token: 0x170028CE RID: 10446 // (get) Token: 0x0600F281 RID: 62081 RVA: 0x00395C78 File Offset: 0x00393E78 // (set) Token: 0x0600F282 RID: 62082 RVA: 0x00395C8C File Offset: 0x00393E8C [Token(Token = "0x170028CE")] public SpatialTree EFPPGCLHHLN { [Token(Token = "0x600F281")] [Address(RVA = "0x3EDE90", Offset = "0x3EC890", VA = "0x1803EDE90")] get; [Token(Token = "0x600F282")] [Address(RVA = "0x3EDEC0", Offset = "0x3EC8C0", VA = "0x1803EDEC0")] private set; } // Token: 0x0600F283 RID: 62083 RVA: 0x00395CA0 File Offset: 0x00393EA0 [Token(Token = "0x600F283")] [Address(RVA = "0xF9FFE0", Offset = "0xF9E9E0", VA = "0x180F9FFE0")] protected void Start() { float dynamicUpdateFrequency = this.DynamicUpdateFrequency; Action action = new Action(this.RecomputeCullingAreaBounds); IDisposable disposable = ScheduledUpdateMonoBehaviourExtensions.UpdateAtRate(this, dynamicUpdateFrequency, action); this.OJNCFPAHEIG = disposable; } // Token: 0x0600F284 RID: 62084 RVA: 0x00395CD4 File Offset: 0x00393ED4 [Token(Token = "0x600F284")] [Address(RVA = "0xF9F460", Offset = "0xF9DE60", VA = "0x180F9F460", Slot = "5")] protected override void OnDestroy() { if (this.OJNCFPAHEIG != 0) { } this.OJNCFPAHEIG = (ulong)0L; base.OnDestroy(); } // Token: 0x0600F285 RID: 62085 RVA: 0x00395CFC File Offset: 0x00393EFC [Token(Token = "0x600F285")] [Address(RVA = "0xF9F4C0", Offset = "0xF9DEC0", VA = "0x180F9F4C0")] public void OnDrawGizmos() { InterestGroupMember interestGroupMember = this.k__BackingField; int num = 0; if (!(interestGroupMember == num)) { SpatialTree spatialTree = this.k__BackingField; if (spatialTree != 0) { SpatialTreeNode.DebugVisualizationType visualizationType = this.VisualizationType; spatialTree.EditorDraw(visualizationType); } } } // Token: 0x0600F286 RID: 62086 RVA: 0x00395D38 File Offset: 0x00393F38 [Token(Token = "0x600F286")] [Address(RVA = "0xF9EF20", Offset = "0xF9D920", VA = "0x180F9EF20")] public NetworkCullingArea.HIELABABANC GetInterestRegion(Vector3 DDHPAFKBMON) { int num = 0; if (this.k__BackingField != num) { InterestGroupMember interestGroupMember = this.k__BackingField; int num2 = 0; if (!(interestGroupMember == num2)) { List activeCells = this.k__BackingField.ActiveCells; throw new NullReferenceException(); } } return NetworkCullingArea.HIELABABANC.High; } // Token: 0x0600F287 RID: 62087 RVA: 0x00395DC8 File Offset: 0x00393FC8 [Token(Token = "0x600F287")] [Address(RVA = "0xF9F170", Offset = "0xF9DB70", VA = "0x180F9F170")] public void GetNearbyCells(Vector3 DDHPAFKBMON, float COINKFIPBLL, float AFDLECJAJIB, ref List LLCIDEKMKBG) { if (this.k__BackingField != 0) { float z = DDHPAFKBMON.z; } } // Token: 0x0600F288 RID: 62088 RVA: 0x00395DE8 File Offset: 0x00393FE8 [Token(Token = "0x600F288")] [Address(RVA = "0xF9EB50", Offset = "0xF9D550", VA = "0x180F9EB50", Slot = "6")] public void GetExactCells(Vector3 DDHPAFKBMON, List LLCIDEKMKBG) { if (this.k__BackingField != (ulong)0L) { ulong num; LLCIDEKMKBG.Add(num); int num2 = 0; SpatialTree spatialTree = this.k__BackingField; SpatialTree spatialTree2 = this.k__BackingField; Vector2 one = Vector2.one; if (this.NumberOfSubdivisions > num2) { Vector2[] subdivisions = this.Subdivisions; num += (ulong)num2; uint num3; num += (ulong)num3; LLCIDEKMKBG.Add(num); num2++; num3 += (uint)num2; } } } // Token: 0x0600F289 RID: 62089 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600F289")] [Address(RVA = "0xF9EE40", Offset = "0xF9D840", VA = "0x180F9EE40", Slot = "7")] public byte GetGroup(ref int CCKAEGKJAMC, List GOIABCIPPHN) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600F28A RID: 62090 RVA: 0x00395E60 File Offset: 0x00394060 [Token(Token = "0x600F28A")] [Address(RVA = "0xF9F240", Offset = "0xF9DC40", VA = "0x180F9F240")] public bool IsInHighInterestRegion(Vector3 DDHPAFKBMON) { int num = 0; if (this.k__BackingField != num) { InterestGroupMember interestGroupMember = this.k__BackingField; int num2 = 0; if (!(interestGroupMember == num2)) { List activeCells = this.k__BackingField.ActiveCells; throw new NullReferenceException(); } } throw new NullReferenceException(); } // Token: 0x0600F28B RID: 62091 RVA: 0x00395ED0 File Offset: 0x003940D0 [Token(Token = "0x600F28B")] [Address(RVA = "0xF9F540", Offset = "0xF9DF40", VA = "0x180F9F540")] public void RecomputeCullingAreaBounds(float POGAEJIEPIM) { int num; int num9; do { num = 0; int length = this.Subdivisions.Length; uint num2; uint num4; if (num < length) { uint num3; num2 = num3 * (uint)num; num4 = num3 * (uint)num; num++; } uint num5 = num4 * num2; this.k__BackingField = (int)num5; NetworkCullingOverride instance = SingletonMonoBehaviour.Instance; int num6 = 0; if (!(instance == num6) && (SingletonMonoBehaviour.Instance.DisableNetworkLODCulling ? 1 : 0) != num) { goto IL_E1; } int num7 = 0; List all = Player.All; List.Enumerator enumerator; if (enumerator != 0) { if (num7 != 0) { } Vector3 zero = Vector3.zero; } if (num != -1) { ulong num8; if (num8 == (ulong)0L) { return; } int numberOfSubdivisions = this.NumberOfSubdivisions; Vector2 vector = this.Subdivisions[numberOfSubdivisions]; Vector3 vector2; float z = vector2.z; Vector3 vector3; float z2 = vector3.z; List list = this.k__BackingField; List.Enumerator enumerator2; if (enumerator2 == 0) { goto IL_BC; } } if (num != 0) { continue; } IL_BC: num++; num9 = 0; if (num != -1) { } } while (num != 0); SpatialTree spatialTree; this.k__BackingField = spatialTree; Debug.LogError("Failed to build spatial tree correctly - network culling will not work as intended"); return; IL_E1: this.k__BackingField = num9; throw new NullReferenceException(); } // Token: 0x0600F28C RID: 62092 RVA: 0x00395FCC File Offset: 0x003941CC [Token(Token = "0x600F28C")] [Address(RVA = "0xF9EA50", Offset = "0xF9D450", VA = "0x180F9EA50")] private Vector2 DAHGNKJKHBF() { float minimumCellSize = this.MinimumCellSize; int numberOfSubdivisions = this.NumberOfSubdivisions; Vector2 vector = this.Subdivisions[numberOfSubdivisions]; throw new NullReferenceException(); } // Token: 0x0600F28D RID: 62093 RVA: 0x00395FFC File Offset: 0x003941FC [Token(Token = "0x600F28D")] [Address(RVA = "0xF9F1C0", Offset = "0xF9DBC0", VA = "0x180F9F1C0")] private bool ICEFGLOFEPH() { Vector2[] subdivisions = this.Subdivisions; int num = 0; int length = subdivisions.Length; if (num < length) { num++; } this.k__BackingField = (int)((uint)1); return (ulong)((uint)1) <= (ulong)249L; } // Token: 0x0600F28E RID: 62094 RVA: 0x00396040 File Offset: 0x00394240 [Token(Token = "0x600F28E")] [Address(RVA = "0xFA0070", Offset = "0xF9EA70", VA = "0x180FA0070")] public NetworkCullingArea() { int[] array = new int[4]; RuntimeHelpers.InitializeArray(array, fieldof(.8658990BAD6546E619D8A5C4F90BCF3F089E0953).FieldHandle); this.SUBDIVISION_FIRST_LEVEL_ORDER = array; int[] array2 = new int[8]; RuntimeHelpers.InitializeArray(array2, fieldof(.739C505E9F0985CE1E08892BC46BE5E839FF061A).FieldHandle); this.SUBDIVISION_SECOND_LEVEL_ORDER = array2; int[] array3 = new int[12]; RuntimeHelpers.InitializeArray(array3, fieldof(.35FDBB6669F521B572D4AD71DD77E77F43C1B71B).FieldHandle); this.SUBDIVISION_THIRD_LEVEL_ORDER = array3; this.VisualizationType = (SpatialTreeNode.DebugVisualizationType)((ulong)3L); List list = new List(); this.IPJHMGCJCLI = list; this.MinimumCellSize = 2.5f; this.UpdateDynamically = true; this.DynamicUpdateFrequency = 1f; Vector2[] array4 = new Vector2[3]; this.Subdivisions = array4; float z = Vector3.zero.z; float z2 = Vector3.zero.z; int num = 0; this.JJOBMPIJJML = num; base..ctor(); } // Token: 0x0400A1BD RID: 41405 [Token(Token = "0x400A1BD")] public const int MAX_CELL_INDEX = 250; // Token: 0x0400A1BE RID: 41406 [Token(Token = "0x400A1BE")] public const int MAX_CELL_COUNT = 249; // Token: 0x0400A1BF RID: 41407 [Token(Token = "0x400A1BF")] public const byte FIRST_GROUP_ID = 1; // Token: 0x0400A1C0 RID: 41408 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400A1C0")] public readonly int[] SUBDIVISION_FIRST_LEVEL_ORDER; // Token: 0x0400A1C1 RID: 41409 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400A1C1")] public readonly int[] SUBDIVISION_SECOND_LEVEL_ORDER; // Token: 0x0400A1C2 RID: 41410 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x400A1C2")] public readonly int[] SUBDIVISION_THIRD_LEVEL_ORDER; // Token: 0x0400A1C3 RID: 41411 [Token(Token = "0x400A1C3")] private const double MMGHMNJDPAE = 0.0001; // Token: 0x0400A1C4 RID: 41412 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x400A1C4")] public SpatialTreeNode.DebugVisualizationType VisualizationType; // Token: 0x0400A1C7 RID: 41415 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400A1C7")] public float MinimumCellSize; // Token: 0x0400A1C8 RID: 41416 [global::Cpp2IlInjected.FieldOffset(Offset = "0x4C")] [Token(Token = "0x400A1C8")] public bool UpdateDynamically; // Token: 0x0400A1C9 RID: 41417 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x400A1C9")] public float DynamicUpdateFrequency; // Token: 0x0400A1CA RID: 41418 [global::Cpp2IlInjected.FieldOffset(Offset = "0x54")] [Token(Token = "0x400A1CA")] public int NumberOfSubdivisions; // Token: 0x0400A1CD RID: 41421 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400A1CD")] public Vector2[] Subdivisions; // Token: 0x0400A1CE RID: 41422 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x400A1CE")] private Bounds JJOBMPIJJML; // Token: 0x0400A1CF RID: 41423 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x400A1CF")] private IDisposable OJNCFPAHEIG; // Token: 0x0200226D RID: 8813 [Token(Token = "0x200226D")] public enum HIELABABANC { // Token: 0x0400A1D1 RID: 41425 [Token(Token = "0x400A1D1")] Global, // Token: 0x0400A1D2 RID: 41426 [Token(Token = "0x400A1D2")] Low, // Token: 0x0400A1D3 RID: 41427 [Token(Token = "0x400A1D3")] High } } }