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: 0x02003453 RID: 13395 [Token(Token = "0x2003453")] public class ShapeContainerDataBitPacker { // Token: 0x06017197 RID: 94615 RVA: 0x0055DC9C File Offset: 0x0055BE9C [Token(Token = "0x6017197")] [Address(RVA = "0x212D7E0", Offset = "0x212C7E0", VA = "0x18212D7E0")] [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: 0x06017198 RID: 94616 RVA: 0x0055DD54 File Offset: 0x0055BF54 [Token(Token = "0x6017198")] [Address(RVA = "0x212D9A0", Offset = "0x212C9A0", VA = "0x18212D9A0")] [CALLMFDLAPD(IFJNJDOONNL.ExitingPlayMode, 0)] private static void UnregisterRpcSerializationHandlers() { PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); } // Token: 0x06017199 RID: 94617 RVA: 0x0055DD8C File Offset: 0x0055BF8C [Token(Token = "0x6017199")] [Address(RVA = "0x212BBB0", Offset = "0x212ABB0", VA = "0x18212BBB0")] 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: 0x0601719A RID: 94618 RVA: 0x0055DDC0 File Offset: 0x0055BFC0 [Token(Token = "0x601719A")] [Address(RVA = "0x212C770", Offset = "0x212B770", VA = "0x18212C770")] 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: 0x0601719B RID: 94619 RVA: 0x0055DE04 File Offset: 0x0055C004 [Token(Token = "0x601719B")] [Address(RVA = "0x212BC40", Offset = "0x212AC40", VA = "0x18212BC40")] private static void CompressShapeContainer(BitPacker bitPacker, PPOLCGCAKLF.FIFELKAAAPH.CEAIAINMICD entry) { int nnngllgcggd = entry.NNNGLLGCGGD; bitPacker.WriteVarUInt((uint)nnngllgcggd); bool kejibjkbcpc = entry.KEJIBJKBCPC; bitPacker.WriteBool(kejibjkbcpc); if (!entry.KEJIBJKBCPC) { ENMKBCNAGIC blhogddjnlb = entry.BLHOGDDJNLB; ShapeContainerDataBitPacker.CompressShapeCollection(bitPacker, blhogddjnlb); } } // Token: 0x0601719C RID: 94620 RVA: 0x0055DE4C File Offset: 0x0055C04C [Token(Token = "0x601719C")] [Address(RVA = "0x212C840", Offset = "0x212B840", VA = "0x18212C840")] 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: 0x0601719D RID: 94621 RVA: 0x0055DEF8 File Offset: 0x0055C0F8 [Token(Token = "0x601719D")] [Address(RVA = "0x212B9B0", Offset = "0x212A9B0", VA = "0x18212B9B0")] 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; if (bitPackerBase == 0) { } } 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: 0x0601719E RID: 94622 RVA: 0x0055DF84 File Offset: 0x0055C184 [Token(Token = "0x601719E")] [Address(RVA = "0x212C5C0", Offset = "0x212B5C0", VA = "0x18212C5C0")] private static ENMKBCNAGIC DecompressShapeCollection(BitPacker bitPackerBase) { do { if (bitPackerBase == 0) { } } 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: 0x0601719F RID: 94623 RVA: 0x0055E000 File Offset: 0x0055C200 [Token(Token = "0x601719F")] [Address(RVA = "0x212BCA0", Offset = "0x212ACA0", VA = "0x18212BCA0")] 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; bitPackerBase.GENADLBLGEJ(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); float mcjaimhjkba = shape.MGHPABCFKJJ.MCJAIMHJKBA; int num6 = 0; ulong num7; bitPackerBase.WriteFloat(mcjaimhjkba, (float)num6, 16f, (int)num7); float haoccmehaek = shape.MGHPABCFKJJ.HAOCCMEHAEK; int num8 = 0; 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; MLLDBGNOBLL kmibififmef = shape.IDGDGOFNHPG.KMIBIFIFMEF; bitPackerBase.GENADLBLGEJ(haoccmehaek); float mcjaimhjkba2 = shape.IDGDGOFNHPG.KMIBIFIFMEF.MCJAIMHJKBA; bitPackerBase.GENADLBLGEJ(mcjaimhjkba2); float haoccmehaek2 = shape.IDGDGOFNHPG.KMIBIFIFMEF.HAOCCMEHAEK; bitPackerBase.GENADLBLGEJ(haoccmehaek2); } // Token: 0x060171A0 RID: 94624 RVA: 0x0055E220 File Offset: 0x0055C420 [Token(Token = "0x60171A0")] [Address(RVA = "0x212CA50", Offset = "0x212BA50", VA = "0x18212CA50")] 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 = bitPackerBase.PAAHKBPKNJP(); 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; MLLDBGNOBLL kmibififmef = lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF; float num17 = bitPackerBase.PAAHKBPKNJP(); kmibififmef.AEFMFCNONNN = num17; MLLDBGNOBLL kmibififmef2 = lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF; float num18 = bitPackerBase.PAAHKBPKNJP(); kmibififmef2.MCJAIMHJKBA = num18; MLLDBGNOBLL kmibififmef3 = lakmdolhibi.IDGDGOFNHPG.KMIBIFIFMEF; float num19 = bitPackerBase.PAAHKBPKNJP(); kmibififmef3.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: 0x060171A1 RID: 94625 RVA: 0x0055E4C4 File Offset: 0x0055C6C4 [Token(Token = "0x60171A1")] [Address(RVA = "0x212D560", Offset = "0x212C560", VA = "0x18212D560")] 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: 0x060171A2 RID: 94626 RVA: 0x0055E564 File Offset: 0x0055C764 [Token(Token = "0x60171A2")] [Address(RVA = "0x212D2E0", Offset = "0x212C2E0", VA = "0x18212D2E0")] 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: 0x060171A3 RID: 94627 RVA: 0x0055E604 File Offset: 0x0055C804 [Token(Token = "0x60171A3")] [Address(RVA = "0x212C3A0", Offset = "0x212B3A0", VA = "0x18212C3A0")] private static void CompressTubeControlPoint(BitPacker bitPackerBase, DIEPKHGNMAG controlPoint, int radiusRequiredBits, Vector3 minPositionExtent, Vector3 maxPositionExtent) { do { if (bitPackerBase == 0) { } } while (bitPackerBase == 0); Vector3 vector; float z = vector.z; float z2 = minPositionExtent.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: 0x060171A4 RID: 94628 RVA: 0x0055E654 File Offset: 0x0055C854 [Token(Token = "0x60171A4")] [Address(RVA = "0x212D0C0", Offset = "0x212C0C0", VA = "0x18212D0C0")] 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; float bpfkhneigpj = ShapeContainer.NKHMHPMBBPA.BPFKHNEIGPJ; int num = 0; float num2 = bitPackerBase.ReadFloat((float)num, bpfkhneigpj, radiusRequiredBits); diepkhgnmag.KEMAAJNJAGK = num2; return diepkhgnmag; } // Token: 0x060171A5 RID: 94629 RVA: 0x0055E6C4 File Offset: 0x0055C8C4 [Token(Token = "0x60171A5")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] public ShapeContainerDataBitPacker() { } // Token: 0x0400F057 RID: 61527 [Token(Token = "0x400F057")] private const float TubeControlPointRadiusCompressionErrorTolerance = 0.005f; // Token: 0x0400F058 RID: 61528 [Token(Token = "0x400F058")] private const int TubeControlPointRadiusCompressionMinBits = 4; // Token: 0x0400F059 RID: 61529 [Token(Token = "0x400F059")] private const int TubeControlPointRadiusCompressionMaxBits = 20; // Token: 0x0400F05A RID: 61530 [Token(Token = "0x400F05A")] public const int TubeMaxPointsOnRing = 10; // Token: 0x0400F05B RID: 61531 [Token(Token = "0x400F05B")] public const int NumShapeRotationBitsPerAxis = 12; // Token: 0x0400F05C RID: 61532 [Token(Token = "0x400F05C")] private const int UV_OFFSET_BITS = 10; } }