using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using Cpp2IlInjected; using UnityEngine; namespace RecRoom.Networking { // Token: 0x020024A3 RID: 9379 [Token(Token = "0x20024A3")] public class NetworkCullingArea : SingletonMonoBehaviour, COLMCCFNBIA { // Token: 0x17002774 RID: 10100 // (get) Token: 0x0600F1B2 RID: 61874 RVA: 0x003787CC File Offset: 0x003769CC // (set) Token: 0x0600F1B3 RID: 61875 RVA: 0x003787E0 File Offset: 0x003769E0 [Token(Token = "0x17002774")] public InterestGroupMember GBJKDHJEMGB { [Token(Token = "0x600F1B2")] [Address(RVA = "0x3F63D0", Offset = "0x3F51D0", VA = "0x1803F63D0")] get; [Token(Token = "0x600F1B3")] [Address(RVA = "0x5329E0", Offset = "0x5317E0", VA = "0x1805329E0")] set; } // Token: 0x17002775 RID: 10101 // (get) Token: 0x0600F1B4 RID: 61876 RVA: 0x003787F4 File Offset: 0x003769F4 // (set) Token: 0x0600F1B5 RID: 61877 RVA: 0x00378808 File Offset: 0x00376A08 [Token(Token = "0x17002775")] public List IPJHMGCJCLI { [Token(Token = "0x600F1B4")] [Address(RVA = "0x408890", Offset = "0x407690", VA = "0x180408890")] get; [Token(Token = "0x600F1B5")] [Address(RVA = "0x403B30", Offset = "0x402930", VA = "0x180403B30")] private set; } // Token: 0x17002776 RID: 10102 // (get) Token: 0x0600F1B6 RID: 61878 RVA: 0x0037881C File Offset: 0x00376A1C [Token(Token = "0x17002776")] public bool OPPJPDCMKKJ { [Token(Token = "0x600F1B6")] [Address(RVA = "0x8BF540", Offset = "0x8BE340", VA = "0x1808BF540")] get { NetworkCullingOverride instance = SingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; return instance == num || !SingletonMonoBehaviour.ONCPNMDGGKG.DisableNetworkLODCulling; } } // Token: 0x17002777 RID: 10103 // (get) Token: 0x0600F1B7 RID: 61879 RVA: 0x00378850 File Offset: 0x00376A50 // (set) Token: 0x0600F1B8 RID: 61880 RVA: 0x00378864 File Offset: 0x00376A64 [Token(Token = "0x17002777")] public int LLPAPOMPCHN { [Token(Token = "0x600F1B7")] [Address(RVA = "0x3FA190", Offset = "0x3F8F90", VA = "0x1803FA190")] get; [Token(Token = "0x600F1B8")] [Address(RVA = "0x568560", Offset = "0x567360", VA = "0x180568560")] private set; } // Token: 0x17002778 RID: 10104 // (get) Token: 0x0600F1B9 RID: 61881 RVA: 0x00378878 File Offset: 0x00376A78 // (set) Token: 0x0600F1BA RID: 61882 RVA: 0x0037888C File Offset: 0x00376A8C [Token(Token = "0x17002778")] public OHFHKIPINGN EFPPGCLHHLN { [Token(Token = "0x600F1B9")] [Address(RVA = "0x423DE0", Offset = "0x422BE0", VA = "0x180423DE0")] get; [Token(Token = "0x600F1BA")] [Address(RVA = "0x567490", Offset = "0x566290", VA = "0x180567490")] private set; } // Token: 0x0600F1BB RID: 61883 RVA: 0x003788A0 File Offset: 0x00376AA0 [Token(Token = "0x600F1BB")] [Address(RVA = "0x8BF2D0", Offset = "0x8BE0D0", VA = "0x1808BF2D0")] protected void Start() { float dynamicUpdateFrequency = this.DynamicUpdateFrequency; Action action = new Action(this.RecomputeCullingAreaBounds); IDisposable disposable = ADIFCODGAML.FLMKKKHMJBN(this, dynamicUpdateFrequency, action); this.OJNCFPAHEIG = disposable; } // Token: 0x0600F1BC RID: 61884 RVA: 0x003788D4 File Offset: 0x00376AD4 [Token(Token = "0x600F1BC")] [Address(RVA = "0x8BE780", Offset = "0x8BD580", VA = "0x1808BE780", Slot = "5")] protected override void OnDestroy() { if (this.OJNCFPAHEIG != 0) { } this.OJNCFPAHEIG = (ulong)0L; base.OnDestroy(); } // Token: 0x0600F1BD RID: 61885 RVA: 0x003788FC File Offset: 0x00376AFC [Token(Token = "0x600F1BD")] [Address(RVA = "0x8BE7E0", Offset = "0x8BD5E0", VA = "0x1808BE7E0")] public void OnDrawGizmos() { InterestGroupMember interestGroupMember = this.k__BackingField; int num = 0; if (!(interestGroupMember == num)) { OHFHKIPINGN ohfhkipingn = this.k__BackingField; if (ohfhkipingn != 0) { MHJBJPJHPFD.HCMDPIPMANH visualizationType = this.VisualizationType; ohfhkipingn.GEPJEOGAEEH(visualizationType); } } } // Token: 0x0600F1BE RID: 61886 RVA: 0x00378938 File Offset: 0x00376B38 [Token(Token = "0x600F1BE")] [Address(RVA = "0x8BE250", Offset = "0x8BD050", VA = "0x1808BE250")] public NetworkCullingArea.HIELABABANC GetInterestRegion(Vector3 DDHPAFKBMON) { int num; bool flag; do { num = 0; if (this.k__BackingField == num) { return NetworkCullingArea.HIELABABANC.High; } InterestGroupMember interestGroupMember = this.k__BackingField; int num2 = 0; if (interestGroupMember == num2) { return NetworkCullingArea.HIELABABANC.High; } List activeCells = this.k__BackingField.ActiveCells; if (flag) { OHFHKIPINGN ohfhkipingn = this.k__BackingField; bool flag2; while (!flag2) { } MHJBJPJHPFD mhjbjpjhpfd; MHJBJPJHPFD.ENGKDHJBBKF dpdnblnnccg = mhjbjpjhpfd.DPDNBLNNCCG; if (dpdnblnnccg != MHJBJPJHPFD.ENGKDHJBBKF.Leaf) { while (dpdnblnnccg != MHJBJPJHPFD.ENGKDHJBBKF.Node) { } } } } while (flag); if (num != -1) { } return NetworkCullingArea.HIELABABANC.High; } // Token: 0x0600F1BF RID: 61887 RVA: 0x003789AC File Offset: 0x00376BAC [Token(Token = "0x600F1BF")] [Address(RVA = "0x8BE4A0", Offset = "0x8BD2A0", VA = "0x1808BE4A0")] public void GetNearbyCells(Vector3 DDHPAFKBMON, float COINKFIPBLL, float AFDLECJAJIB, ref List LLCIDEKMKBG) { if (this.k__BackingField != 0) { float z = DDHPAFKBMON.z; } } // Token: 0x0600F1C0 RID: 61888 RVA: 0x003789CC File Offset: 0x00376BCC [Token(Token = "0x600F1C0")] [Address(RVA = "0x8BDE80", Offset = "0x8BCC80", VA = "0x1808BDE80", Slot = "6")] public void GetExactCells(Vector3 DDHPAFKBMON, List LLCIDEKMKBG) { if (this.k__BackingField != (ulong)0L) { ulong num; LLCIDEKMKBG.Add(num); int num2 = 0; OHFHKIPINGN ohfhkipingn = this.k__BackingField; OHFHKIPINGN ohfhkipingn2 = 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: 0x0600F1C1 RID: 61889 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600F1C1")] [Address(RVA = "0x8BE170", Offset = "0x8BCF70", VA = "0x1808BE170", Slot = "7")] public byte GetGroup(ref int CCKAEGKJAMC, List GOIABCIPPHN) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600F1C2 RID: 61890 RVA: 0x00378A44 File Offset: 0x00376C44 [Token(Token = "0x600F1C2")] [Address(RVA = "0x8BE570", Offset = "0x8BD370", VA = "0x1808BE570")] public bool IsInHighInterestRegion(Vector3 DDHPAFKBMON) { int num; do { num = 0; if (this.k__BackingField == num) { goto IL_4E; } InterestGroupMember interestGroupMember = this.k__BackingField; int num2 = 0; if (interestGroupMember == num2) { goto IL_4E; } List activeCells = this.k__BackingField.ActiveCells; bool flag; if (flag) { OHFHKIPINGN ohfhkipingn = this.k__BackingField; MHJBJPJHPFD mhjbjpjhpfd; while (mhjbjpjhpfd.DPDNBLNNCCG != MHJBJPJHPFD.ENGKDHJBBKF.Leaf) { } bool flag2; while (!flag2) { } } } while (num != 0); if (num != -1) { } IL_4E: throw new NullReferenceException(); } // Token: 0x0600F1C3 RID: 61891 RVA: 0x00378AB0 File Offset: 0x00376CB0 [Token(Token = "0x600F1C3")] [Address(RVA = "0x8BE860", Offset = "0x8BD660", VA = "0x1808BE860")] public void RecomputeCullingAreaBounds(float POGAEJIEPIM) { int num9; for (;;) { int 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.ONCPNMDGGKG; int num6 = 0; if (!(instance == num6) && (SingletonMonoBehaviour.ONCPNMDGGKG.DisableNetworkLODCulling ? 1 : 0) != num) { goto IL_D6; } int num7 = 0; List all = Player.All; bool flag; if (flag) { if (num7 != 0) { } Vector3 zero = Vector3.zero; } if (num == 0) { 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; List list = this.k__BackingField; bool flag2; if (flag2) { } num9 = 0; if (num == 0) { break; } } } OHFHKIPINGN ohfhkipingn; this.k__BackingField = ohfhkipingn; Debug.LogError("Failed to build spatial tree correctly - network culling will not work as intended"); return; IL_D6: this.k__BackingField = num9; throw new NullReferenceException(); } // Token: 0x0600F1C4 RID: 61892 RVA: 0x00378BA0 File Offset: 0x00376DA0 [Token(Token = "0x600F1C4")] [Address(RVA = "0x8BDD80", Offset = "0x8BCB80", VA = "0x1808BDD80")] private Vector2 DAHGNKJKHBF() { float minimumCellSize = this.MinimumCellSize; int numberOfSubdivisions = this.NumberOfSubdivisions; Vector2 vector = this.Subdivisions[numberOfSubdivisions]; throw new NullReferenceException(); } // Token: 0x0600F1C5 RID: 61893 RVA: 0x00378BD0 File Offset: 0x00376DD0 [Token(Token = "0x600F1C5")] [Address(RVA = "0x8BE4F0", Offset = "0x8BD2F0", VA = "0x1808BE4F0")] 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: 0x0600F1C6 RID: 61894 RVA: 0x00378C14 File Offset: 0x00376E14 [Token(Token = "0x600F1C6")] [Address(RVA = "0x8BF360", Offset = "0x8BE160", VA = "0x1808BF360")] 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 = (MHJBJPJHPFD.HCMDPIPMANH)((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: 0x0400A069 RID: 41065 [Token(Token = "0x400A069")] public const int MAX_CELL_INDEX = 250; // Token: 0x0400A06A RID: 41066 [Token(Token = "0x400A06A")] public const int MAX_CELL_COUNT = 249; // Token: 0x0400A06B RID: 41067 [Token(Token = "0x400A06B")] public const byte FIRST_GROUP_ID = 1; // Token: 0x0400A06C RID: 41068 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400A06C")] public readonly int[] SUBDIVISION_FIRST_LEVEL_ORDER; // Token: 0x0400A06D RID: 41069 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400A06D")] public readonly int[] SUBDIVISION_SECOND_LEVEL_ORDER; // Token: 0x0400A06E RID: 41070 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400A06E")] public readonly int[] SUBDIVISION_THIRD_LEVEL_ORDER; // Token: 0x0400A06F RID: 41071 [Token(Token = "0x400A06F")] private const double MMGHMNJDPAE = 0.0001; // Token: 0x0400A070 RID: 41072 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400A070")] public MHJBJPJHPFD.HCMDPIPMANH VisualizationType; // Token: 0x0400A073 RID: 41075 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400A073")] public float MinimumCellSize; // Token: 0x0400A074 RID: 41076 [FieldOffset(Offset = "0x4C")] [Token(Token = "0x400A074")] public bool UpdateDynamically; // Token: 0x0400A075 RID: 41077 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400A075")] public float DynamicUpdateFrequency; // Token: 0x0400A076 RID: 41078 [FieldOffset(Offset = "0x54")] [Token(Token = "0x400A076")] public int NumberOfSubdivisions; // Token: 0x0400A079 RID: 41081 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400A079")] public Vector2[] Subdivisions; // Token: 0x0400A07A RID: 41082 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400A07A")] private Bounds JJOBMPIJJML; // Token: 0x0400A07B RID: 41083 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400A07B")] private IDisposable OJNCFPAHEIG; // Token: 0x020024A4 RID: 9380 [Token(Token = "0x20024A4")] public enum HIELABABANC { // Token: 0x0400A07D RID: 41085 [Token(Token = "0x400A07D")] Global, // Token: 0x0400A07E RID: 41086 [Token(Token = "0x400A07E")] Low, // Token: 0x0400A07F RID: 41087 [Token(Token = "0x400A07F")] High } } }