using System; using System.Collections.Generic; using Cpp2IlInjected; using Google.Protobuf; using Google.Protobuf.Collections; using RecRoom.Networking; using UnityEngine; namespace RecRoom.Core.Creation.Shapes { // Token: 0x02003366 RID: 13158 [Token(Token = "0x2003366")] public class ShapeContainerDataBitPacker { // Token: 0x06016D09 RID: 93449 RVA: 0x00552D2C File Offset: 0x00550F2C [Token(Token = "0x6016D09")] [Address(RVA = "0x16845A0", Offset = "0x16833A0", VA = "0x1816845A0")] [CBEAKPMNJOL(LGFJHLDANJN.Unity_AfterSceneLoad)] private static void RegisterRpcSerializationHandlers() { PMDMLFNOIDA pmdmlfnoida = PMDMLFNOIDA.ONCPNMDGGKG; int num; Action action = new Action(num.CompressShapeContainer); num = 0; int num2; Func func = new Func(num2.DecompressShapeContainer); num2 = 0; pmdmlfnoida.PAKHKCPLNMC(action, func); PMDMLFNOIDA pmdmlfnoida2 = PMDMLFNOIDA.ONCPNMDGGKG; int num3; Action action2 = new Action(num3.CompressShapeContainerCollection); num3 = 0; int num4; Func func2 = new Func(num4.DecompressShapeContainerCollection); num4 = 0; pmdmlfnoida2.PAKHKCPLNMC(action2, func2); PMDMLFNOIDA pmdmlfnoida3 = PMDMLFNOIDA.ONCPNMDGGKG; int num5; Action action3 = new Action(num5.CompressShapeCollection); num5 = 0; int num6; Func func3 = new Func(num6.DecompressShapeCollection); num6 = 0; pmdmlfnoida3.PAKHKCPLNMC(action3, func3); } // Token: 0x06016D0A RID: 93450 RVA: 0x00552DE4 File Offset: 0x00550FE4 [Token(Token = "0x6016D0A")] [Address(RVA = "0x1684760", Offset = "0x1683560", VA = "0x181684760")] [CALLMFDLAPD(IFJNJDOONNL.ExitingPlayMode, 0)] private static void UnregisterRpcSerializationHandlers() { PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); } // Token: 0x06016D0B RID: 93451 RVA: 0x00552E1C File Offset: 0x0055101C [Token(Token = "0x6016D0B")] [Address(RVA = "0x16828F0", Offset = "0x16816F0", VA = "0x1816828F0")] private static void CompressShapeContainerCollection(BitPacker bitPacker, PPOLCGCAKLF collection) { RepeatedField aeopdkhjpif = collection.AEOPDKHJPIF; int num; Action action = new Action(num.CompressShapeContainer); num = 0; bitPacker.WriteList(aeopdkhjpif, action); } // Token: 0x06016D0C RID: 93452 RVA: 0x00552E50 File Offset: 0x00551050 [Token(Token = "0x6016D0C")] [Address(RVA = "0x16835C0", Offset = "0x16823C0", VA = "0x1816835C0")] private static PPOLCGCAKLF DecompressShapeContainerCollection(BitPacker bitPacker) { PPOLCGCAKLF ppolcgcaklf = new PPOLCGCAKLF(); RepeatedField aeopdkhjpif = ppolcgcaklf.AEOPDKHJPIF; int num; Func func = new Func(num.DecompressShapeContainer); num = 0; List list = bitPacker.ReadList(func); aeopdkhjpif.AddRange(list); return ppolcgcaklf; } // Token: 0x06016D0D RID: 93453 RVA: 0x00552E94 File Offset: 0x00551094 [Token(Token = "0x6016D0D")] [Address(RVA = "0x1682980", Offset = "0x1681780", VA = "0x181682980")] private static void CompressShapeContainer(BitPacker bitPacker, PPOLCGCAKLF.FIFELKAAAPH.CEAIAINMICD entry) { ENMKBCNAGIC blhogddjnlb; do { int nnngllgcggd = entry.NNNGLLGCGGD; bitPacker.WriteVarUInt((uint)nnngllgcggd); bool kejibjkbcpc = entry.KEJIBJKBCPC; bitPacker.WriteBool(kejibjkbcpc); if (entry.KEJIBJKBCPC) { return; } blhogddjnlb = entry.BLHOGDDJNLB; Vector3 vector; float z = vector.z; Vector3 minExtent; minExtent.z = z; Vector3 vector2; float z2 = vector2.z; Vector3 maxExtent; maxExtent.z = z2; } while (bitPacker == 0); float z3 = CS$<>8__locals1.minExtent.z; float z4 = CS$<>8__locals1.maxExtent.z; RepeatedField blhogddjnlb2 = blhogddjnlb.BLHOGDDJNLB; Action action = delegate(BitPacker bp, LAKMDOLHIBI s) { float z5 = CS$<>8__locals1.maxExtent.z; float z6 = CS$<>8__locals1.minExtent.z; }; bitPacker.WriteList(blhogddjnlb2, action); } // Token: 0x06016D0E RID: 93454 RVA: 0x00552F54 File Offset: 0x00551154 [Token(Token = "0x6016D0E")] [Address(RVA = "0x1683690", Offset = "0x1682490", VA = "0x181683690")] private static PPOLCGCAKLF.FIFELKAAAPH.CEAIAINMICD DecompressShapeContainer(BitPacker bitPacker) { PPOLCGCAKLF.FIFELKAAAPH.CEAIAINMICD ceaiainmicd; do { ceaiainmicd = new PPOLCGCAKLF.FIFELKAAAPH.CEAIAINMICD(); uint num = bitPacker.ReadVarUInt(); ceaiainmicd.NNNGLLGCGGD = (int)num; bool flag = bitPacker.ReadBool(); ceaiainmicd.KEJIBJKBCPC = flag; if (flag) { return ceaiainmicd; } } while (bitPacker == 0); Vector3 vector; float z = vector.z; CS$<>8__locals1.minExtent.z = z; Vector3 vector2; float z2 = vector2.z; CS$<>8__locals1.maxExtent.z = z2; ENMKBCNAGIC enmkbcnagic = new ENMKBCNAGIC(); RepeatedField blhogddjnlb = enmkbcnagic.BLHOGDDJNLB; Func func = delegate(BitPacker bp) { float z3 = CS$<>8__locals1.maxExtent.z; float z4 = CS$<>8__locals1.minExtent.z; LAKMDOLHIBI lakmdolhibi; return lakmdolhibi; }; List list = bitPacker.ReadList(func); blhogddjnlb.AddRange(list); ceaiainmicd.BLHOGDDJNLB = enmkbcnagic; return ceaiainmicd; } // Token: 0x06016D0F RID: 93455 RVA: 0x00553004 File Offset: 0x00551204 [Token(Token = "0x6016D0F")] [Address(RVA = "0x1682720", Offset = "0x1681520", VA = "0x181682720")] private static void CompressShapeCollection(BitPacker bitPackerBase, ENMKBCNAGIC collection) { do { Vector3 vector; float z = vector.z; Vector3 minExtent; minExtent.z = z; Vector3 vector2; float z2 = vector2.z; Vector3 maxExtent; maxExtent.z = z2; } while (bitPackerBase == 0); float z3 = CS$<>8__locals1.minExtent.z; float z4 = CS$<>8__locals1.maxExtent.z; RepeatedField blhogddjnlb = collection.BLHOGDDJNLB; Action action = delegate(BitPacker bp, LAKMDOLHIBI s) { float z5 = CS$<>8__locals1.maxExtent.z; float z6 = CS$<>8__locals1.minExtent.z; }; bitPackerBase.WriteList(blhogddjnlb, action); } // Token: 0x06016D10 RID: 93456 RVA: 0x0055308C File Offset: 0x0055128C [Token(Token = "0x6016D10")] [Address(RVA = "0x1683430", Offset = "0x1682230", VA = "0x181683430")] private static ENMKBCNAGIC DecompressShapeCollection(BitPacker bitPackerBase) { do { } while (bitPackerBase == 0); Vector3 vector; float z = vector.z; CS$<>8__locals1.minExtent.z = z; Vector3 vector2; float z2 = vector2.z; CS$<>8__locals1.maxExtent.z = z2; ENMKBCNAGIC enmkbcnagic = new ENMKBCNAGIC(); RepeatedField blhogddjnlb = enmkbcnagic.BLHOGDDJNLB; Func func = delegate(BitPacker bp) { float z3 = CS$<>8__locals1.maxExtent.z; float z4 = CS$<>8__locals1.minExtent.z; LAKMDOLHIBI lakmdolhibi; return lakmdolhibi; }; List list = bitPackerBase.ReadList(func); blhogddjnlb.AddRange(list); return enmkbcnagic; } // Token: 0x06016D11 RID: 93457 RVA: 0x00553108 File Offset: 0x00551308 [Token(Token = "0x6016D11")] [Address(RVA = "0x1682B90", Offset = "0x1681990", VA = "0x181682B90")] private static void CompressShape(BitPacker bitPackerBase, LAKMDOLHIBI shape, Vector3 minPositionExtent, Vector3 maxPositionExtent) { do { if (bitPackerBase == 0) { } } while (bitPackerBase == 0); int num = 0; int mgjcejapfpi = shape.MGJCEJAPFPI; bitPackerBase.WriteInt(mgjcejapfpi, num, 18); int bpcfmhdhebp = shape.BPCFMHDHEBP; int num2 = 0; bitPackerBase.WriteInt(bpcfmhdhebp, num2, 60); int jaejnaiigcn = shape.JAEJNAIIGCN; int num3 = 0; bitPackerBase.WriteInt(jaejnaiigcn, num3, 31); float jhdcabhkloo = shape.JHDCABHKLOO; float ifkafhkfcaj = shape.IFKAFHKFCAJ; bitPackerBase.WriteUncompressedFloat(ifkafhkfcaj); float cmppkafhkac = shape.CMPPKAFHKAC; bitPackerBase.WriteUncompressedFloat(cmppkafhkac); MLLDBGNOBLL mghpabcfkjj = shape.MGHPABCFKJJ; int num4 = 0; float aefmfcnonnn = mghpabcfkjj.AEFMFCNONNN; ulong num5; bitPackerBase.WriteFloat(aefmfcnonnn, (float)num4, 16f, (int)num5); MLLDBGNOBLL mghpabcfkjj2 = shape.MGHPABCFKJJ; int num6 = 0; float mcjaimhjkba = mghpabcfkjj2.MCJAIMHJKBA; ulong num7; bitPackerBase.WriteFloat(mcjaimhjkba, (float)num6, 16f, (int)num7); MLLDBGNOBLL mghpabcfkjj3 = shape.MGHPABCFKJJ; int num8 = 0; float haoccmehaek = mghpabcfkjj3.HAOCCMEHAEK; ulong num9; bitPackerBase.WriteFloat(haoccmehaek, (float)num8, 16f, (int)num9); int nkmhcdblepo = shape.NKMHCDBLEPO; int num10 = 0; bitPackerBase.WriteInt(nkmhcdblepo, num10, 1); int mgjcejapfpi2 = shape.MGJCEJAPFPI; int mgjcejapfpi3 = shape.MGJCEJAPFPI; float aefmfcnonnn2 = shape.IDGDGOFNHPG.KMIBIFIFMEF.AEFMFCNONNN; float mcjaimhjkba2 = shape.IDGDGOFNHPG.KMIBIFIFMEF.MCJAIMHJKBA; float haoccmehaek2 = shape.IDGDGOFNHPG.KMIBIFIFMEF.HAOCCMEHAEK; } // Token: 0x06016D12 RID: 93458 RVA: 0x00553314 File Offset: 0x00551514 [Token(Token = "0x6016D12")] [Address(RVA = "0x1683880", Offset = "0x1682680", VA = "0x181683880")] private static LAKMDOLHIBI DecompressShape(BitPacker bitPackerBase, Vector3 minPositionExtent, Vector3 maxPositionExtent) { do { if (bitPackerBase == 0) { } } while (bitPackerBase == 0); LAKMDOLHIBI lakmdolhibi = new LAKMDOLHIBI(); ByteString byteString; lakmdolhibi.JPOHGBCEJEJ = byteString; int num = bitPackerBase.ReadInt(-1, 18); lakmdolhibi.MGJCEJAPFPI = num; int num2 = 0; int num3 = bitPackerBase.ReadInt(num2, 60); lakmdolhibi.BPCFMHDHEBP = num3; int num4 = 0; int num5 = bitPackerBase.ReadInt(num4, 31); lakmdolhibi.JAEJNAIIGCN = num5; MLLDBGNOBLL mlldbgnobll; lakmdolhibi.CPPHBOGGGNF = mlldbgnobll; MLLDBGNOBLL mlldbgnobll2; lakmdolhibi.GBAKPJJFCLK = mlldbgnobll2; bool flag = "{il2cpp field on {'constant1' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StackPointer)}, offset 0x67}" == (ulong)0L; lakmdolhibi.ILGFEHFHFIB = flag; float num6; lakmdolhibi.JHDCABHKLOO = num6; float num7 = bitPackerBase.ReadUncompressedFloat(); lakmdolhibi.IFKAFHKFCAJ = num7; float num8 = bitPackerBase.ReadUncompressedFloat(); int num9 = 0; lakmdolhibi.CMPPKAFHKAC = num8; float num10 = bitPackerBase.ReadFloat((float)num9, 16f, 10); int num11 = 0; float num12 = bitPackerBase.ReadFloat((float)num11, 16f, 10); int num13 = 0; float num14 = bitPackerBase.ReadFloat((float)num13, 16f, 10); MLLDBGNOBLL mlldbgnobll3; lakmdolhibi.MGHPABCFKJJ = mlldbgnobll3; int num15 = 0; int num16 = bitPackerBase.ReadInt(num15, 1); int mgjcejapfpi = lakmdolhibi.MGJCEJAPFPI; lakmdolhibi.NKMHCDBLEPO = num16; int mgjcejapfpi2 = lakmdolhibi.MGJCEJAPFPI; ENJMDBGOOND enjmdbgoond = new ENJMDBGOOND(); lakmdolhibi.IDGDGOFNHPG = enjmdbgoond; ENJMDBGOOND enjmdbgoond2 = lakmdolhibi.IDGDGOFNHPG; MLLDBGNOBLL mlldbgnobll4 = new MLLDBGNOBLL(); enjmdbgoond2.KMIBIFIFMEF = mlldbgnobll4; float num17; lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF.AEFMFCNONNN = num17; float num18; lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF.MCJAIMHJKBA = num18; float num19; lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF.HAOCCMEHAEK = num19; int num20 = bitPackerBase.ReadInt(4, 20); int radiusRequiredBits = num20; Vector3 vector; float z = vector.z; Vector3 minExtent; minExtent.z = z; Vector3 vector2; float z2 = vector2.z; Vector3 maxExtent; maxExtent.z = z2; JJHOJPEIKCM jjhojpeikcm = new JJHOJPEIKCM(); lakmdolhibi.PPGHMGEIBMN = jjhojpeikcm; RepeatedField jihnbkmliaf = lakmdolhibi.PPGHMGEIBMN.JIHNBKMLIAF; Func func = delegate(BitPacker bp) { float z3 = maxExtent.z; float z4 = minExtent.z; DIEPKHGNMAG diepkhgnmag; return diepkhgnmag; }; List list = bitPackerBase.ReadList(func); jihnbkmliaf.AddRange(list); JJHOJPEIKCM jjhojpeikcm2 = lakmdolhibi.PPGHMGEIBMN; bool flag2 = bitPackerBase.ReadBool(); jjhojpeikcm2.FEEHBNMBEBL = flag2; JJHOJPEIKCM jjhojpeikcm3 = lakmdolhibi.PPGHMGEIBMN; int num21 = bitPackerBase.ReadInt(1, 10); jjhojpeikcm3.IAAJELGPLJP = num21; JJHOJPEIKCM jjhojpeikcm4 = lakmdolhibi.PPGHMGEIBMN; int num22 = 0; float num23 = bitPackerBase.ReadFloat((float)num22, 1f, 5); jjhojpeikcm4.PCMDFBEIPEL = num23; JJHOJPEIKCM jjhojpeikcm5 = lakmdolhibi.PPGHMGEIBMN; bool flag3 = bitPackerBase.ReadBool(); jjhojpeikcm5.KMEJODNODEF = flag3; return lakmdolhibi; } // Token: 0x06016D13 RID: 93459 RVA: 0x0055358C File Offset: 0x0055178C [Token(Token = "0x6016D13")] [Address(RVA = "0x1684320", Offset = "0x1683120", VA = "0x181684320")] private static Bounds GetShapePositionBounds(IList shapes) { if (0 != 0) { int num = 0; int num2 = 0; Vector3 vector = num.DEEKJHMMLDF(); float z = Vector3.zero.z; int num3 = 0; if (num3 < num2) { num3 += num3; if (num3 == num2) { goto IL_6C; } num3++; } int num4 = 0; uint num5; if (num5 >= (uint)z) { goto IL_8E; } if (num3 < num4) { num3 += num3; if (num3 == num4) { goto IL_7D; } num3++; } Vector3 vector2; float num6 = vector2.z; num5 += (uint)1; IL_6C: num5 += num5; num6 += 2.7E-44f; IL_7D: num5 += num5; num6 += 2.7E-44f; } IL_8E: throw new NullReferenceException(); } // Token: 0x06016D14 RID: 93460 RVA: 0x0055362C File Offset: 0x0055182C [Token(Token = "0x6016D14")] [Address(RVA = "0x16840A0", Offset = "0x1682EA0", VA = "0x1816840A0")] private static Bounds GetControlPointPositionBounds(IList controlPoints) { if (0 != 0) { int num = 0; int num2 = 0; Vector3 vector = num.DEEKJHMMLDF(); float z = Vector3.zero.z; int num3 = 0; if (num3 < num2) { num3 += num3; if (num3 == num2) { goto IL_6C; } num3++; } int num4 = 0; uint num5; if (num5 >= (uint)z) { goto IL_8E; } if (num3 < num4) { num3 += num3; if (num3 == num4) { goto IL_7D; } num3++; } Vector3 vector2; float num6 = vector2.z; num5 += (uint)1; IL_6C: num5 += num5; num6 += 2.7E-44f; IL_7D: num5 += num5; num6 += 2.7E-44f; } IL_8E: throw new NullReferenceException(); } // Token: 0x06016D15 RID: 93461 RVA: 0x005536CC File Offset: 0x005518CC [Token(Token = "0x6016D15")] [Address(RVA = "0x1683220", Offset = "0x1682020", VA = "0x181683220")] private static void CompressTubeControlPoint(BitPacker bitPackerBase, DIEPKHGNMAG controlPoint, int radiusRequiredBits, Vector3 minPositionExtent, Vector3 maxPositionExtent) { do { if (bitPackerBase == 0) { } } while (bitPackerBase == 0); float z = minPositionExtent.z; Vector3 vector; float z2 = vector.z; Vector3 vector2; float z3 = vector2.z; float kemaajnjagk = controlPoint.KEMAAJNJAGK; int num = 0; float bpfkhneigpj = ShapeContainer.NKHMHPMBBPA.BPFKHNEIGPJ; bitPackerBase.WriteFloat(kemaajnjagk, (float)num, bpfkhneigpj, radiusRequiredBits); } // Token: 0x06016D16 RID: 93462 RVA: 0x0055371C File Offset: 0x0055191C [Token(Token = "0x6016D16")] [Address(RVA = "0x1683E90", Offset = "0x1682C90", VA = "0x181683E90")] private static DIEPKHGNMAG DecompressTubeControlPoint(BitPacker bitPackerBase, int radiusRequiredBits, Vector3 minPositionExtent, Vector3 maxPositionExtent) { do { if (bitPackerBase == 0) { } } while (bitPackerBase == 0); DIEPKHGNMAG diepkhgnmag = new DIEPKHGNMAG(); float z = maxPositionExtent.z; float z2 = minPositionExtent.z; Vector3 vector; float z3 = vector.z; MLLDBGNOBLL mlldbgnobll; diepkhgnmag.NGPBAHHNNIJ = mlldbgnobll; Vector3 vector2; float z4 = vector2.z; MLLDBGNOBLL mlldbgnobll2; diepkhgnmag.JFLPDLFGEML = mlldbgnobll2; int num = 0; float bpfkhneigpj = ShapeContainer.NKHMHPMBBPA.BPFKHNEIGPJ; float num2 = bitPackerBase.ReadFloat((float)num, bpfkhneigpj, radiusRequiredBits); diepkhgnmag.KEMAAJNJAGK = num2; return diepkhgnmag; } // Token: 0x06016D17 RID: 93463 RVA: 0x0055378C File Offset: 0x0055198C [Token(Token = "0x6016D17")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] public ShapeContainerDataBitPacker() { } // Token: 0x0400EE10 RID: 60944 [Token(Token = "0x400EE10")] private const float TubeControlPointRadiusCompressionErrorTolerance = 0.005f; // Token: 0x0400EE11 RID: 60945 [Token(Token = "0x400EE11")] private const int TubeControlPointRadiusCompressionMinBits = 4; // Token: 0x0400EE12 RID: 60946 [Token(Token = "0x400EE12")] private const int TubeControlPointRadiusCompressionMaxBits = 20; // Token: 0x0400EE13 RID: 60947 [Token(Token = "0x400EE13")] public const int TubeMaxPointsOnRing = 10; // Token: 0x0400EE14 RID: 60948 [Token(Token = "0x400EE14")] public const int NumShapeRotationBitsPerAxis = 12; // Token: 0x0400EE15 RID: 60949 [Token(Token = "0x400EE15")] private const int UV_OFFSET_BITS = 10; } }