This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,167 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021A6 RID: 8614
[Token(Token = "0x20021A6")]
[Serializable]
[StructLayout(3)]
public class FitMeshHemisphere
{
// Token: 0x170027CA RID: 10186
// (get) Token: 0x0600ED65 RID: 60773 RVA: 0x00384A34 File Offset: 0x00382C34
[Token(Token = "0x170027CA")]
public bool IsRadiusValid
{
[Token(Token = "0x600ED65")]
[Address(RVA = "0x12A3FE0", Offset = "0x12A29E0", VA = "0x1812A3FE0")]
get
{
/*
An exception occurred when decompiling this method (0600ED65)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean RecRoom.Avatar.Outfit.FitMeshHemisphere::get_IsRadiusValid()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:float32(var_0_06, ldfld:float32(FitMeshHemisphere::radius, ldloc:FitMeshHemisphere(this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
}
// Token: 0x0600ED66 RID: 60774 RVA: 0x00384A4C File Offset: 0x00382C4C
[Token(Token = "0x600ED66")]
[Address(RVA = "0x12A38E0", Offset = "0x12A22E0", VA = "0x1812A38E0")]
public Vector3 DOAOMJFMLLN(Vector2 IFDPEBLFLFJ, bool HIINFEKFOHF = true)
{
int num = 0;
float num3;
float num2 = Mathf.Clamp01(num3);
Vector2 vector = (0 - num) * 2f;
int num4 = 0;
float num5 = Mathf.Max((float)0, (float)num4);
num3 = num5;
num5 = num3;
Vector2 vector2 = num5 * vector;
Vector3 vector3;
float z = vector3.z;
Quaternion hemisphere_FITMESH_PIVOT_ROTATION = FitMeshHemisphere.HEMISPHERE_FITMESH_PIVOT_ROTATION;
Vector3 vector4;
float z2 = vector4.z;
Vector3 vector5;
float z3 = vector5.z;
Vector3 vector6;
float z4 = vector6.z;
throw new NullReferenceException();
}
// Token: 0x0600ED67 RID: 60775 RVA: 0x00384ACC File Offset: 0x00382CCC
[Token(Token = "0x600ED67")]
[Address(RVA = "0x12A3E00", Offset = "0x12A2800", VA = "0x1812A3E00")]
public Vector3 HAIKKEHEIDL(Vector2 IFDPEBLFLFJ)
{
/*
An exception occurred when decompiling this method (0600ED67)
ICSharpCode.Decompiler.DecompilerException: Error decompiling UnityEngine.Vector3 RecRoom.Avatar.Outfit.FitMeshHemisphere::HAIKKEHEIDL(UnityEngine.Vector2)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:float32(var_2_08, ldfld:float32(Vector3::z, ldloc:Vector3[exp:valuetype [UnityEngine.CoreModule]UnityEngine.Vector3&](var_1)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600ED68 RID: 60776 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ED68")]
[Address(RVA = "0x12A3850", Offset = "0x12A2250", VA = "0x1812A3850")]
private Vector2 DMJCJBOEPEE(Vector2 HENKKFEDNIE)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600ED69 RID: 60777 RVA: 0x00384AE4 File Offset: 0x00382CE4
[Token(Token = "0x600ED69")]
[Address(RVA = "0x12A3F80", Offset = "0x12A2980", VA = "0x1812A3F80")]
public FitMeshHemisphere()
{
ulong num;
this.UV_CENTER_COORDINATE = num;
this.UV_CENTER_COORDINATE.y = (float)0;
this.radius = 0.13f;
base..ctor();
}
// Token: 0x0600ED6A RID: 60778 RVA: 0x00384B18 File Offset: 0x00382D18
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ED6A")]
[Address(RVA = "0x12A3E60", Offset = "0x12A2860", VA = "0x1812A3E60")]
static FitMeshHemisphere()
{
Quaternion identity = Quaternion.identity;
}
// Token: 0x04009D9E RID: 40350
[Token(Token = "0x4009D9E")]
private static float GIZMO_RESOLUTION;
// Token: 0x04009D9F RID: 40351
[Token(Token = "0x4009D9F")]
private static float GIZMO_POSITION_CUBE_SCALE;
// Token: 0x04009DA0 RID: 40352
[Token(Token = "0x4009DA0")]
private static float GIZMO_NORMAL_LINE_LENGTH;
// Token: 0x04009DA1 RID: 40353
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DA1")]
private readonly Vector2 UV_CENTER_COORDINATE;
// Token: 0x04009DA2 RID: 40354
[Token(Token = "0x4009DA2")]
public static readonly Vector3 HEMISPHERE_FITMESH_PIVOT_POSITION;
// Token: 0x04009DA3 RID: 40355
[Token(Token = "0x4009DA3")]
public static readonly Quaternion HEMISPHERE_FITMESH_PIVOT_ROTATION;
// Token: 0x04009DA4 RID: 40356
[Token(Token = "0x4009DA4")]
public static readonly Vector3 HEMISPHERE_FITMESH_PIVOT_SCALE;
// Token: 0x04009DA5 RID: 40357
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009DA5")]
[SerializeField]
public Transform HemisphereTransform;
// Token: 0x04009DA6 RID: 40358
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009DA6")]
[SerializeField]
public float radius;
}
}
@@ -0,0 +1,354 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Async;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021A7 RID: 8615
[Token(Token = "0x20021A7")]
[StructLayout(3)]
public class HairColorVault : ColorVault
{
// Token: 0x0600ED6B RID: 60779 RVA: 0x00384B30 File Offset: 0x00382D30
[Token(Token = "0x600ED6B")]
[Address(RVA = "0x12A4230", Offset = "0x12A2C30", VA = "0x1812A4230", Slot = "4")]
protected override void Awake()
{
int num;
do
{
num = 0;
List<ColorVault.ColorToGuid> colors = this.colors;
List<ColorVault.ColorToGuid> naturalColors = this.NaturalColors;
colors.AddRange(naturalColors);
List<ColorVault.ColorToGuid> colors2 = this.colors;
List<ColorVault.ColorToGuid> dyeColors = this.DyeColors;
colors2.AddRange(dyeColors);
List<ColorVault.ColorToGuid> dyeColors2 = this.DyeColors;
if (colors2.GetEnumerator() != 0)
{
}
if (num != -1)
{
}
}
while (num != 0);
base.Awake();
}
// Token: 0x0600ED6C RID: 60780 RVA: 0x00384B98 File Offset: 0x00382D98
[Token(Token = "0x600ED6C")]
[Address(RVA = "0x12A4880", Offset = "0x12A3280", VA = "0x1812A4880")]
public void LinkDyesToWatchStorefront()
{
IPromise<BKFGFHDDNFG> promise = GEAPBDGCKMB.PGIMFDLBHON(DGOHCPBKOHD.Watch);
Action<BKFGFHDDNFG> action = new Action(this.HPHKFOOJOLL);
throw new NullReferenceException();
}
// Token: 0x0600ED6D RID: 60781 RVA: 0x00384BC0 File Offset: 0x00382DC0
[Token(Token = "0x600ED6D")]
[Address(RVA = "0x12A43B0", Offset = "0x12A2DB0", VA = "0x1812A43B0")]
public ColorVault.ColorToGuid GetColor(string KGKDKGBFDIA)
{
List<ColorVault.ColorToGuid> colors = this.colors;
Func<ColorVault.ColorToGuid, bool> func = delegate(ColorVault.ColorToGuid dc)
{
string guidString = KGKDKGBFDIA;
return string.Equals(dc.guidString, guidString);
};
return Enumerable.FirstOrDefault<ColorVault.ColorToGuid>(Enumerable.Where<ColorVault.ColorToGuid>(colors, func));
}
// Token: 0x0600ED6E RID: 60782 RVA: 0x00384C00 File Offset: 0x00382E00
[Token(Token = "0x600ED6E")]
[Address(RVA = "0x12A4470", Offset = "0x12A2E70", VA = "0x1812A4470")]
public ColorVault.ColorToGuid GetDyeColor(string KGKDKGBFDIA)
{
List<ColorVault.ColorToGuid> dyeColors = this.DyeColors;
Func<ColorVault.ColorToGuid, bool> func = delegate(ColorVault.ColorToGuid dc)
{
string guidString = KGKDKGBFDIA;
return string.Equals(dc.guidString, guidString);
};
return Enumerable.FirstOrDefault<ColorVault.ColorToGuid>(Enumerable.Where<ColorVault.ColorToGuid>(dyeColors, func));
}
// Token: 0x0600ED6F RID: 60783 RVA: 0x00384C40 File Offset: 0x00382E40
[Token(Token = "0x600ED6F")]
[Address(RVA = "0x12A4530", Offset = "0x12A2F30", VA = "0x1812A4530", Slot = "5")]
public override ColorVault.ColorToGuid GetRandom()
{
return ListExt.Random<ColorVault.ColorToGuid>(this.NaturalColors);
}
// Token: 0x0600ED70 RID: 60784 RVA: 0x00384C58 File Offset: 0x00382E58
[Token(Token = "0x600ED70")]
[Address(RVA = "0x12A4070", Offset = "0x12A2A70", VA = "0x1812A4070")]
public void AddUnlockedHairDye(string KGKDKGBFDIA)
{
ColorVault.ColorToGuid dyeColor4 = this.GetDyeColor(KGKDKGBFDIA);
ColorVault.ColorToGuid dyeColor = dyeColor4;
if (dyeColor4 != 0)
{
int num = 0;
bool flag = ColorVault.ColorToGuid.BDBLGMKABNK(0, num);
dyeColor.<Unlocked>k__BackingField = true;
List<ColorVault.ColorToGuid> naturalColors = this.NaturalColors;
Func<ColorVault.ColorToGuid, bool> func = delegate(ColorVault.ColorToGuid hc)
{
string guidString = hc.guidString;
string guidString2 = dyeColor.guidString;
return string.Equals(guidString, guidString2);
};
if (!Enumerable.Any<ColorVault.ColorToGuid>(naturalColors, func))
{
List<ColorVault.ColorToGuid> naturalColors2 = this.NaturalColors;
ColorVault.ColorToGuid dyeColor2 = dyeColor;
naturalColors2.Add(dyeColor2);
}
ActionEvent<ColorVault.ColorToGuid> hairDyeUnlockedEvent = HairColorVault.HairDyeUnlockedEvent;
if (hairDyeUnlockedEvent != 0)
{
ColorVault.ColorToGuid dyeColor3 = dyeColor;
hairDyeUnlockedEvent.Invoke(dyeColor3);
}
return;
}
string text;
Debug.LogError(text);
}
// Token: 0x0600ED71 RID: 60785 RVA: 0x00384CFC File Offset: 0x00382EFC
[Token(Token = "0x600ED71")]
[Address(RVA = "0x12A4760", Offset = "0x12A3160", VA = "0x1812A4760")]
public bool IsHairDyeAlreadyPurchased(string MEAKEJONOGK)
{
HairColorVault.JFEAMMHFIBA jfeammhfiba = new HairColorVault.JFEAMMHFIBA();
jfeammhfiba.hairDyeDesc = MEAKEJONOGK;
if (jfeammhfiba != 0)
{
}
GiftManager instance = SingletonMonoBehaviour.Instance;
string hairDyeDesc = jfeammhfiba.hairDyeDesc;
Func<ColorVault.ColorToGuid, bool> func;
return instance.IsHairDyeAvailableInGiftPackageQueue(hairDyeDesc) || Enumerable.Any<ColorVault.ColorToGuid>(this.colors, func);
}
// Token: 0x0600ED72 RID: 60786 RVA: 0x00384D48 File Offset: 0x00382F48
[Token(Token = "0x600ED72")]
[Address(RVA = "0x12A0CE0", Offset = "0x129F6E0", VA = "0x1812A0CE0")]
public HairColorVault()
{
this.Label = "My Vault";
Dictionary<string, ColorVault.ColorToGuid> dictionary = new Dictionary();
this.KEHDHFLKCLO = dictionary;
base..ctor();
}
// Token: 0x0600ED73 RID: 60787 RVA: 0x00384D74 File Offset: 0x00382F74
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ED73")]
[Address(RVA = "0x12A4930", Offset = "0x12A3330", VA = "0x1812A4930")]
static HairColorVault()
{
int num;
ActionEvent<ColorVault.ColorToGuid> actionEvent = new ActionEvent(4, num != 0);
num = 0;
HairColorVault.HairDyeUnlockedEvent = actionEvent;
}
// Token: 0x0600ED74 RID: 60788 RVA: 0x00384D94 File Offset: 0x00382F94
[Token(Token = "0x600ED74")]
[Address(RVA = "0x12A4570", Offset = "0x12A2F70", VA = "0x1812A4570")]
[CompilerGenerated]
private void HPHKFOOJOLL(BKFGFHDDNFG CHJMCAKGNDN)
{
int num;
do
{
num = 0;
List<ColorVault.ColorToGuid> dyeColors = this.DyeColors;
List.Enumerator enumerator;
if (enumerator != 0)
{
HairColorVault.ELFFPCKJDFL elffpckjdfl = new HairColorVault.ELFFPCKJDFL();
elffpckjdfl.dyeColor = elffpckjdfl;
while (elffpckjdfl == 0)
{
}
List<HOJMGAMMIAD> jdgebbmdjbc = CHJMCAKGNDN.JDGEBBMDJBC;
Func<HOJMGAMMIAD, bool> func = delegate(HOJMGAMMIAD si)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
};
HOJMGAMMIAD hojmgammiad = Enumerable.FirstOrDefault<HOJMGAMMIAD>(Enumerable.Where<HOJMGAMMIAD>(jdgebbmdjbc, func));
elffpckjdfl.dyeColor.<PurchasableGiftDrop>k__BackingField = hojmgammiad;
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x04009DA7 RID: 40359
[Token(Token = "0x4009DA7")]
public static ActionEvent<ColorVault.ColorToGuid> HairDyeUnlockedEvent;
// Token: 0x04009DA8 RID: 40360
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009DA8")]
public List<ColorVault.ColorToGuid> NaturalColors;
// Token: 0x04009DA9 RID: 40361
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4009DA9")]
public List<ColorVault.ColorToGuid> DyeColors;
// Token: 0x020021A8 RID: 8616
[Token(Token = "0x20021A8")]
[CompilerGenerated]
private sealed class ELFFPCKJDFL
{
// Token: 0x0600ED75 RID: 60789 RVA: 0x00384E0C File Offset: 0x0038300C
[Token(Token = "0x600ED75")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ELFFPCKJDFL()
{
}
// Token: 0x0600ED76 RID: 60790 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ED76")]
[Address(RVA = "0x12A2760", Offset = "0x12A1160", VA = "0x1812A2760")]
internal bool <LinkDyesToWatchStorefront>b__1(HOJMGAMMIAD si)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04009DAA RID: 40362
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DAA")]
public ColorVault.ColorToGuid dyeColor;
}
// Token: 0x020021A9 RID: 8617
[Token(Token = "0x20021A9")]
[CompilerGenerated]
private sealed class ODEBIINMGJI
{
// Token: 0x0600ED77 RID: 60791 RVA: 0x00384E20 File Offset: 0x00383020
[Token(Token = "0x600ED77")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ODEBIINMGJI()
{
}
// Token: 0x0600ED78 RID: 60792 RVA: 0x00384E34 File Offset: 0x00383034
[Token(Token = "0x600ED78")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <GetColor>b__0(ColorVault.ColorToGuid dc)
{
string text = this.guidString;
return string.Equals(dc.guidString, text);
}
// Token: 0x04009DAB RID: 40363
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DAB")]
public string guidString;
}
// Token: 0x020021AA RID: 8618
[Token(Token = "0x20021AA")]
[CompilerGenerated]
private sealed class ALNPEKPHJCI
{
// Token: 0x0600ED79 RID: 60793 RVA: 0x00384E5C File Offset: 0x0038305C
[Token(Token = "0x600ED79")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ALNPEKPHJCI()
{
}
// Token: 0x0600ED7A RID: 60794 RVA: 0x00384E70 File Offset: 0x00383070
[Token(Token = "0x600ED7A")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <GetDyeColor>b__0(ColorVault.ColorToGuid dc)
{
string text = this.guidString;
return string.Equals(dc.guidString, text);
}
// Token: 0x04009DAC RID: 40364
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DAC")]
public string guidString;
}
// Token: 0x020021AB RID: 8619
[Token(Token = "0x20021AB")]
[CompilerGenerated]
private sealed class FOELPKHEKHH
{
// Token: 0x0600ED7B RID: 60795 RVA: 0x00384E98 File Offset: 0x00383098
[Token(Token = "0x600ED7B")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public FOELPKHEKHH()
{
}
// Token: 0x0600ED7C RID: 60796 RVA: 0x00384EAC File Offset: 0x003830AC
[Token(Token = "0x600ED7C")]
[Address(RVA = "0x12A30B0", Offset = "0x12A1AB0", VA = "0x1812A30B0")]
internal bool <AddUnlockedHairDye>b__0(ColorVault.ColorToGuid hc)
{
string guidString = hc.guidString;
string guidString2 = this.dyeColor.guidString;
return string.Equals(guidString, guidString2);
}
// Token: 0x04009DAD RID: 40365
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DAD")]
public ColorVault.ColorToGuid dyeColor;
}
// Token: 0x020021AC RID: 8620
[Token(Token = "0x20021AC")]
[CompilerGenerated]
private sealed class JFEAMMHFIBA
{
// Token: 0x0600ED7D RID: 60797 RVA: 0x00384EDC File Offset: 0x003830DC
[Token(Token = "0x600ED7D")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public JFEAMMHFIBA()
{
}
// Token: 0x0600ED7E RID: 60798 RVA: 0x00384EF0 File Offset: 0x003830F0
[Token(Token = "0x600ED7E")]
[Address(RVA = "0x12A4EF0", Offset = "0x12A38F0", VA = "0x1812A4EF0")]
internal bool <IsHairDyeAlreadyPurchased>b__0(ColorVault.ColorToGuid hc)
{
string text = this.hairDyeDesc;
bool flag = string.Equals(hc.guidString, text);
if (!flag)
{
return flag;
}
return hc.<Unlocked>k__BackingField;
}
// Token: 0x04009DAE RID: 40366
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DAE")]
public string hairDyeDesc;
}
}
}
@@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021AD RID: 8621
[Token(Token = "0x20021AD")]
[StructLayout(3)]
public class HairDyeRenderSetup : MonoBehaviour
{
// Token: 0x0600ED7F RID: 60799 RVA: 0x00384F24 File Offset: 0x00383124
[Token(Token = "0x600ED7F")]
[Address(RVA = "0x12A4B50", Offset = "0x12A3550", VA = "0x1812A4B50")]
public void SetupRenderers(ColorVault.ColorToGuid MEBLCMDDKCK)
{
for (;;)
{
int num = 0;
this.NPCPLFAONFO();
List<Renderer> list = this.itemRenderers;
List.Enumerator enumerator;
if (enumerator != 0)
{
bool flag;
while (!flag)
{
}
Material[] array = new Material[0];
if (num < array.Length)
{
break;
}
}
if (num != -1)
{
}
if (num == 0)
{
return;
}
}
Material material2;
Material material = new Material(material2);
throw new ArrayTypeMismatchException();
}
// Token: 0x0600ED80 RID: 60800 RVA: 0x00384FB4 File Offset: 0x003831B4
[Token(Token = "0x600ED80")]
[Address(RVA = "0x12A4B40", Offset = "0x12A3540", VA = "0x1812A4B40")]
private void OnDestroy()
{
this.NPCPLFAONFO();
}
// Token: 0x0600ED81 RID: 60801 RVA: 0x00384FC8 File Offset: 0x003831C8
[Token(Token = "0x600ED81")]
[Address(RVA = "0x12A4990", Offset = "0x12A3390", VA = "0x1812A4990")]
private void NPCPLFAONFO()
{
int num;
do
{
num = 0;
List<Material[]> aedmahjjpka = this.AEDMAHJJPKA;
List.Enumerator enumerator;
if (enumerator != 0)
{
num++;
}
if (num != -1)
{
}
}
while (num != 0);
this.AEDMAHJJPKA.Clear();
}
// Token: 0x0600ED82 RID: 60802 RVA: 0x0038500C File Offset: 0x0038320C
[Token(Token = "0x600ED82")]
[Address(RVA = "0x12A4E40", Offset = "0x12A3840", VA = "0x1812A4E40")]
public HairDyeRenderSetup()
{
List<Material[]> list = new List();
this.AEDMAHJJPKA = list;
base..ctor();
}
// Token: 0x04009DAF RID: 40367
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009DAF")]
[SerializeField]
private List<Renderer> itemRenderers;
// Token: 0x04009DB0 RID: 40368
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009DB0")]
private List<Material[]> AEDMAHJJPKA;
}
}
@@ -0,0 +1,1517 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Realtime;
using RecRoom.Async;
using RecRoom.Avatar.Data.Runtime;
using RecRoom.Core.DataStructures.Tokens;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021B2 RID: 8626
[Token(Token = "0x20021B2")]
[StructLayout(3)]
public class OutfitManager : NetworkedSingletonMonoBehaviour<OutfitManager>
{
// Token: 0x0600ED98 RID: 60824 RVA: 0x00385274 File Offset: 0x00383474
[Token(Token = "0x600ED98")]
[Address(RVA = "0x12A8AB0", Offset = "0x12A74B0", VA = "0x1812A8AB0")]
public APAODCKMEKF GetBrowsableAvatarItemByGuid(string COFLAJFOPEN)
{
Dictionary<string, APAODCKMEKF> khlonollnnf = this.KHLONOLLNNF;
int num = 0;
bool flag = khlonollnnf.TryGetValue(COFLAJFOPEN, num);
throw new NullReferenceException();
}
// Token: 0x0600ED99 RID: 60825 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ED99")]
[Address(RVA = "0x12A8B30", Offset = "0x12A7530", VA = "0x1812A8B30")]
public IPromise GetBrowsableAvatarItemsByGuids(List<string> BOIHKFECIGG, List<APAODCKMEKF> LLCIDEKMKBG, bool FLKBDJLHEDH = true)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600ED9A RID: 60826 RVA: 0x00385298 File Offset: 0x00383498
[Token(Token = "0x600ED9A")]
[Address(RVA = "0x12A8E80", Offset = "0x12A7880", VA = "0x1812A8E80")]
public IPromise<IEnumerable<string>> GetFilteredAvatarItemGuids(string KHFJLAPFOFI, bool HFFCNFLNFPE, APAODCKMEKF.INJKHADNCAE MKAMFBICAAH, params APAODCKMEKF.OBAKAPCJLEM[] ALMICNFABOK)
{
int num = 0;
int num2 = 0;
if (num2 < KHFJLAPFOFI)
{
num++;
}
List<string> dmgkekjiema = OutfitManager.DMGKEKJIEMA;
IPromise<string> promise;
return promise;
}
// Token: 0x0600ED9B RID: 60827 RVA: 0x003852C8 File Offset: 0x003834C8
[Token(Token = "0x600ED9B")]
[Address(RVA = "0x12AA160", Offset = "0x12A8B60", VA = "0x1812AA160")]
private void KGJKDAPMLEM()
{
int num;
do
{
num = 0;
this.KHLONOLLNNF.Clear();
this.EBMJIJKHKJA.Clear();
HashSet<AvatarItem> nkihcllango = this.NKIHCLLANGO;
HashSet<AvatarItem> nkihcllango2 = this.NKIHCLLANGO;
num += num;
num++;
APAODCKMEKF apaodckmekf = new APAODCKMEKF();
OutfitManager.AvatarItemMetadata avatarItemMetadata;
apaodckmekf.<FLFHILBLCOG>k__BackingField = avatarItemMetadata;
apaodckmekf.<OHIGJIBAPHD>k__BackingField = num;
apaodckmekf.<FPECCGKDEMF>k__BackingField = true;
this.BLBNKOIALHE(apaodckmekf);
apaodckmekf += apaodckmekf;
if (num != -1)
{
}
}
while (num != 0);
IPromise<BKFGFHDDNFG> promise = GEAPBDGCKMB.PGIMFDLBHON(DGOHCPBKOHD.Watch);
Action<BKFGFHDDNFG> action = new Action(this.FDJACEDFOHM);
if (OutfitManager.<>c.<>9__8_0 == 0)
{
OutfitManager.<>c.<>9__8_0 = delegate
{
ActionEvent browsableItemsChangedEvent = OutfitManager.BrowsableItemsChangedEvent;
int num2 = 0;
browsableItemsChangedEvent.Invoke(num2 != 0);
};
}
}
// Token: 0x0600ED9C RID: 60828 RVA: 0x00385380 File Offset: 0x00383580
[Token(Token = "0x600ED9C")]
[Address(RVA = "0x12AA8F0", Offset = "0x12A92F0", VA = "0x1812AA8F0")]
private IPromise LFGLKGGBJHF()
{
IPromise<BKFGFHDDNFG> promise = GEAPBDGCKMB.PGIMFDLBHON(DGOHCPBKOHD.Watch);
Action<BKFGFHDDNFG> action = new Action(this.FDJACEDFOHM);
throw new NullReferenceException();
}
// Token: 0x0600ED9D RID: 60829 RVA: 0x003853A8 File Offset: 0x003835A8
[Token(Token = "0x600ED9D")]
[Address(RVA = "0x12A9640", Offset = "0x12A8040", VA = "0x1812A9640")]
private void HNPFOAIMPNG(AvatarItem LACNEKHKOII)
{
OutfitManager.AvatarItemMetadata avatarItemMetadata;
this.BLBNKOIALHE(new APAODCKMEKF
{
<FLFHILBLCOG>k__BackingField = avatarItemMetadata,
<OHIGJIBAPHD>k__BackingField = (ulong)0L,
<FPECCGKDEMF>k__BackingField = true
});
}
// Token: 0x0600ED9E RID: 60830 RVA: 0x003853E0 File Offset: 0x003835E0
[Token(Token = "0x600ED9E")]
[Address(RVA = "0x12A96F0", Offset = "0x12A80F0", VA = "0x1812A96F0")]
private APAODCKMEKF IDKKJAFCBAN(AvatarItem LACNEKHKOII)
{
APAODCKMEKF apaodckmekf = new APAODCKMEKF();
OutfitManager.AvatarItemMetadata avatarItemMetadata;
apaodckmekf.<FLFHILBLCOG>k__BackingField = avatarItemMetadata;
apaodckmekf.<OHIGJIBAPHD>k__BackingField = (ulong)0L;
apaodckmekf.<FPECCGKDEMF>k__BackingField = false;
this.BLBNKOIALHE(apaodckmekf);
return apaodckmekf;
}
// Token: 0x0600ED9F RID: 60831 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ED9F")]
[Address(RVA = "0x12A8960", Offset = "0x12A7360", VA = "0x1812A8960")]
private void GOOHDGKHHNM(AvatarItem LACNEKHKOII, HOJMGAMMIAD EBMJDCLJJHG)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600EDA0 RID: 60832 RVA: 0x00385418 File Offset: 0x00383618
[Token(Token = "0x600EDA0")]
[Address(RVA = "0x12A7FB0", Offset = "0x12A69B0", VA = "0x1812A7FB0")]
private void BLBNKOIALHE(APAODCKMEKF FOAHCAIKPLO)
{
string text;
this.EBMJIJKHKJA.Add(text);
this.KHLONOLLNNF[text] = FOAHCAIKPLO;
}
// Token: 0x0600EDA1 RID: 60833 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EDA1")]
[Address(RVA = "0x12AA880", Offset = "0x12A9280", VA = "0x1812AA880")]
private static MJLPNOMEFKG KNJALGGCDMK(HOJMGAMMIAD EBMJDCLJJHG)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600EDA2 RID: 60834 RVA: 0x00385444 File Offset: 0x00383644
[Token(Token = "0x600EDA2")]
[Address(RVA = "0x12AA810", Offset = "0x12A9210", VA = "0x1812AA810")]
private string KHKKLFCKBNK(string COFLAJFOPEN)
{
OutfitManager.AvatarItemMetadata <FLFHILBLCOG>k__BackingField;
do
{
APAODCKMEKF browsableAvatarItemByGuid = this.GetBrowsableAvatarItemByGuid(COFLAJFOPEN);
if (browsableAvatarItemByGuid == 0)
{
break;
}
<FLFHILBLCOG>k__BackingField = browsableAvatarItemByGuid.<FLFHILBLCOG>k__BackingField;
}
while (<FLFHILBLCOG>k__BackingField != 0 && <FLFHILBLCOG>k__BackingField.FriendlyName != 0);
return string.Empty;
}
// Token: 0x0600EDA3 RID: 60835 RVA: 0x00385478 File Offset: 0x00383678
[Token(Token = "0x600EDA3")]
[Address(RVA = "0x12A9A70", Offset = "0x12A8470", VA = "0x1812A9A70")]
private GiftManager.MCEEFCNMNAH JDFLLLCACOE(string COFLAJFOPEN)
{
/*
An exception occurred when decompiling this method (0600EDA3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling GiftManager/MCEEFCNMNAH RecRoom.Avatar.Outfit.OutfitManager::JDFLLLCACOE(System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:AvatarItemMetadata(var_1_12, ldfld:AvatarItemMetadata(APAODCKMEKF::<FLFHILBLCOG>k__BackingField, ldloc:APAODCKMEKF(var_0_07)))
brtrue(IL_00, ceq:bool(ldloc:AvatarItemMetadata(var_1_12), ldc.i4:int32[exp:AvatarItemMetadata](0)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600EDA4 RID: 60836 RVA: 0x003854A0 File Offset: 0x003836A0
[Token(Token = "0x600EDA4")]
[Address(RVA = "0x12A97B0", Offset = "0x12A81B0", VA = "0x1812A97B0")]
private int INENIONEEOH(string COFLAJFOPEN)
{
APAODCKMEKF browsableAvatarItemByGuid = this.GetBrowsableAvatarItemByGuid(COFLAJFOPEN);
if (browsableAvatarItemByGuid == 0)
{
return int.MaxValue;
}
if (browsableAvatarItemByGuid.PDPOGMFOACI)
{
return 0;
}
if (browsableAvatarItemByGuid.<OHIGJIBAPHD>k__BackingField != 0)
{
return 1;
}
return 2;
}
// Token: 0x0600EDA5 RID: 60837 RVA: 0x003854D8 File Offset: 0x003836D8
[Token(Token = "0x600EDA5")]
[Address(RVA = "0x12AA550", Offset = "0x12A8F50", VA = "0x1812AA550")]
private void KHBIOENJIFC(List<string> BNGMFBNNBDJ, APAODCKMEKF.INJKHADNCAE MKAMFBICAAH)
{
int num = MKAMFBICAAH - APAODCKMEKF.INJKHADNCAE.Alphabetical;
if (num != 0)
{
if (num != 0)
{
if (num != 1)
{
if (MKAMFBICAAH == APAODCKMEKF.INJKHADNCAE.AlphabeticalDescending)
{
Func<string, string> func = new Func(this.KHKKLFCKBNK);
IOrderedEnumerable<string> orderedEnumerable = Enumerable.OrderByDescending<string, string>(BNGMFBNNBDJ, func);
}
if (MKAMFBICAAH != APAODCKMEKF.INJKHADNCAE.RarityDescending)
{
goto IL_95;
}
Func<string, GiftManager.MCEEFCNMNAH> func2 = new Func(this.JDFLLLCACOE);
IOrderedEnumerable<string> orderedEnumerable2 = Enumerable.OrderByDescending<string, GiftManager.MCEEFCNMNAH>(BNGMFBNNBDJ, func2);
Func<string, string> func3 = new Func(this.KHKKLFCKBNK);
IOrderedEnumerable<string> orderedEnumerable3 = Enumerable.ThenBy<string, string>(orderedEnumerable2, func3);
}
Func<string, GiftManager.MCEEFCNMNAH> func4 = new Func(this.JDFLLLCACOE);
IOrderedEnumerable<string> orderedEnumerable4 = Enumerable.OrderBy<string, GiftManager.MCEEFCNMNAH>(BNGMFBNNBDJ, func4);
}
Func<string, int> func5 = new Func(this.INENIONEEOH);
IOrderedEnumerable<string> orderedEnumerable5 = Enumerable.OrderBy<string, int>(BNGMFBNNBDJ, func5);
}
IL_95:
Func<string, string> func6 = new Func(this.KHKKLFCKBNK);
IOrderedEnumerable<string> orderedEnumerable6 = Enumerable.OrderBy<string, string>(BNGMFBNNBDJ, func6);
OutfitManager.ECAAHMIBOOC.Clear();
OutfitManager.ECAAHMIBOOC.AddRange(orderedEnumerable6);
BNGMFBNNBDJ.Clear();
List<string> ecaahmibooc = OutfitManager.ECAAHMIBOOC;
BNGMFBNNBDJ.AddRange(ecaahmibooc);
OutfitManager.ECAAHMIBOOC.Clear();
}
// Token: 0x0600EDA6 RID: 60838 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EDA6")]
[Address(RVA = "0x12AAD80", Offset = "0x12A9780", VA = "0x1812AAD80")]
private void ONHCNJEINAK(List<string> LLCIDEKMKBG, string KHFJLAPFOFI, bool HFFCNFLNFPE, APAODCKMEKF.INJKHADNCAE MKAMFBICAAH, APAODCKMEKF.OBAKAPCJLEM ALMICNFABOK)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600EDA7 RID: 60839 RVA: 0x003855D0 File Offset: 0x003837D0
[Token(Token = "0x600EDA7")]
[Address(RVA = "0x12A7C50", Offset = "0x12A6650", VA = "0x1812A7C50", Slot = "13")]
protected override void Awake()
{
base.Awake();
this.EDCLJLEICAC();
}
// Token: 0x140000F5 RID: 245
// (add) Token: 0x0600EDA8 RID: 60840 RVA: 0x003855EC File Offset: 0x003837EC
// (remove) Token: 0x0600EDA9 RID: 60841 RVA: 0x00385614 File Offset: 0x00383814
[Token(Token = "0x140000F5")]
public event Action<AvatarItem> LGHHLODGCFO
{
[Token(Token = "0x600EDA8")]
[Address(RVA = "0x12AC540", Offset = "0x12AAF40", VA = "0x1812AC540")]
[CompilerGenerated]
add
{
Action<AvatarItem> lghhlodgcfo;
Delegate @delegate;
do
{
lghhlodgcfo = this.LGHHLODGCFO;
@delegate = Delegate.Combine(lghhlodgcfo, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != lghhlodgcfo)
{
}
}
[Token(Token = "0x600EDA9")]
[Address(RVA = "0x12AC600", Offset = "0x12AB000", VA = "0x1812AC600")]
[CompilerGenerated]
remove
{
Action<AvatarItem> lghhlodgcfo;
Delegate @delegate;
do
{
lghhlodgcfo = this.LGHHLODGCFO;
@delegate = Delegate.Remove(lghhlodgcfo, value);
}
while (@delegate != 0 && @delegate == 0);
while (@delegate != lghhlodgcfo)
{
}
}
}
// Token: 0x170027D3 RID: 10195
// (get) Token: 0x0600EDAA RID: 60842 RVA: 0x0038563C File Offset: 0x0038383C
[Token(Token = "0x170027D3")]
public IReadOnlyCollection<AvatarItem> KOJIFKGBDMG
{
[Token(Token = "0x600EDAA")]
[Address(RVA = "0x48F050", Offset = "0x48DA50", VA = "0x18048F050")]
get
{
/*
An exception occurred when decompiling this method (0600EDAA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IReadOnlyCollection`1<RecRoom.Avatar.Data.Runtime.AvatarItem> RecRoom.Avatar.Outfit.OutfitManager::get_UnlockedAvatarItems()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:class [System.Core]System.Collections.Generic.HashSet`1<valuetype RecRoom.Avatar.Data.Runtime.AvatarItem>(var_0_06, ldfld:class [System.Core]System.Collections.Generic.HashSet`1<valuetype RecRoom.Avatar.Data.Runtime.AvatarItem>(OutfitManager::NKIHCLLANGO, ldloc:OutfitManager(this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
}
// Token: 0x0600EDAB RID: 60843 RVA: 0x00385650 File Offset: 0x00383850
[Token(Token = "0x600EDAB")]
[Address(RVA = "0x12A82B0", Offset = "0x12A6CB0", VA = "0x1812A82B0")]
public IEnumerator DownloadUnlockedAvatarItems(BPHGKAEDBPE.CBEOHBCIPEA AFLPGGJMPOE)
{
return NLEKGNENMCO.JMILOAEBBAK(delegate(string e, List<NLEKGNENMCO.EPFHLDCPAOK> avatarItemDetailsList)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
});
}
// Token: 0x0600EDAC RID: 60844 RVA: 0x00385688 File Offset: 0x00383888
[Token(Token = "0x600EDAC")]
[Address(RVA = "0x12A81A0", Offset = "0x12A6BA0", VA = "0x1812A81A0")]
public IPromise<List<NLEKGNENMCO.EPFHLDCPAOK>> DownloadLockedAvatarItemDetailsByAvatarItemDescription(List<string> DDMOKHDKAIG)
{
IPromise<List<NLEKGNENMCO.EPFHLDCPAOK>> promise = NLEKGNENMCO.KLPMNFCFOLE(DDMOKHDKAIG);
Action<List<NLEKGNENMCO.EPFHLDCPAOK>> action = new Action(this.JKNMFEOIFPD);
int num = 0;
num += num;
num++;
return promise.Then(action);
}
// Token: 0x0600EDAD RID: 60845 RVA: 0x003856C4 File Offset: 0x003838C4
[Token(Token = "0x600EDAD")]
[Address(RVA = "0x12A8050", Offset = "0x12A6A50", VA = "0x1812A8050")]
private void BPDDIKFOCPE(AvatarItem LACNEKHKOII, NLEKGNENMCO.EPFHLDCPAOK AFOAIPBOACM)
{
HashSet<AvatarItem> nkihcllango = this.NKIHCLLANGO;
bool flag;
if (flag)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag2;
if (!flag2)
{
OutfitManager.AvatarItemMetadata avatarItemMetadata = new OutfitManager.AvatarItemMetadata();
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg2 = this.ONKBHGLCAEG;
}
string <FNIGMBMFOJL>k__BackingField = AFOAIPBOACM.<FNIGMBMFOJL>k__BackingField;
string <ILKJJMACHPC>k__BackingField = AFOAIPBOACM.<ILKJJMACHPC>k__BackingField;
GiftManager.MCEEFCNMNAH <IGOLNCKNKMK>k__BackingField = AFOAIPBOACM.<IGOLNCKNKMK>k__BackingField;
}
}
// Token: 0x0600EDAE RID: 60846 RVA: 0x00385718 File Offset: 0x00383918
[Token(Token = "0x600EDAE")]
[Address(RVA = "0x12AC170", Offset = "0x12AAB70", VA = "0x1812AC170")]
public bool UnlockAvatarItemAndMarkNew(string DJHKBMIDFLF)
{
OutfitManager.BBKOFMBAPHK bbkofmbaphk = new OutfitManager.BBKOFMBAPHK();
bbkofmbaphk.avatarItemDesc = DJHKBMIDFLF;
bbkofmbaphk.<>4__this = this;
HashSet<AvatarItem> nkihcllango = this.NKIHCLLANGO;
bool flag;
if (!flag)
{
return flag;
}
OutfitManager.AvatarItemMetadata avatarItemMetadata;
OutfitManager.AvatarItemMetadata metadata = avatarItemMetadata;
avatarItemMetadata.IsNew = true;
this.EDCLJLEICAC();
if (this.LGHHLODGCFO != 0)
{
}
ActionEvent unlockedAvatarItemsChangedEvent = this.UnlockedAvatarItemsChangedEvent;
int num = 0;
unlockedAvatarItemsChangedEvent.Invoke(num != 0);
IEnumerator enumerator = NLEKGNENMCO.JMILOAEBBAK(delegate(string e, List<NLEKGNENMCO.EPFHLDCPAOK> unlockedAvatarItems)
{
if (unlockedAvatarItems != 0)
{
OutfitManager.BBKOFMBAPHK cs$<>8__locals = bbkofmbaphk;
Predicate<NLEKGNENMCO.EPFHLDCPAOK> <>9__ = cs$<>8__locals.<>9__1;
if (<>9__ == 0)
{
Predicate<NLEKGNENMCO.EPFHLDCPAOK> predicate = delegate(NLEKGNENMCO.EPFHLDCPAOK uai)
{
string avatarItemDesc = cs$<>8__locals.avatarItemDesc;
return string.Equals(uai.<KHKDPOODHCD>k__BackingField, avatarItemDesc);
};
cs$<>8__locals.<>9__1 = predicate;
}
NLEKGNENMCO.EPFHLDCPAOK epfhldcpaok = unlockedAvatarItems.Find(<>9__);
OutfitManager.AvatarItemMetadata metadata4 = metadata;
string <FNIGMBMFOJL>k__BackingField = epfhldcpaok.<FNIGMBMFOJL>k__BackingField;
metadata4.FriendlyName = <FNIGMBMFOJL>k__BackingField;
OutfitManager.AvatarItemMetadata metadata2 = metadata;
string <ILKJJMACHPC>k__BackingField = epfhldcpaok.<ILKJJMACHPC>k__BackingField;
metadata2.Tooltip = <ILKJJMACHPC>k__BackingField;
OutfitManager.AvatarItemMetadata metadata3 = metadata;
GiftManager.MCEEFCNMNAH <IGOLNCKNKMK>k__BackingField = epfhldcpaok.<IGOLNCKNKMK>k__BackingField;
metadata3.Rarity = <IGOLNCKNKMK>k__BackingField;
bbkofmbaphk.<>4__this.KGJKDAPMLEM();
bbkofmbaphk.<>4__this.HairColorVault.LinkDyesToWatchStorefront();
}
});
Coroutine coroutine = base.StartCoroutine(enumerator);
throw new NullReferenceException();
}
// Token: 0x0600EDAF RID: 60847 RVA: 0x003857AC File Offset: 0x003839AC
[Token(Token = "0x600EDAF")]
[Address(RVA = "0x12AAD00", Offset = "0x12A9700", VA = "0x1812AAD00")]
public void MarkNotNew(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (flag)
{
}
}
// Token: 0x0600EDB0 RID: 60848 RVA: 0x003857CC File Offset: 0x003839CC
[Token(Token = "0x600EDB0")]
[Address(RVA = "0x12AAC30", Offset = "0x12A9630", VA = "0x1812AAC30")]
public void MarkGiftPackageItemAvailable(string DJHKBMIDFLF)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
OutfitManager.AvatarItemMetadata avatarItemMetadata = new OutfitManager.AvatarItemMetadata();
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg2 = this.ONKBHGLCAEG;
}
}
// Token: 0x0600EDB1 RID: 60849 RVA: 0x003857FC File Offset: 0x003839FC
[Token(Token = "0x600EDB1")]
[Address(RVA = "0x12A9960", Offset = "0x12A8360", VA = "0x1812A9960")]
public bool IsAvatarItemUnlocked(AvatarItem LACNEKHKOII)
{
HashSet<AvatarItem> nkihcllango = this.NKIHCLLANGO;
bool flag;
return flag;
}
// Token: 0x0600EDB2 RID: 60850 RVA: 0x00385814 File Offset: 0x00383A14
[Token(Token = "0x600EDB2")]
[Address(RVA = "0x12A99C0", Offset = "0x12A83C0", VA = "0x1812A99C0")]
public bool IsAvatarItemUnlocked(string DJHKBMIDFLF)
{
/*
An exception occurred when decompiling this method (0600EDB2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean RecRoom.Avatar.Outfit.OutfitManager::IsAvatarItemUnlocked(System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:class [System.Core]System.Collections.Generic.HashSet`1<valuetype RecRoom.Avatar.Data.Runtime.AvatarItem>(var_1_06, ldfld:class [System.Core]System.Collections.Generic.HashSet`1<valuetype RecRoom.Avatar.Data.Runtime.AvatarItem>(OutfitManager::NKIHCLLANGO, ldloc:OutfitManager(this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600EDB3 RID: 60851 RVA: 0x0038582C File Offset: 0x00383A2C
[Token(Token = "0x600EDB3")]
[Address(RVA = "0x12A98B0", Offset = "0x12A82B0", VA = "0x1812A98B0")]
public bool IsAvatarItemAlreadyPurchased(AvatarItem LACNEKHKOII)
{
string text = LACNEKHKOII._avatarItemVisualData.JOPJHHOJMEE();
return SingletonMonoBehaviour.Instance.IsOutfitAvailableInGiftPackageQueue(text) || this.IsAvatarItemUnlocked(text);
}
// Token: 0x0600EDB4 RID: 60852 RVA: 0x00385864 File Offset: 0x00383A64
[Token(Token = "0x600EDB4")]
[Address(RVA = "0x12A9810", Offset = "0x12A8210", VA = "0x1812A9810")]
public bool IsAvatarItemAlreadyPurchased(string DJHKBMIDFLF)
{
return SingletonMonoBehaviour.Instance.IsOutfitAvailableInGiftPackageQueue(DJHKBMIDFLF) || this.IsAvatarItemUnlocked(DJHKBMIDFLF);
}
// Token: 0x0600EDB5 RID: 60853 RVA: 0x00385890 File Offset: 0x00383A90
[Token(Token = "0x600EDB5")]
[Address(RVA = "0x12A9060", Offset = "0x12A7A60", VA = "0x1812A9060")]
public bool GetItemIsNew(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
return flag;
}
throw new NullReferenceException();
}
// Token: 0x0600EDB6 RID: 60854 RVA: 0x003858B0 File Offset: 0x00383AB0
[Token(Token = "0x600EDB6")]
[Address(RVA = "0x12A8FC0", Offset = "0x12A79C0", VA = "0x1812A8FC0")]
public string GetItemFriendlyName(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
return string.Empty;
}
throw new NullReferenceException();
}
// Token: 0x0600EDB7 RID: 60855 RVA: 0x003858D4 File Offset: 0x00383AD4
[Token(Token = "0x600EDB7")]
[Address(RVA = "0x12A9250", Offset = "0x12A7C50", VA = "0x1812A9250")]
public string GetItemTooltip(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
return string.Empty;
}
throw new NullReferenceException();
}
// Token: 0x0600EDB8 RID: 60856 RVA: 0x003858F8 File Offset: 0x00383AF8
[Token(Token = "0x600EDB8")]
[Address(RVA = "0x12A91C0", Offset = "0x12A7BC0", VA = "0x1812A91C0")]
public GiftManager.MCEEFCNMNAH GetItemRarity(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
return GiftManager.MCEEFCNMNAH.None;
}
throw new NullReferenceException();
}
// Token: 0x0600EDB9 RID: 60857 RVA: 0x00385918 File Offset: 0x00383B18
[Token(Token = "0x600EDB9")]
[Address(RVA = "0x12A90F0", Offset = "0x12A7AF0", VA = "0x1812A90F0")]
public OutfitManager.AvatarItemMetadata GetItemMetadata(AvatarItem IOBEPGLJNIP)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
new OutfitManager.AvatarItemMetadata().IsNew = false;
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg2 = this.ONKBHGLCAEG;
}
throw new NullReferenceException();
}
// Token: 0x0600EDBA RID: 60858 RVA: 0x00385948 File Offset: 0x00383B48
[Token(Token = "0x600EDBA")]
[Address(RVA = "0x12A8370", Offset = "0x12A6D70", VA = "0x1812A8370")]
private void EDCLJLEICAC()
{
HashSet<AvatarItem> nkihcllango = this.NKIHCLLANGO;
Func<AvatarItem, LKAGLMBDHJN> <>9__47_ = OutfitManager.<>c.<>9__47_0;
if (<>9__47_ == 0)
{
OutfitManager.<>c.<>9__47_0 = delegate(AvatarItem i)
{
throw new NullReferenceException();
};
}
IEnumerable enumerable = Enumerable.GroupBy<AvatarItem, LKAGLMBDHJN>(nkihcllango, <>9__47_);
Func<IGrouping<LKAGLMBDHJN, AvatarItem>, LKAGLMBDHJN> func;
if (OutfitManager.<>c.<>9__47_1 == 0)
{
func = delegate(IGrouping<LKAGLMBDHJN, AvatarItem> g)
{
throw new NullReferenceException();
};
OutfitManager.<>c.<>9__47_1 = func;
}
Func<IGrouping<LKAGLMBDHJN, AvatarItem>, List<AvatarItem>> func2;
if (OutfitManager.<>c.<>9__47_2 == 0)
{
func2 = (IGrouping<LKAGLMBDHJN, AvatarItem> g) => Enumerable.ToList<AvatarItem>(g);
OutfitManager.<>c.<>9__47_2 = func2;
}
Dictionary<IGrouping<LKAGLMBDHJN, AvatarItem>, LKAGLMBDHJN> dictionary = Enumerable.ToDictionary<IGrouping<LKAGLMBDHJN, AvatarItem>, LKAGLMBDHJN, List<AvatarItem>>(enumerable, func, func2);
this.FCBILBFBCGJ = dictionary;
}
// Token: 0x0600EDBB RID: 60859 RVA: 0x003859D8 File Offset: 0x00383BD8
[Token(Token = "0x600EDBB")]
[Address(RVA = "0x12AB600", Offset = "0x12AA000", VA = "0x1812AB600")]
public void SetCanRemoveOutfitItemsByHand(bool ONGBFDACHHG, object PIHIPPPPEBI)
{
TokenFlag mpacdpddnpa = this.MPACDPDDNPA;
if (!ONGBFDACHHG)
{
mpacdpddnpa.Remove(PIHIPPPPEBI);
return;
}
mpacdpddnpa.Add(PIHIPPPPEBI);
}
// Token: 0x170027D4 RID: 10196
// (get) Token: 0x0600EDBC RID: 60860 RVA: 0x00385A08 File Offset: 0x00383C08
[Token(Token = "0x170027D4")]
public bool AHPPOPBCGEJ
{
[Token(Token = "0x600EDBC")]
[Address(RVA = "0x12AC5E0", Offset = "0x12AAFE0", VA = "0x1812AC5E0")]
get
{
return this.MPACDPDDNPA.HasTokens;
}
}
// Token: 0x0600EDBD RID: 60861 RVA: 0x00385A28 File Offset: 0x00383C28
[Token(Token = "0x600EDBD")]
[Address(RVA = "0x12AB0E0", Offset = "0x12A9AE0", VA = "0x1812AB0E0")]
public void RandomizePlayerOutfit()
{
int num;
List<AvatarItemSelection> list;
do
{
num = 0;
PlayerAvatar playerAvatar = global::Player.<EGKJPJKLEAI>k__BackingField.playerAvatar;
int num2 = 0;
if (!(playerAvatar != num2))
{
return;
}
list = new List();
Dictionary<LKAGLMBDHJN, List<AvatarItem>> fcbilbfbcgj = this.FCBILBFBCGJ;
Dictionary.Enumerator enumerator;
if (enumerator != 0)
{
bool flag;
if (!flag && global::UnityEngine.Random.value > 0.3f)
{
continue;
}
while (playerAvatar.LocalPlayerOutfitItemSelectionChangedEvent <= (ulong)0L)
{
}
AvatarItemSelection avatarItemSelection = ListExt.Random<AvatarItem>(list);
int num3 = 0;
global::Player.GAHEJKDCLLE gahejkdclle;
int num4 = (int)gahejkdclle;
list.Add(num3);
while (num4 != 2)
{
}
if (playerAvatar != (ulong)200L)
{
while (playerAvatar != (ulong)201L)
{
}
}
list.Add(num3);
}
if (num != -1)
{
}
}
while (num != 0);
global::Player.<EGKJPJKLEAI>k__BackingField.playerAvatar.SetLocalPlayerSelectedOutfit(list, true);
if (!SessionManager.IGCCGADCLBN)
{
CFLMJLFBOKH.ACLBKMGMCDC("RandomizePlayerOutfit");
}
}
// Token: 0x0600EDBE RID: 60862 RVA: 0x00385B0C File Offset: 0x00383D0C
[Token(Token = "0x600EDBE")]
[Address(RVA = "0x12A92F0", Offset = "0x12A7CF0", VA = "0x1812A92F0")]
public List<AvatarItemSelection> GetRandomInitialOutfit()
{
List<AvatarItem> initialAvatarItems = AvatarItemWardrobeRuntimeConfig.Config.initialAvatarItems;
if (OutfitManager.<>c.<>9__53_0 == 0)
{
OutfitManager.<>c.<>9__53_0 = (AvatarItem item) => "{il2cpp field on {'constant1' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x20}" == (ulong)2L;
}
List<AvatarItem> initialAvatarItems2 = AvatarItemWardrobeRuntimeConfig.Config.initialAvatarItems;
if (OutfitManager.<>c.<>9__53_1 == 0)
{
OutfitManager.<>c.<>9__53_1 = (AvatarItem item) => "{il2cpp field on {'constant1' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x20}" == (ulong)101L;
}
bool flag;
bool flag2;
if (!flag || !flag2)
{
Debug.LogError("Error building initial outfit!");
}
return new List();
}
// Token: 0x0600EDBF RID: 60863 RVA: 0x00385B90 File Offset: 0x00383D90
[Token(Token = "0x600EDBF")]
[Address(RVA = "0x12ABEF0", Offset = "0x12AA8F0", VA = "0x1812ABEF0")]
public static bool TryGetRandomItem(IEnumerable<AvatarItem> NPKMLLECNOF, Func<AvatarItem, bool> LMAJKCLDDIF, out AvatarItem NNLFIDNBHDK)
{
OutfitManager.FNPHHGHPGAI.Clear();
if (LMAJKCLDDIF != 0)
{
List<AvatarItem> fnphhghpgai = OutfitManager.FNPHHGHPGAI;
IEnumerable<AvatarItem> enumerable = Enumerable.Where<AvatarItem>(NPKMLLECNOF, LMAJKCLDDIF);
}
OutfitManager.FNPHHGHPGAI.AddRange(NPKMLLECNOF);
List<AvatarItem> fnphhghpgai2 = OutfitManager.FNPHHGHPGAI;
OutfitManager.FNPHHGHPGAI.Clear();
int num = 0;
NNLFIDNBHDK._avatarItemData = num;
NNLFIDNBHDK._avatarItemVisualData = num;
throw new NullReferenceException();
}
// Token: 0x0600EDC0 RID: 60864 RVA: 0x00385BEC File Offset: 0x00383DEC
[Token(Token = "0x600EDC0")]
[Address(RVA = "0x12AC0F0", Offset = "0x12AAAF0", VA = "0x1812AC0F0")]
public bool TryGetRandomUnlockedItem(Func<AvatarItem, bool> LMAJKCLDDIF, out AvatarItem NNLFIDNBHDK)
{
return OutfitManager.TryGetRandomItem(this.NKIHCLLANGO, LMAJKCLDDIF, ref NNLFIDNBHDK);
}
// Token: 0x0600EDC1 RID: 60865 RVA: 0x00385C08 File Offset: 0x00383E08
[Token(Token = "0x600EDC1")]
[Address(RVA = "0x12ABCA0", Offset = "0x12AA6A0", VA = "0x1812ABCA0")]
public bool TryGetDefaultTorsoItem(out AvatarItem JAAMIJFBHDL)
{
List<AvatarItem> defaultTorsoAvatarItems;
Func<AvatarItem, bool> <>9__56_;
do
{
defaultTorsoAvatarItems = AvatarItemWardrobeRuntimeConfig.Config.defaultTorsoAvatarItems;
<>9__56_ = OutfitManager.<>c.<>9__56_0;
if (<>9__56_ == 0)
{
OutfitManager.<>c.<>9__56_0 = (AvatarItem item) => "{il2cpp field on {'constant1' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x20}" == (ulong)101L;
}
}
while (OutfitManager.TryGetRandomItem(defaultTorsoAvatarItems, <>9__56_, ref JAAMIJFBHDL));
Func<AvatarItem, bool> func;
if (OutfitManager.<>c.<>9__56_1 == 0)
{
func = (AvatarItem item) => "{il2cpp field on {'constant1' (constant value of type Cpp2IL.Core.Analysis.Il2CppClassIdentifier)}, offset 0x20}" == (ulong)101L;
OutfitManager.<>c.<>9__56_1 = func;
}
return OutfitManager.TryGetRandomItem(this.NKIHCLLANGO, func, ref JAAMIJFBHDL);
}
// Token: 0x0600EDC2 RID: 60866 RVA: 0x00385C80 File Offset: 0x00383E80
[Token(Token = "0x600EDC2")]
[Address(RVA = "0x12A8900", Offset = "0x12A7300", VA = "0x1812A8900")]
public ColorVault.ColorToGuid FindHairColor(string BEIINJFEFJP, bool GNHMIFPDACD = true)
{
HairColorVault hairColorVault = this.HairColorVault;
return this.BEAFBGLAPJE(hairColorVault, BEIINJFEFJP, GNHMIFPDACD);
}
// Token: 0x0600EDC3 RID: 60867 RVA: 0x00385CA0 File Offset: 0x00383EA0
[Token(Token = "0x600EDC3")]
[Address(RVA = "0x12A8930", Offset = "0x12A7330", VA = "0x1812A8930")]
public ColorVault.ColorToGuid FindSkinColor(string IMLCGOCPBOC, bool GNHMIFPDACD = true)
{
ColorVault skinColorVault = this.SkinColorVault;
return this.BEAFBGLAPJE(skinColorVault, IMLCGOCPBOC, GNHMIFPDACD);
}
// Token: 0x0600EDC4 RID: 60868 RVA: 0x00385CC0 File Offset: 0x00383EC0
[Token(Token = "0x600EDC4")]
[Address(RVA = "0x12A8860", Offset = "0x12A7260", VA = "0x1812A8860")]
public AvatarFaceShape FindFaceShape(string EBCJKIKPFMG)
{
AvatarFaceShapeVault faceShapeVault = this.FaceShapeVault;
if (faceShapeVault.GBEHDBBNGMH.ContainsKey(EBCJKIKPFMG))
{
return faceShapeVault.GBEHDBBNGMH[EBCJKIKPFMG];
}
throw new NullReferenceException();
}
// Token: 0x0600EDC5 RID: 60869 RVA: 0x00385CF8 File Offset: 0x00383EF8
[Token(Token = "0x600EDC5")]
[Address(RVA = "0x12A87C0", Offset = "0x12A71C0", VA = "0x1812A87C0")]
public AvatarBodyShape FindBodyShape(string BIPOJLIEOIB)
{
AvatarBodyShapeVault bodyShapeVault = this.BodyShapeVault;
if (bodyShapeVault.GBEHDBBNGMH.ContainsKey(BIPOJLIEOIB))
{
return bodyShapeVault.GBEHDBBNGMH[BIPOJLIEOIB];
}
throw new NullReferenceException();
}
// Token: 0x0600EDC6 RID: 60870 RVA: 0x00385D30 File Offset: 0x00383F30
[Token(Token = "0x600EDC6")]
[Address(RVA = "0x12A7CA0", Offset = "0x12A66A0", VA = "0x1812A7CA0")]
private ColorVault.ColorToGuid BEAFBGLAPJE(ColorVault MMHAGMACGKJ, string CBCHEMNOLBO, bool GNHMIFPDACD = true)
{
do
{
if (MMHAGMACGKJ.KEHDHFLKCLO.ContainsKey(CBCHEMNOLBO))
{
ColorVault.ColorToGuid colorToGuid = MMHAGMACGKJ.KEHDHFLKCLO[CBCHEMNOLBO];
}
}
while (0 == 0);
int num = 0;
bool flag = ColorVault.ColorToGuid.BDBLGMKABNK(0, num);
if (0 != 0)
{
MMHAGMACGKJ.Awake();
object[] array = new object[5];
if ("Outfit Manager FindColor in " != 0)
{
}
array[0] = "Outfit Manager FindColor in ";
array[1] = MMHAGMACGKJ;
if (" can't find matching color for the guid " != 0)
{
}
array[2] = " can't find matching color for the guid ";
if (CBCHEMNOLBO != 0)
{
}
array[3] = CBCHEMNOLBO;
if (". Getting a random one." != 0)
{
}
array[4] = ". Getting a random one.";
Debug.LogWarning(string.Concat(array));
}
throw new NullReferenceException();
}
// Token: 0x0600EDC7 RID: 60871 RVA: 0x00385DD8 File Offset: 0x00383FD8
[Token(Token = "0x600EDC7")]
[Address(RVA = "0x12A9B00", Offset = "0x12A8500", VA = "0x1812A9B00")]
private OutfitTool JHGCPGJHJHF(string FNKOCNMJKLK, global::Player FAGBHOMBNBP, AvatarItem? LACNEKHKOII, PlayerSpawnedEquipment.IILDIBHEIDO OEFOIFHDBEN)
{
int num = 0;
Dictionary<string, object> dictionary = new Dictionary();
Photon.Realtime.Player photonPlayer = FAGBHOMBNBP.DBAJDHGDPOL;
int num2;
dictionary.Add("Owner", num2);
dictionary.Add("Purpose", num2);
dictionary.Add("AvatarItem", num);
Quaternion identity = Quaternion.identity;
int num3 = 0;
int viewIdField = base.photonView.viewIdField;
Tool tool = Tool.PhotonInstantiate(FNKOCNMJKLK, num3, num, 1f, viewIdField, dictionary);
int num4 = 0;
OutfitTool component;
if (tool != num4)
{
component = tool.GetComponent<OutfitTool>();
}
tool.DODDBBEOJNN = true;
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = tool.<FLFJCIPBAPA>k__BackingField;
int num5 = 0;
if (<FLFJCIPBAPA>k__BackingField != num5)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
OutfitManager.AvatarItemMetadata avatarItemMetadata;
if (!flag)
{
avatarItemMetadata = new OutfitManager.AvatarItemMetadata();
avatarItemMetadata.IsNew = true;
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg2 = this.ONKBHGLCAEG;
}
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = tool.<FLFJCIPBAPA>k__BackingField;
bool isNew = avatarItemMetadata.IsNew;
<FLFJCIPBAPA>k__BackingField2.HICLCBMIPIN = isNew;
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField3 = tool.<FLFJCIPBAPA>k__BackingField;
int num6 = 0;
<FLFJCIPBAPA>k__BackingField3.GDAMPIOMCNE = num6 != 0;
}
return component;
}
// Token: 0x0600EDC8 RID: 60872 RVA: 0x00385ED8 File Offset: 0x003840D8
[Token(Token = "0x600EDC8")]
[Address(RVA = "0x12AA9A0", Offset = "0x12A93A0", VA = "0x1812AA9A0")]
private Tool LPGADCJPHHD(string FNKOCNMJKLK, global::Player FAGBHOMBNBP, string CBCHEMNOLBO, PlayerSpawnedEquipment.IILDIBHEIDO OEFOIFHDBEN)
{
Dictionary<string, object> dictionary = new Dictionary();
Photon.Realtime.Player photonPlayer = FAGBHOMBNBP.DBAJDHGDPOL;
int actorNumber = photonPlayer.actorNumber;
dictionary.Add("Owner", photonPlayer);
dictionary.Add("Purpose", photonPlayer);
dictionary.Add("ColorGuid", CBCHEMNOLBO);
Quaternion identity = Quaternion.identity;
int viewIdField = base.photonView.viewIdField;
Tool tool;
tool.DODDBBEOJNN = true;
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = tool.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = tool.<FLFJCIPBAPA>k__BackingField;
int num2 = 0;
<FLFJCIPBAPA>k__BackingField2.GDAMPIOMCNE = num2 != 0;
}
return tool;
}
// Token: 0x0600EDC9 RID: 60873 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EDC9")]
[Address(RVA = "0x12AB940", Offset = "0x12AA340", VA = "0x1812AB940")]
public IPromise<OutfitRenderSetup> SpawnOutfitImposter(AvatarItem LACNEKHKOII)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600EDCA RID: 60874 RVA: 0x00385F74 File Offset: 0x00384174
[Token(Token = "0x600EDCA")]
[Address(RVA = "0x12AB760", Offset = "0x12AA160", VA = "0x1812AB760")]
public GameObject SpawnHairDyeImposter(string KGKDKGBFDIA)
{
ColorVault.ColorToGuid dyeColor = this.HairColorVault.GetDyeColor(KGKDKGBFDIA);
if (dyeColor != 0)
{
int num = 0;
bool flag = ColorVault.ColorToGuid.BDBLGMKABNK(0, num);
HairDyeRenderSetup hairDyeRenderSetup = this.hairDyeImposterPrefab;
int num2 = 0;
HairDyeRenderSetup hairDyeRenderSetup2 = JODFIHBJHJM.EIJJOKINEIL<HairDyeRenderSetup>(hairDyeRenderSetup, num2, true);
hairDyeRenderSetup2.SetupRenderers(dyeColor);
return hairDyeRenderSetup2.gameObject;
}
throw new NullReferenceException();
}
// Token: 0x0600EDCB RID: 60875 RVA: 0x00385FCC File Offset: 0x003841CC
[Token(Token = "0x600EDCB")]
[Address(RVA = "0x12AB640", Offset = "0x12AA040", VA = "0x1812AB640")]
public OutfitTool SpawnDormOutfitForLocalPlayer()
{
string name = this.dormOutfitPrefab.name;
OutfitTool outfitTool;
return outfitTool;
}
// Token: 0x0600EDCC RID: 60876 RVA: 0x00385FF0 File Offset: 0x003841F0
[Token(Token = "0x600EDCC")]
[Address(RVA = "0x12ABAD0", Offset = "0x12AA4D0", VA = "0x1812ABAD0")]
public OutfitTool SpawnOutfitToolForLocalPlayer(AvatarItem FIDIMMBHIIN, PlayerSpawnedEquipment.IILDIBHEIDO OEFOIFHDBEN)
{
string name = this.outfitToolPrefab.name;
OutfitTool outfitTool;
return outfitTool;
}
// Token: 0x0600EDCD RID: 60877 RVA: 0x00386018 File Offset: 0x00384218
[Token(Token = "0x600EDCD")]
[Address(RVA = "0x12AB840", Offset = "0x12AA240", VA = "0x1812AB840")]
public Tool SpawnHairDyeToolForLocalPlayer(string KGKDKGBFDIA, PlayerSpawnedEquipment.IILDIBHEIDO OEFOIFHDBEN)
{
string name = this.hairDyeToolPrefab.name;
Tool tool;
return tool;
}
// Token: 0x0600EDCE RID: 60878 RVA: 0x0038603C File Offset: 0x0038423C
[Token(Token = "0x600EDCE")]
[Address(RVA = "0x12ABC40", Offset = "0x12AA640", VA = "0x1812ABC40")]
public OutfitToolUIControl SpawnOutfitUIControl()
{
return global::UnityEngine.Object.Instantiate<OutfitToolUIControl>(this.outfitToolUIControlPrefab);
}
// Token: 0x170027D5 RID: 10197
// (get) Token: 0x0600EDCF RID: 60879 RVA: 0x00386054 File Offset: 0x00384254
[Token(Token = "0x170027D5")]
public RecRoomAudioClip[] NIOOLMDKBHO
{
[Token(Token = "0x600EDCF")]
[Address(RVA = "0x3D3180", Offset = "0x3D1B80", VA = "0x1803D3180")]
get
{
return this.equipSounds;
}
}
// Token: 0x170027D6 RID: 10198
// (get) Token: 0x0600EDD0 RID: 60880 RVA: 0x00386068 File Offset: 0x00384268
[Token(Token = "0x170027D6")]
public RecRoomAudioClip BFDIIFNGIJH
{
[Token(Token = "0x600EDD0")]
[Address(RVA = "0x408B30", Offset = "0x407530", VA = "0x180408B30")]
get
{
return this.lockedOutfitToolClip;
}
}
// Token: 0x0600EDD1 RID: 60881 RVA: 0x0038607C File Offset: 0x0038427C
[Token(Token = "0x600EDD1")]
[Address(RVA = "0x12AC410", Offset = "0x12AAE10", VA = "0x1812AC410")]
public OutfitManager()
{
Dictionary<string, APAODCKMEKF> dictionary = new Dictionary();
this.KHLONOLLNNF = dictionary;
List<string> list = new List();
this.EBMJIJKHKJA = list;
int num;
ActionEvent actionEvent = new ActionEvent(32, num != 0);
num = 0;
this.UnlockedAvatarItemsChangedEvent = actionEvent;
HashSet<AvatarItem> hashSet = new HashSet();
this.NKIHCLLANGO = hashSet;
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> dictionary2 = new Dictionary();
this.ONKBHGLCAEG = dictionary2;
TokenFlag tokenFlag = new TokenFlag();
this.MPACDPDDNPA = tokenFlag;
base..ctor();
}
// Token: 0x0600EDD2 RID: 60882 RVA: 0x003860E8 File Offset: 0x003842E8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600EDD2")]
[Address(RVA = "0x12AC320", Offset = "0x12AAD20", VA = "0x1812AC320")]
static OutfitManager()
{
int num;
ActionEvent actionEvent = new ActionEvent(32, num != 0);
num = 0;
OutfitManager.BrowsableItemsChangedEvent = actionEvent;
OutfitManager.FNPHHGHPGAI = new List();
}
// Token: 0x0600EDD3 RID: 60883 RVA: 0x00386124 File Offset: 0x00384324
[Token(Token = "0x600EDD3")]
[Address(RVA = "0x12A85D0", Offset = "0x12A6FD0", VA = "0x1812A85D0")]
[CompilerGenerated]
private void FDJACEDFOHM(BKFGFHDDNFG NHACFCEIPCB)
{
int num;
do
{
num = 0;
List<HOJMGAMMIAD> jdgebbmdjbc = NHACFCEIPCB.JDGEBBMDJBC;
List.Enumerator enumerator;
if (enumerator != 0)
{
MJLPNOMEFKG mjlpnomefkg;
while (mjlpnomefkg == 0)
{
}
while (mjlpnomefkg.<KFFMMFIJKJM>k__BackingField != GiftManager.HDMOIDKEOCM.OutfitItem)
{
}
string <MCGDGOKLALG>k__BackingField = mjlpnomefkg.<MCGDGOKLALG>k__BackingField;
if (this.GetBrowsableAvatarItemByGuid(<MCGDGOKLALG>k__BackingField) == 0)
{
}
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x0600EDD4 RID: 60884 RVA: 0x00386168 File Offset: 0x00384368
[Token(Token = "0x600EDD4")]
[Address(RVA = "0x12A9EE0", Offset = "0x12A88E0", VA = "0x1812A9EE0")]
[CompilerGenerated]
private void JKNMFEOIFPD(List<NLEKGNENMCO.EPFHLDCPAOK> MNMHKKIMEFP)
{
int num;
do
{
num = 0;
List.Enumerator enumerator;
if (enumerator != 0)
{
Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> onkbhglcaeg = this.ONKBHGLCAEG;
bool flag;
if (!flag)
{
OutfitManager.AvatarItemMetadata avatarItemMetadata = new OutfitManager.AvatarItemMetadata();
int num2 = 0;
this.ONKBHGLCAEG[num2] = avatarItemMetadata;
}
object syncRoot = MNMHKKIMEFP._syncRoot;
}
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x04009DD7 RID: 40407
[Token(Token = "0x4009DD7")]
private static readonly List<string> DMGKEKJIEMA = new List();
// Token: 0x04009DD8 RID: 40408
[Token(Token = "0x4009DD8")]
private static readonly List<string> ECAAHMIBOOC = new List();
// Token: 0x04009DD9 RID: 40409
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009DD9")]
private readonly Dictionary<string, APAODCKMEKF> KHLONOLLNNF;
// Token: 0x04009DDA RID: 40410
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009DDA")]
private readonly List<string> EBMJIJKHKJA;
// Token: 0x04009DDB RID: 40411
[Token(Token = "0x4009DDB")]
public static readonly ActionEvent BrowsableItemsChangedEvent;
// Token: 0x04009DDC RID: 40412
[Token(Token = "0x4009DDC")]
private static readonly List<AvatarItem> FNPHHGHPGAI;
// Token: 0x04009DDE RID: 40414
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009DDE")]
public readonly ActionEvent UnlockedAvatarItemsChangedEvent;
// Token: 0x04009DDF RID: 40415
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009DDF")]
private Dictionary<LKAGLMBDHJN, List<AvatarItem>> FCBILBFBCGJ;
// Token: 0x04009DE0 RID: 40416
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4009DE0")]
private HashSet<AvatarItem> NKIHCLLANGO;
// Token: 0x04009DE1 RID: 40417
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009DE1")]
private readonly Dictionary<AvatarItem, OutfitManager.AvatarItemMetadata> ONKBHGLCAEG;
// Token: 0x04009DE2 RID: 40418
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009DE2")]
private TokenFlag MPACDPDDNPA;
// Token: 0x04009DE3 RID: 40419
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x4009DE3")]
[Header("Colors")]
public ColorVault SkinColorVault;
// Token: 0x04009DE4 RID: 40420
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x4009DE4")]
public HairColorVault HairColorVault;
// Token: 0x04009DE5 RID: 40421
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
[Token(Token = "0x4009DE5")]
[Header("Face Shapes")]
public AvatarFaceShapeVault FaceShapeVault;
// Token: 0x04009DE6 RID: 40422
[global::Cpp2IlInjected.FieldOffset(Offset = "0x98")]
[Token(Token = "0x4009DE6")]
[Header("Body Shapes")]
public AvatarBodyShapeVault BodyShapeVault;
// Token: 0x04009DE7 RID: 40423
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4009DE7")]
[SerializeField]
[Header("Item spawning")]
private GameObject outfitToolPrefab;
// Token: 0x04009DE8 RID: 40424
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA8")]
[Token(Token = "0x4009DE8")]
[SerializeField]
private GameObject dormOutfitPrefab;
// Token: 0x04009DE9 RID: 40425
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4009DE9")]
[SerializeField]
private OutfitRenderSetup outfitImposterPrefab;
// Token: 0x04009DEA RID: 40426
[global::Cpp2IlInjected.FieldOffset(Offset = "0xB8")]
[Token(Token = "0x4009DEA")]
[SerializeField]
private OutfitToolUIControl outfitToolUIControlPrefab;
// Token: 0x04009DEB RID: 40427
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4009DEB")]
[SerializeField]
private PermanentHairDyeTool hairDyeToolPrefab;
// Token: 0x04009DEC RID: 40428
[global::Cpp2IlInjected.FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4009DEC")]
[SerializeField]
private HairDyeRenderSetup hairDyeImposterPrefab;
// Token: 0x04009DED RID: 40429
[global::Cpp2IlInjected.FieldOffset(Offset = "0xD0")]
[Token(Token = "0x4009DED")]
[SerializeField]
[Header("Sounds")]
private RecRoomAudioClip[] equipSounds;
// Token: 0x04009DEE RID: 40430
[global::Cpp2IlInjected.FieldOffset(Offset = "0xD8")]
[Token(Token = "0x4009DEE")]
[SerializeField]
private RecRoomAudioClip lockedOutfitToolClip;
// Token: 0x020021B3 RID: 8627
[Token(Token = "0x20021B3")]
public class AvatarItemMetadata
{
// Token: 0x0600EDD5 RID: 60885 RVA: 0x003861DC File Offset: 0x003843DC
[Token(Token = "0x600EDD5")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public AvatarItemMetadata()
{
}
// Token: 0x04009DEF RID: 40431
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DEF")]
public bool IsNew;
// Token: 0x04009DF0 RID: 40432
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009DF0")]
public string FriendlyName;
// Token: 0x04009DF1 RID: 40433
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009DF1")]
public string Tooltip;
// Token: 0x04009DF2 RID: 40434
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009DF2")]
public GiftManager.MCEEFCNMNAH Rarity;
}
// Token: 0x020021B4 RID: 8628
[Token(Token = "0x20021B4")]
[CompilerGenerated]
private sealed class ENIIEHOLFLK
{
// Token: 0x0600EDD6 RID: 60886 RVA: 0x003861F0 File Offset: 0x003843F0
[Token(Token = "0x600EDD6")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ENIIEHOLFLK()
{
}
// Token: 0x0600EDD7 RID: 60887 RVA: 0x00386204 File Offset: 0x00384404
[Token(Token = "0x600EDD7")]
[Address(RVA = "0x1D0A910", Offset = "0x1D09310", VA = "0x181D0A910")]
internal IPromise<List<APAODCKMEKF>> <GetBrowsableAvatarItemsByGuids>b__0(List<NLEKGNENMCO.EPFHLDCPAOK> details)
{
int num;
do
{
num = 0;
List.Enumerator enumerator;
if (enumerator != 0)
{
List<APAODCKMEKF> list = this.results;
OutfitManager outfitManager = this.<>4__this;
APAODCKMEKF apaodckmekf;
list.Add(apaodckmekf);
}
if (num != -1)
{
}
}
while (num != 0);
List<APAODCKMEKF> list2 = this.results;
IPromise<APAODCKMEKF> promise;
return promise;
}
// Token: 0x04009DF3 RID: 40435
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DF3")]
public List<APAODCKMEKF> results;
// Token: 0x04009DF4 RID: 40436
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009DF4")]
public OutfitManager <>4__this;
}
// Token: 0x020021B6 RID: 8630
[Token(Token = "0x20021B6")]
[CompilerGenerated]
private sealed class ONGFJMIAPKM
{
// Token: 0x0600EDE2 RID: 60898 RVA: 0x00386364 File Offset: 0x00384564
[Token(Token = "0x600EDE2")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ONGFJMIAPKM()
{
}
// Token: 0x0600EDE3 RID: 60899 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600EDE3")]
[Address(RVA = "0x1D0E7F0", Offset = "0x1D0D1F0", VA = "0x181D0E7F0")]
internal void <DownloadUnlockedAvatarItems>b__0(string e, List<NLEKGNENMCO.EPFHLDCPAOK> avatarItemDetailsList)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x04009DFE RID: 40446
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009DFE")]
public OutfitManager <>4__this;
// Token: 0x04009DFF RID: 40447
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009DFF")]
public BPHGKAEDBPE.CBEOHBCIPEA callback;
}
// Token: 0x020021B7 RID: 8631
[Token(Token = "0x20021B7")]
[CompilerGenerated]
private sealed class BBKOFMBAPHK
{
// Token: 0x0600EDE4 RID: 60900 RVA: 0x00386378 File Offset: 0x00384578
[Token(Token = "0x600EDE4")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BBKOFMBAPHK()
{
}
// Token: 0x0600EDE5 RID: 60901 RVA: 0x0038638C File Offset: 0x0038458C
[Token(Token = "0x600EDE5")]
[Address(RVA = "0x4B0D60", Offset = "0x4AF760", VA = "0x1804B0D60")]
internal bool <UnlockAvatarItemAndMarkNew>b__1(NLEKGNENMCO.EPFHLDCPAOK uai)
{
string text = this.avatarItemDesc;
return string.Equals(uai.<KHKDPOODHCD>k__BackingField, text);
}
// Token: 0x04009E00 RID: 40448
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009E00")]
public string avatarItemDesc;
// Token: 0x04009E01 RID: 40449
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E01")]
public OutfitManager <>4__this;
// Token: 0x04009E02 RID: 40450
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009E02")]
public Predicate<NLEKGNENMCO.EPFHLDCPAOK> <>9__1;
}
// Token: 0x020021B8 RID: 8632
[Token(Token = "0x20021B8")]
[CompilerGenerated]
private sealed class AJEPGDGLINC
{
// Token: 0x0600EDE6 RID: 60902 RVA: 0x003863B4 File Offset: 0x003845B4
[Token(Token = "0x600EDE6")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public AJEPGDGLINC()
{
}
// Token: 0x0600EDE7 RID: 60903 RVA: 0x003863C8 File Offset: 0x003845C8
[Token(Token = "0x600EDE7")]
[Address(RVA = "0x1D09CD0", Offset = "0x1D086D0", VA = "0x181D09CD0")]
internal void <UnlockAvatarItemAndMarkNew>b__0(string e, List<NLEKGNENMCO.EPFHLDCPAOK> unlockedAvatarItems)
{
if (unlockedAvatarItems != 0)
{
OutfitManager.BBKOFMBAPHK cs$<>8__locals = this.CS$<>8__locals1;
Predicate<NLEKGNENMCO.EPFHLDCPAOK> <>9__ = cs$<>8__locals.<>9__1;
if (<>9__ == 0)
{
Predicate<NLEKGNENMCO.EPFHLDCPAOK> predicate = delegate(NLEKGNENMCO.EPFHLDCPAOK uai)
{
string avatarItemDesc = cs$<>8__locals.avatarItemDesc;
return string.Equals(uai.<KHKDPOODHCD>k__BackingField, avatarItemDesc);
};
cs$<>8__locals.<>9__1 = predicate;
}
NLEKGNENMCO.EPFHLDCPAOK epfhldcpaok = unlockedAvatarItems.Find(<>9__);
OutfitManager.AvatarItemMetadata avatarItemMetadata = this.metadata;
string <FNIGMBMFOJL>k__BackingField = epfhldcpaok.<FNIGMBMFOJL>k__BackingField;
avatarItemMetadata.FriendlyName = <FNIGMBMFOJL>k__BackingField;
OutfitManager.AvatarItemMetadata avatarItemMetadata2 = this.metadata;
string <ILKJJMACHPC>k__BackingField = epfhldcpaok.<ILKJJMACHPC>k__BackingField;
avatarItemMetadata2.Tooltip = <ILKJJMACHPC>k__BackingField;
OutfitManager.AvatarItemMetadata avatarItemMetadata3 = this.metadata;
GiftManager.MCEEFCNMNAH <IGOLNCKNKMK>k__BackingField = epfhldcpaok.<IGOLNCKNKMK>k__BackingField;
avatarItemMetadata3.Rarity = <IGOLNCKNKMK>k__BackingField;
this.CS$<>8__locals1.<>4__this.KGJKDAPMLEM();
this.CS$<>8__locals1.<>4__this.HairColorVault.LinkDyesToWatchStorefront();
}
}
// Token: 0x04009E03 RID: 40451
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009E03")]
public OutfitManager.AvatarItemMetadata metadata;
// Token: 0x04009E04 RID: 40452
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E04")]
public OutfitManager.BBKOFMBAPHK CS$<>8__locals1;
}
// Token: 0x020021B9 RID: 8633
[Token(Token = "0x20021B9")]
[CompilerGenerated]
private sealed class ILNPCNDDENM
{
// Token: 0x0600EDE8 RID: 60904 RVA: 0x00386480 File Offset: 0x00384680
[Token(Token = "0x600EDE8")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public ILNPCNDDENM()
{
}
// Token: 0x0600EDE9 RID: 60905 RVA: 0x00386494 File Offset: 0x00384694
[Token(Token = "0x600EDE9")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")]
internal OutfitRenderSetup <SpawnOutfitImposter>b__0()
{
return this.imposterRenderSetup;
}
// Token: 0x04009E05 RID: 40453
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009E05")]
public OutfitRenderSetup imposterRenderSetup;
}
}
}
@@ -0,0 +1,136 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021C3 RID: 8643
[Token(Token = "0x20021C3")]
[StructLayout(3)]
public class OutfitPrefab : MonoBehaviour
{
// Token: 0x170027DE RID: 10206
// (get) Token: 0x0600EE23 RID: 60963 RVA: 0x0038713C File Offset: 0x0038533C
[Token(Token = "0x170027DE")]
public LODGroup IDENDKEAMCN
{
[Token(Token = "0x600EE23")]
[Address(RVA = "0x1D0EB70", Offset = "0x1D0D570", VA = "0x181D0EB70")]
get
{
LODGroup fggggkaoleo = this.FGGGGKAOLEO;
int num = 0;
if (fggggkaoleo == num)
{
LODGroup component = base.GetComponent<LODGroup>();
this.FGGGGKAOLEO = component;
}
return this.FGGGGKAOLEO;
}
}
// Token: 0x170027DF RID: 10207
// (get) Token: 0x0600EE24 RID: 60964 RVA: 0x00387170 File Offset: 0x00385370
// (set) Token: 0x0600EE25 RID: 60965 RVA: 0x00387184 File Offset: 0x00385384
[Token(Token = "0x170027DF")]
public Transform HMKFFOKEECE
{
[Token(Token = "0x600EE24")]
[Address(RVA = "0x3EE8E0", Offset = "0x3ED2E0", VA = "0x1803EE8E0")]
get
{
return this.hairFitMeshHemispherePivot;
}
[Token(Token = "0x600EE25")]
[Address(RVA = "0x1D0EBF0", Offset = "0x1D0D5F0", VA = "0x181D0EBF0")]
set
{
FitMeshHemisphere fitMeshHemisphereObject = this.FitMeshHemisphereObject;
this.hairFitMeshHemispherePivot = value;
fitMeshHemisphereObject.HemisphereTransform = value;
}
}
// Token: 0x0600EE26 RID: 60966 RVA: 0x003871AC File Offset: 0x003853AC
[Token(Token = "0x600EE26")]
[Address(RVA = "0x1D0EAA0", Offset = "0x1D0D4A0", VA = "0x181D0EAA0")]
public OutfitPrefab()
{
ulong num;
this.DefaultUVOverride = num;
this.DefaultUVOverride.y = (float)0;
PlayerAvatarDisplay.AnchorParamsRestrictions anchorParamsRestrictions = new PlayerAvatarDisplay.AnchorParamsRestrictions();
this.anchorParamRestrictions = anchorParamsRestrictions;
ulong num2;
this.HatUVOverride = num2;
this.HatUVOverride.y = (float)0;
base..ctor();
}
// Token: 0x04009E23 RID: 40483
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E23")]
public SkinnedMeshRenderer SourceMeshRenderer;
// Token: 0x04009E24 RID: 40484
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009E24")]
[OCIDFHDICIP(JIBDPHMGEGO.SelfAndChildren, false, false)]
private LODGroup FGGGGKAOLEO;
// Token: 0x04009E25 RID: 40485
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009E25")]
[SerializeField]
public bool UseFitMesh;
// Token: 0x04009E26 RID: 40486
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009E26")]
[SerializeField]
public FitMeshHemisphere FitMeshHemisphereObject;
// Token: 0x04009E27 RID: 40487
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4009E27")]
[SerializeField]
private Transform hairFitMeshHemispherePivot;
// Token: 0x04009E28 RID: 40488
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009E28")]
[SerializeField]
public Vector2 DefaultUVOverride;
// Token: 0x04009E29 RID: 40489
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009E29")]
[SerializeField]
public bool AllowFitMeshOverride;
// Token: 0x04009E2A RID: 40490
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009E2A")]
[SerializeField]
public PlayerAvatarDisplay.AnchorParamsRestrictions anchorParamRestrictions;
// Token: 0x04009E2B RID: 40491
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009E2B")]
[SerializeField]
public Transform FitMeshPivot;
// Token: 0x04009E2C RID: 40492
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009E2C")]
[SerializeField]
public bool UseHatUVOverride;
// Token: 0x04009E2D RID: 40493
[global::Cpp2IlInjected.FieldOffset(Offset = "0x64")]
[Token(Token = "0x4009E2D")]
[SerializeField]
public Vector2 HatUVOverride;
}
}
@@ -0,0 +1,252 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Async;
using RecRoom.Avatar.Data.Runtime;
using RecRoom.DataStructures.ResourceHandles;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021C4 RID: 8644
[Token(Token = "0x20021C4")]
[StructLayout(3)]
public class OutfitRenderSetup : MonoBehaviour
{
// Token: 0x170027E0 RID: 10208
// (get) Token: 0x0600EE27 RID: 60967 RVA: 0x003871F4 File Offset: 0x003853F4
[Token(Token = "0x170027E0")]
public Renderer GNCEHPBKKFP
{
[Token(Token = "0x600EE27")]
[Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")]
get
{
return this._itemRenderer;
}
}
// Token: 0x170027E1 RID: 10209
// (get) Token: 0x0600EE28 RID: 60968 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x170027E1")]
public AvatarItem ACOEGFLBMEH
{
[Token(Token = "0x600EE28")]
[Address(RVA = "0x1062610", Offset = "0x1061010", VA = "0x181062610")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x0600EE29 RID: 60969 RVA: 0x00387208 File Offset: 0x00385408
[Token(Token = "0x600EE29")]
[Address(RVA = "0x1D0F650", Offset = "0x1D0E050", VA = "0x181D0F650")]
public IPromise LoadItemAsync(AvatarItem IOBEPGLJNIP)
{
this.NPCPLFAONFO();
this.NAGNBENONGJ(true);
IResourceHandle<OCJGMOHBPDH> resourceHandle = IOBEPGLJNIP._avatarItemVisualData.MNKDOANEFLK();
this.JCPCLCFKPIB = resourceHandle;
Action<OCJGMOHBPDH> action = new Action(this.ONBJAODKAOL);
throw new NullReferenceException();
}
// Token: 0x0600EE2A RID: 60970 RVA: 0x00387248 File Offset: 0x00385448
[Token(Token = "0x600EE2A")]
[Address(RVA = "0x1D0F730", Offset = "0x1D0E130", VA = "0x181D0F730")]
private void NAGNBENONGJ(bool PNEPKBEADHE)
{
this._itemRenderer.gameObject.SetActive(PNEPKBEADHE);
GameObject gameObject = this.loadingObject;
int num = 0;
if (gameObject != num)
{
this.loadingObject.SetActive(PNEPKBEADHE);
}
}
// Token: 0x0600EE2B RID: 60971 RVA: 0x0038728C File Offset: 0x0038548C
[Token(Token = "0x600EE2B")]
[Address(RVA = "0x1D0EF50", Offset = "0x1D0D950", VA = "0x181D0EF50")]
private void IOPHIFBFDKP(AvatarItem IOBEPGLJNIP, OCJGMOHBPDH DKJBEMEFGIO)
{
this._itemRenderer.ClearMaterialProperty();
Mesh mesh;
this._itemRenderer.GetComponent<MeshFilter>().sharedMesh = mesh;
Material[] array = new Material[0];
int num = 0;
this.AEDMAHJJPKA = array;
int num2 = 0;
Material[] aedmahjjpka;
if (num < array.Length)
{
Material material = new Material(array[num2]);
if (material != 0)
{
}
array[0] = material;
num2++;
aedmahjjpka = this.AEDMAHJJPKA;
}
this._itemRenderer.SetMaterialArray(aedmahjjpka);
bool flag;
if (flag)
{
Material[] aedmahjjpka2 = this.AEDMAHJJPKA;
}
bool flag2;
if (flag2)
{
Material[] aedmahjjpka3 = this.AEDMAHJJPKA;
}
bool flag3;
if (flag3)
{
Material[] aedmahjjpka4 = this.AEDMAHJJPKA;
}
AvatarItem abcocfgcfcl = this.ABCOCFGCFCL;
this.EJNPLDKOGAI();
Transform parent = this._itemRenderer.transform.parent;
int num3 = 0;
Quaternion identity = Quaternion.identity;
parent.localRotation = num3;
SavedExtents orAddComponent = base.gameObject.GetOrAddComponent<SavedExtents>();
Renderer itemRenderer = this._itemRenderer;
int num4 = 0;
itemRenderer.transform.localPosition = num4;
BoxCollider itemCollider = this._itemCollider;
int num5 = 0;
if (itemCollider != num5)
{
this._itemCollider.center = num5;
this._itemCollider.size = num5;
}
parent.localRotation = num5;
}
// Token: 0x0600EE2C RID: 60972 RVA: 0x003873D0 File Offset: 0x003855D0
[Token(Token = "0x600EE2C")]
[Address(RVA = "0x1D0EC10", Offset = "0x1D0D610", VA = "0x181D0EC10")]
private void EJNPLDKOGAI()
{
AvatarItem abcocfgcfcl = this.ABCOCFGCFCL;
int num = 0;
AvatarItem abcocfgcfcl2 = this.ABCOCFGCFCL;
ColorVault.ColorToGuid colorToGuid;
ColorVault.ColorToGuid colorToGuid2;
if (num == 0 || colorToGuid == 0 || num == 0 || colorToGuid2 != 0)
{
}
int num2;
if (0 != 0)
{
Material[] aedmahjjpka = this.AEDMAHJJPKA;
if (aedmahjjpka.Length != 0)
{
int hair_MATERIAL_INDEX = OutfitRenderSetup.HAIR_MATERIAL_INDEX;
Material material = aedmahjjpka[hair_MATERIAL_INDEX];
return;
}
num2 = 0;
}
string text2;
string text = "Local player " + text2 + " color was null when setting up the renderers for item " + num2;
Debug.LogWarning("Local player didn't exist when setting up the renderers for item " + text2);
throw new NullReferenceException();
}
// Token: 0x0600EE2D RID: 60973 RVA: 0x00387458 File Offset: 0x00385658
[Token(Token = "0x600EE2D")]
[Address(RVA = "0x1D0F920", Offset = "0x1D0E320", VA = "0x181D0F920")]
private void OnDestroy()
{
this.NPCPLFAONFO();
}
// Token: 0x0600EE2E RID: 60974 RVA: 0x0038746C File Offset: 0x0038566C
[Token(Token = "0x600EE2E")]
[Address(RVA = "0x1D0F7F0", Offset = "0x1D0E1F0", VA = "0x181D0F7F0")]
private void NPCPLFAONFO()
{
Material[] aedmahjjpka = this.AEDMAHJJPKA;
if (aedmahjjpka != 0)
{
int num = 0;
int num2 = 0;
if (num2 < aedmahjjpka.Length)
{
global::UnityEngine.Object.Destroy(aedmahjjpka[num]);
Material[] aedmahjjpka2 = this.AEDMAHJJPKA;
num++;
}
this.AEDMAHJJPKA = (ulong)0L;
}
if (this.JCPCLCFKPIB != 0)
{
}
this.JCPCLCFKPIB = (ulong)0L;
}
// Token: 0x0600EE2F RID: 60975 RVA: 0x003874CC File Offset: 0x003856CC
[Token(Token = "0x600EE2F")]
[Address(RVA = "0x3C1210", Offset = "0x3BFC10", VA = "0x1803C1210")]
public OutfitRenderSetup()
{
}
// Token: 0x0600EE31 RID: 60977 RVA: 0x003874FC File Offset: 0x003856FC
[Token(Token = "0x600EE31")]
[Address(RVA = "0x1D0F8D0", Offset = "0x1D0E2D0", VA = "0x181D0F8D0")]
[CompilerGenerated]
private void ONBJAODKAOL(OCJGMOHBPDH DINHOLEGEMB)
{
AvatarColorSwatch ngpjgkiopbi = DINHOLEGEMB.NGPJGKIOPBI;
AvatarItem abcocfgcfcl = this.ABCOCFGCFCL;
int num = 0;
this.NAGNBENONGJ(num != 0);
}
// Token: 0x04009E2E RID: 40494
[Token(Token = "0x4009E2E")]
public static readonly int HAIR_COLOR_ID = Shader.PropertyToID("_Red_Col");
// Token: 0x04009E2F RID: 40495
[Token(Token = "0x4009E2F")]
public static readonly int HAIR_MATERIAL_INDEX;
// Token: 0x04009E30 RID: 40496
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E30")]
[SerializeField]
private GameObject loadingObject;
// Token: 0x04009E31 RID: 40497
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009E31")]
[SerializeField]
private BoxCollider _itemCollider;
// Token: 0x04009E32 RID: 40498
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009E32")]
[SerializeField]
private Renderer _itemRenderer;
// Token: 0x04009E33 RID: 40499
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009E33")]
private AvatarItem ABCOCFGCFCL;
// Token: 0x04009E34 RID: 40500
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009E34")]
private IResourceHandle<OCJGMOHBPDH> JCPCLCFKPIB;
// Token: 0x04009E35 RID: 40501
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009E35")]
private Material[] AEDMAHJJPKA;
}
}
@@ -0,0 +1,978 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using RecRoom.Async;
using RecRoom.Avatar.Data.Runtime;
using RecRoom.Avatar.Data.Shared;
using RecRoom.Core;
using RecRoom.DataStructures.ResourceHandles;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021C7 RID: 8647
[Token(Token = "0x20021C7")]
[StructLayout(3)]
public class OutfitTool : MonoBehaviourPun
{
// Token: 0x170027E6 RID: 10214
// (get) Token: 0x0600EE41 RID: 60993 RVA: 0x003879A0 File Offset: 0x00385BA0
[Token(Token = "0x170027E6")]
public static OutfitTool GJELAAICDMC
{
[Token(Token = "0x600EE41")]
[Address(RVA = "0x1D117F0", Offset = "0x1D101F0", VA = "0x181D117F0")]
get
{
OutfitTool laidkdhadak = OutfitTool.LAIDKDHADAK;
int num = 0;
if (laidkdhadak == num)
{
OutfitTool.LAIDKDHADAK = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.SpawnDormOutfitForLocalPlayer();
OutfitTool.LAIDKDHADAK.<PEPMCNPDBJD>k__BackingField = true;
}
return OutfitTool.LAIDKDHADAK;
}
}
// Token: 0x170027E7 RID: 10215
// (get) Token: 0x0600EE42 RID: 60994 RVA: 0x003879E4 File Offset: 0x00385BE4
[Token(Token = "0x170027E7")]
public Player PLEAGBOMPHC
{
[Token(Token = "0x600EE42")]
[Address(RVA = "0x1D11AC0", Offset = "0x1D104C0", VA = "0x181D11AC0")]
get
{
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num = 0;
if (tool != num)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
int num2 = 0;
if (<FLFJCIPBAPA>k__BackingField != num2)
{
return this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField.<APAJHLAPLCB>k__BackingField;
}
}
throw new NullReferenceException();
}
}
// Token: 0x170027E8 RID: 10216
// (get) Token: 0x0600EE43 RID: 60995 RVA: 0x00387A38 File Offset: 0x00385C38
[Token(Token = "0x170027E8")]
public bool BOOLNLGPKOE
{
[Token(Token = "0x600EE43")]
[Address(RVA = "0x1D11720", Offset = "0x1D10120", VA = "0x181D11720")]
get
{
Player wearer = this.PLEAGBOMPHC;
int num = 0;
bool flag = wearer != num;
if (!flag)
{
return flag;
}
return ((IAsyncResult)this.PLEAGBOMPHC).IsCompleted;
}
}
// Token: 0x170027E9 RID: 10217
// (get) Token: 0x0600EE44 RID: 60996 RVA: 0x00387A70 File Offset: 0x00385C70
// (set) Token: 0x0600EE45 RID: 60997 RVA: 0x00387A84 File Offset: 0x00385C84
[Token(Token = "0x170027E9")]
public OutfitTool.CIGAFIMHKNA DAIOGLFJPGM
{
[Token(Token = "0x600EE44")]
[Address(RVA = "0x549060", Offset = "0x547A60", VA = "0x180549060")]
get
{
return this.JIKGGMCEOBJ;
}
[Token(Token = "0x600EE45")]
[Address(RVA = "0x1D11BA0", Offset = "0x1D105A0", VA = "0x181D11BA0")]
set
{
if (this.JIKGGMCEOBJ != value)
{
this.JIKGGMCEOBJ = value;
if (value == OutfitTool.CIGAFIMHKNA.Wearing || value == OutfitTool.CIGAFIMHKNA.Attaching)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
int num = 0;
if (<FLFJCIPBAPA>k__BackingField != num && this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField.HICLCBMIPIN)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
int num2 = 0;
<FLFJCIPBAPA>k__BackingField2.HICLCBMIPIN = num2 != 0;
OutfitManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
instance.MarkNotNew(igjpehncmno);
}
}
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField3 = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
int num3 = 0;
if (<FLFJCIPBAPA>k__BackingField3 != num3 && this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField.<MHCDCIGJNNA>k__BackingField)
{
OutfitTool.CIGAFIMHKNA jikggmceobj = this.JIKGGMCEOBJ;
if (jikggmceobj != OutfitTool.CIGAFIMHKNA.Wearing)
{
if (jikggmceobj != OutfitTool.CIGAFIMHKNA.NotWearing)
{
goto IL_EE;
}
if (this.EKJIEKFMFMH.OPMAIMKLJCP() && this.<KJCGHECBBMN>k__BackingField)
{
AvatarItem igjpehncmno2 = this.IGJPEHNCMNO;
}
}
this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField.OBDMCACJNDD = true;
}
IL_EE:
if (this.EquipStateChanged != 0)
{
}
}
}
}
// Token: 0x170027EA RID: 10218
// (get) Token: 0x0600EE46 RID: 60998 RVA: 0x00387B90 File Offset: 0x00385D90
[Token(Token = "0x170027EA")]
public bool AJOPLDFLMLO
{
[Token(Token = "0x600EE46")]
[Address(RVA = "0x1D11710", Offset = "0x1D10110", VA = "0x181D11710")]
get
{
return this.JIKGGMCEOBJ == OutfitTool.CIGAFIMHKNA.Wearing;
}
}
// Token: 0x170027EB RID: 10219
// (get) Token: 0x0600EE47 RID: 60999 RVA: 0x00387BA8 File Offset: 0x00385DA8
// (set) Token: 0x0600EE48 RID: 61000 RVA: 0x00387BBC File Offset: 0x00385DBC
[Token(Token = "0x170027EB")]
public bool CMLHEEHNDEK
{
[Token(Token = "0x600EE47")]
[Address(RVA = "0x11BC390", Offset = "0x11BAD90", VA = "0x1811BC390")]
get;
[Token(Token = "0x600EE48")]
[Address(RVA = "0x11BB590", Offset = "0x11B9F90", VA = "0x1811BB590")]
private set;
}
// Token: 0x170027EC RID: 10220
// (get) Token: 0x0600EE49 RID: 61001 RVA: 0x00387BD0 File Offset: 0x00385DD0
// (set) Token: 0x0600EE4A RID: 61002 RVA: 0x00387BE4 File Offset: 0x00385DE4
[Token(Token = "0x170027EC")]
public bool NEFBHAOCDEH
{
[Token(Token = "0x600EE49")]
[Address(RVA = "0x1616120", Offset = "0x1614B20", VA = "0x181616120")]
get;
[Token(Token = "0x600EE4A")]
[Address(RVA = "0x16162B0", Offset = "0x1614CB0", VA = "0x1816162B0")]
private set;
}
// Token: 0x170027ED RID: 10221
// (get) Token: 0x0600EE4B RID: 61003 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x170027ED")]
public AvatarItem NJFKKOFHBKN
{
[Token(Token = "0x600EE4B")]
[Address(RVA = "0x130FCF0", Offset = "0x130E6F0", VA = "0x18130FCF0")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x170027EE RID: 10222
// (get) Token: 0x0600EE4C RID: 61004 RVA: 0x00387BF8 File Offset: 0x00385DF8
[Token(Token = "0x170027EE")]
public AvatarItemData IHPLAJLADMP
{
[Token(Token = "0x600EE4C")]
[Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")]
get
{
/*
An exception occurred when decompiling this method (0600EE4C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling RecRoom.Avatar.Data.Shared.AvatarItemData RecRoom.Avatar.Outfit.OutfitTool::get_AvatarItemData()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:AvatarItem(var_0_06, ldfld:AvatarItem(OutfitTool::IGJPEHNCMNO, ldloc:OutfitTool(this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
}
// Token: 0x170027EF RID: 10223
// (get) Token: 0x0600EE4D RID: 61005 RVA: 0x00387C0C File Offset: 0x00385E0C
[Token(Token = "0x170027EF")]
public Renderer GNCEHPBKKFP
{
[Token(Token = "0x600EE4D")]
[Address(RVA = "0x1D117D0", Offset = "0x1D101D0", VA = "0x181D117D0")]
get
{
return this.renderSetup._itemRenderer;
}
}
// Token: 0x170027F0 RID: 10224
// (get) Token: 0x0600EE4E RID: 61006 RVA: 0x00387C2C File Offset: 0x00385E2C
[Token(Token = "0x170027F0")]
public ToolCollider GOGEFPCNPJC
{
[Token(Token = "0x600EE4E")]
[Address(RVA = "0x1D11950", Offset = "0x1D10350", VA = "0x181D11950")]
get
{
ToolCollider jocneojnhpc = this.JOCNEOJNHPC;
int num = 0;
if (jocneojnhpc == num)
{
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num2 = 0;
int num3 = 0;
if (tool != num3)
{
Tool tool2 = this.<MBFGOCOFHHM>k__BackingField;
if (tool2.NNBALFKKNDO != 0)
{
int num4 = 0;
if (num4 < num2)
{
num4 += num4;
if (num4 == num2)
{
goto IL_61;
}
num4++;
}
int num5 = 0;
this.JOCNEOJNHPC = tool2;
IL_61:
num5 += num5;
}
}
int num6 = 0;
this.JOCNEOJNHPC = num6;
}
return this.JOCNEOJNHPC;
}
}
// Token: 0x170027F1 RID: 10225
// (get) Token: 0x0600EE4F RID: 61007 RVA: 0x00387CB8 File Offset: 0x00385EB8
// (set) Token: 0x0600EE50 RID: 61008 RVA: 0x00387CCC File Offset: 0x00385ECC
[Token(Token = "0x170027F1")]
public Tool PBBJCLJPFMI
{
[Token(Token = "0x600EE4F")]
[Address(RVA = "0x52F5A0", Offset = "0x52DFA0", VA = "0x18052F5A0")]
get;
[Token(Token = "0x600EE50")]
[Address(RVA = "0x52F840", Offset = "0x52E240", VA = "0x18052F840")]
private set;
}
// Token: 0x0600EE51 RID: 61009 RVA: 0x00387CE0 File Offset: 0x00385EE0
[Token(Token = "0x600EE51")]
[Address(RVA = "0x1D0FA40", Offset = "0x1D0E440", VA = "0x181D0FA40", Slot = "13")]
protected override void Awake()
{
base..ctor();
Tool component = base.GetComponent<Tool>();
this.<MBFGOCOFHHM>k__BackingField = component;
int num = 0;
if (component == num)
{
Debug.LogError(base.name + " is missing a tool component.");
}
ActionEvent<AvatarItemSelection> mhofjjepedo = IGFKPPKAIHD.MHOFJJEPEDO;
Action<AvatarItemSelection> action = new Action(this.JAEPAFAOJFE);
IGFKPPKAIHD.MHOFJJEPEDO = mhofjjepedo + action;
ActionEvent<AvatarItemSelection> negbfknablh = IGFKPPKAIHD.NEGBFKNABLH;
Action<AvatarItemSelection> action2 = new Action(this.LECNJBBOHAC);
IGFKPPKAIHD.NEGBFKNABLH = negbfknablh + action2;
}
// Token: 0x0600EE52 RID: 61010 RVA: 0x00387D64 File Offset: 0x00385F64
[Token(Token = "0x600EE52")]
[Address(RVA = "0x1D112F0", Offset = "0x1D0FCF0", VA = "0x181D112F0")]
private void Start()
{
int num;
for (;;)
{
num = 0;
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num2 = 0;
int num3 = 0;
if (tool == num3)
{
goto IL_161;
}
this.<MBFGOCOFHHM>k__BackingField.HeldCollisionLayer = (DAJFOCGPHGP)((ulong)13L);
if (this.<MBFGOCOFHHM>k__BackingField.InstantiationParameters == 0)
{
goto IL_9C;
}
bool flag = this.<MBFGOCOFHHM>k__BackingField.InstantiationParameters.TryGetValue("AvatarItem", num2);
if (!flag)
{
goto IL_9C;
}
if (!flag || flag)
{
if (flag)
{
goto IL_7C;
}
if (num == 0 || num != 0)
{
break;
}
}
}
AvatarItem avatarItem = AvatarItem.GOODJMOBMEM(num);
IPromise promise = this.SetSelectedItemAsync(num);
IL_7C:
int num4 = 0;
this.IGJPEHNCMNO = num4;
this.IGJPEHNCMNO._avatarItemVisualData = num4;
this.<KJCGHECBBMN>k__BackingField = num4 != 0;
IL_9C:
Tool tool2 = this.<MBFGOCOFHHM>k__BackingField;
Tool.DIMPKKAHGAC dimpkkahgac = new Tool.DIMPKKAHGAC(this.GNDJDFKHLFH);
tool2.CustomHandSpacePickupTransformModifier = dimpkkahgac;
Tool tool3 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> postPickupEvent = tool3.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
ActionEvent<Tool> actionEvent = postPickupEvent + action;
tool3.PostPickupEvent = actionEvent;
Tool tool4 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> preReleaseEvent = tool4.PreReleaseEvent;
Action<Tool> action2 = new Action(this.BGEJPLCKLPA);
ActionEvent<Tool> actionEvent2 = preReleaseEvent + action2;
tool4.PreReleaseEvent = actionEvent2;
Tool tool5 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> postReleaseEvent = tool5.PostReleaseEvent;
Action<Tool> action3 = new Action(this.OIOCPLEKMEK);
ActionEvent<Tool> actionEvent3 = postReleaseEvent + action3;
tool5.PostReleaseEvent = actionEvent3;
this.<MBFGOCOFHHM>k__BackingField.DODDBBEOJNN = true;
return;
IL_161:
SafeDestroy.GameObject(base.gameObject);
}
// Token: 0x0600EE53 RID: 61011 RVA: 0x00387EE0 File Offset: 0x003860E0
[Token(Token = "0x600EE53")]
[Address(RVA = "0x1D10C60", Offset = "0x1D0F660", VA = "0x181D10C60", Slot = "14")]
protected override void OnDestroy()
{
base.OnDestroy();
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num = 0;
if (tool != num)
{
Tool tool2 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> postPickupEvent = tool2.PostPickupEvent;
Action<Tool> action = new Action(this.HAAIALDMMEL);
ActionEvent<Tool> actionEvent = postPickupEvent - action;
tool2.PostPickupEvent = actionEvent;
Tool tool3 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> preReleaseEvent = tool3.PreReleaseEvent;
Action<Tool> action2 = new Action(this.BGEJPLCKLPA);
ActionEvent<Tool> actionEvent2 = preReleaseEvent - action2;
tool3.PreReleaseEvent = actionEvent2;
Tool tool4 = this.<MBFGOCOFHHM>k__BackingField;
ActionEvent<Tool> postReleaseEvent = tool4.PostReleaseEvent;
Action<Tool> action3 = new Action(this.OIOCPLEKMEK);
ActionEvent<Tool> actionEvent3 = postReleaseEvent - action3;
tool4.PostReleaseEvent = actionEvent3;
}
ActionEvent<Color, PlayerAvatar.AvatarColorType> onLocalPlayerHairColorChanged = PlayerAvatar.OnLocalPlayerHairColorChanged;
Action<Color, PlayerAvatar.AvatarColorType> action4 = new Action(this.KDJGKINGGEL);
ActionEvent<Color> actionEvent4;
PlayerAvatar.OnLocalPlayerHairColorChanged = actionEvent4;
ActionEvent<AvatarItemSelection> mhofjjepedo = IGFKPPKAIHD.MHOFJJEPEDO;
Action<AvatarItemSelection> action5 = new Action(this.JAEPAFAOJFE);
IGFKPPKAIHD.MHOFJJEPEDO = mhofjjepedo - action5;
ActionEvent<AvatarItemSelection> negbfknablh = IGFKPPKAIHD.NEGBFKNABLH;
Action<AvatarItemSelection> action6 = new Action(this.LECNJBBOHAC);
IGFKPPKAIHD.NEGBFKNABLH = negbfknablh - action6;
}
// Token: 0x0600EE54 RID: 61012 RVA: 0x00388008 File Offset: 0x00386208
[Token(Token = "0x600EE54")]
[Address(RVA = "0x1D10F60", Offset = "0x1D0F960", VA = "0x181D10F60")]
private void OnTriggerEnter(Collider GLPOLGOBLAA)
{
if (GLPOLGOBLAA.gameObject.KHHDLOKCNHC((IIBIOPCKHGK)((uint)1053184)) && this.EquipOnCollision && this.<MBFGOCOFHHM>k__BackingField.FNFNLDBILFE && this.IOGJPBNCCOG)
{
int num = 0;
Player player;
ulong num2;
if (player != num && this.BOOLNLGPKOE && (ulong)this.<MBFGOCOFHHM>k__BackingField.<PBCNKLKCIHJ>k__BackingField.HECJOOCGPLM != num2 && this.<KJCGHECBBMN>k__BackingField)
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag;
if (!flag || this.<MBFGOCOFHHM>k__BackingField.FNFNLDBILFE)
{
}
}
}
}
// Token: 0x0600EE55 RID: 61013 RVA: 0x003880A0 File Offset: 0x003862A0
[Token(Token = "0x600EE55")]
[Address(RVA = "0x1D10010", Offset = "0x1D0EA10", VA = "0x181D10010")]
private void JAEPAFAOJFE(AvatarItemSelection NLNHFEEMFBN)
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag;
if (flag)
{
Player.GAHEJKDCLLE ekjiekfmfmh = this.EKJIEKFMFMH;
Player.GAHEJKDCLLE bodyPart = NLNHFEEMFBN._bodyPart;
if (ekjiekfmfmh != bodyPart)
{
bool flag2 = ekjiekfmfmh.OPMAIMKLJCP();
if (!flag2 || !flag2)
{
return;
}
}
int num = 0;
this.DAIOGLFJPGM = (OutfitTool.CIGAFIMHKNA)num;
}
}
// Token: 0x0600EE56 RID: 61014 RVA: 0x003880EC File Offset: 0x003862EC
[Token(Token = "0x600EE56")]
[Address(RVA = "0x1D10740", Offset = "0x1D0F140", VA = "0x181D10740")]
private void LECNJBBOHAC(AvatarItemSelection NLNHFEEMFBN)
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag;
if (flag)
{
Player.GAHEJKDCLLE ekjiekfmfmh = this.EKJIEKFMFMH;
Player.GAHEJKDCLLE bodyPart = NLNHFEEMFBN._bodyPart;
if (ekjiekfmfmh != bodyPart)
{
bool flag2 = ekjiekfmfmh.OPMAIMKLJCP();
if (!flag2 || !flag2)
{
return;
}
}
this.DAIOGLFJPGM = OutfitTool.CIGAFIMHKNA.NotWearing;
}
}
// Token: 0x0600EE57 RID: 61015 RVA: 0x00388134 File Offset: 0x00386334
[Token(Token = "0x600EE57")]
[Address(RVA = "0x1D10090", Offset = "0x1D0EA90", VA = "0x181D10090")]
private void KDJGKINGGEL(Color GJAINANBOCB, PlayerAvatar.AvatarColorType CFOCEHNGAEH)
{
if (this.<KJCGHECBBMN>k__BackingField)
{
Renderer itemRenderer = this.renderSetup._itemRenderer;
int num = 0;
if (!(itemRenderer == num))
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag;
if ((flag ? PlayerAvatar.AvatarColorType.Hair : PlayerAvatar.AvatarColorType.Skin) == CFOCEHNGAEH)
{
Material material = this.renderSetup._itemRenderer.GetMaterial();
}
}
}
}
// Token: 0x0600EE58 RID: 61016 RVA: 0x00388188 File Offset: 0x00386388
[Token(Token = "0x600EE58")]
[Address(RVA = "0x1D110F0", Offset = "0x1D0FAF0", VA = "0x181D110F0")]
public IPromise SetSelectedItemAsync(AvatarItem IOBEPGLJNIP)
{
this.<KJCGHECBBMN>k__BackingField = true;
this.DAIOGLFJPGM = OutfitTool.CIGAFIMHKNA.None;
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
string text;
base.gameObject.name = text;
OutfitRenderSetup outfitRenderSetup = this.renderSetup;
AvatarItem item;
AvatarItem item3 = item;
outfitRenderSetup.NPCPLFAONFO();
outfitRenderSetup.NAGNBENONGJ(true);
outfitRenderSetup.ABCOCFGCFCL = item3;
IResourceHandle<OCJGMOHBPDH> resourceHandle;
outfitRenderSetup.JCPCLCFKPIB = resourceHandle;
Action<OCJGMOHBPDH> action = new Action(outfitRenderSetup.ONBJAODKAOL);
Action action2 = delegate
{
OutfitTool <>4__this = this;
int num = 0;
if (!(<>4__this == num))
{
OutfitTool <>4__this2 = this;
AvatarItem item2 = item;
<>4__this2.MCCIOEDEPNC(item2);
}
};
throw new NullReferenceException();
}
// Token: 0x0600EE59 RID: 61017 RVA: 0x00388210 File Offset: 0x00386410
[Token(Token = "0x600EE59")]
[Address(RVA = "0x1D0FD10", Offset = "0x1D0E710", VA = "0x181D0FD10")]
private void FDDGKCHAGKD()
{
int num = 0;
this.IGJPEHNCMNO = num;
this.IGJPEHNCMNO._avatarItemVisualData = num;
this.<KJCGHECBBMN>k__BackingField = num != 0;
}
// Token: 0x0600EE5A RID: 61018 RVA: 0x0038823C File Offset: 0x0038643C
[Token(Token = "0x600EE5A")]
[Address(RVA = "0x1D107F0", Offset = "0x1D0F1F0", VA = "0x181D107F0")]
private void MCCIOEDEPNC(AvatarItem IOBEPGLJNIP)
{
int num = 0;
Player.GAHEJKDCLLE gahejkdclle;
this.EKJIEKFMFMH = gahejkdclle;
Player wearer = this.PLEAGBOMPHC;
int num2 = 0;
if (wearer != num2)
{
Player wearer2 = this.PLEAGBOMPHC;
if (wearer == (ulong)20L)
{
string displayedBeardColorGuid = wearer2.playerAvatar.KMBHIGEIJHH;
}
string text = wearer2.playerAvatar.JJDCGAMBGFO;
if (!string.IsNullOrEmpty(text))
{
Color color = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.FindHairColor(text, true).color;
bool flag = wearer == (ulong)20L;
if ((this.<KJCGHECBBMN>k__BackingField ? 1 : 0) != num)
{
Renderer itemRenderer = this.renderSetup._itemRenderer;
int num3 = 0;
if (!(itemRenderer == num3))
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag2;
if (flag2 == flag)
{
Material material = this.renderSetup._itemRenderer.GetMaterial();
int pokihafiphe = OutfitTool.POKIHAFIPHE;
material.SetColor(pokihafiphe, color);
}
}
}
}
if (!this.BOOLNLGPKOE)
{
goto IL_114;
}
ActionEvent<Color, PlayerAvatar.AvatarColorType> onLocalPlayerHairColorChanged = PlayerAvatar.OnLocalPlayerHairColorChanged;
Action<Color, PlayerAvatar.AvatarColorType> action = new Action(this.KDJGKINGGEL);
ActionEvent<Color, PlayerAvatar.AvatarColorType> actionEvent = onLocalPlayerHairColorChanged + action;
}
ActionEvent<Color, PlayerAvatar.AvatarColorType> onLocalPlayerHairColorChanged2 = PlayerAvatar.OnLocalPlayerHairColorChanged;
Action<Color, PlayerAvatar.AvatarColorType> action2 = new Action(this.KDJGKINGGEL);
PlayerAvatar.OnLocalPlayerHairColorChanged = onLocalPlayerHairColorChanged2 - action2;
IL_114:
if (this.BOOLNLGPKOE)
{
PlayerAvatar playerAvatar = this.PLEAGBOMPHC.playerAvatar;
}
}
// Token: 0x0600EE5B RID: 61019 RVA: 0x0038837C File Offset: 0x0038657C
[Token(Token = "0x600EE5B")]
[Address(RVA = "0x1D0FC90", Offset = "0x1D0E690", VA = "0x181D0FC90")]
public void DontCollideWithPlayer(float BJJEDIGOMGC)
{
this.IOGJPBNCCOG = false;
Action action = new Action(this.OINKGNACAIK);
ISchedulerPromise schedulerPromise = this.InvokeInUpdate(BJJEDIGOMGC, action);
}
// Token: 0x0600EE5C RID: 61020 RVA: 0x003883A8 File Offset: 0x003865A8
[Token(Token = "0x600EE5C")]
[Address(RVA = "0x1D0FE20", Offset = "0x1D0E820", VA = "0x181D0FE20")]
public Player.GAHEJKDCLLE GetEquipTargetPlayerBodyPart()
{
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
Player.GAHEJKDCLLE gahejkdclle;
return gahejkdclle;
}
// Token: 0x0600EE5D RID: 61021 RVA: 0x003883C4 File Offset: 0x003865C4
[Token(Token = "0x600EE5D")]
[Address(RVA = "0x1D0F990", Offset = "0x1D0E390", VA = "0x181D0F990")]
public void ApplyToPlayer(Player IEKDDPPNFPF)
{
OutfitManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
if (instance.IsAvatarItemUnlocked(igjpehncmno))
{
AvatarItem igjpehncmno2 = this.IGJPEHNCMNO;
}
}
// Token: 0x0600EE5E RID: 61022 RVA: 0x003883F8 File Offset: 0x003865F8
[Token(Token = "0x600EE5E")]
[Address(RVA = "0x1D101C0", Offset = "0x1D0EBC0", VA = "0x181D101C0")]
private void KMMADAPBIFF(Player IEKDDPPNFPF, Player.GAHEJKDCLLE NMKAKHOEMGB)
{
while (this.JIKGGMCEOBJ != OutfitTool.CIGAFIMHKNA.Attaching)
{
int num = 0;
if (!(IEKDDPPNFPF != num))
{
object[] array = new object[4];
if ("SetOutfitToPlayer has null player. BodyPart : " != 0)
{
}
array[0] = "SetOutfitToPlayer has null player. BodyPart : ";
if ("SetOutfitToPlayer has null player. BodyPart : " != 0)
{
}
array[1] = "SetOutfitToPlayer has null player. BodyPart : ";
if (" - " != 0)
{
}
array[2] = " - ";
string gameObjectHierarchy = base.gameObject.GetGameObjectHierarchy();
if (gameObjectHierarchy != 0)
{
}
array[3] = gameObjectHierarchy;
Debug.LogError(string.Concat(array));
return;
}
PlayerAvatar playerAvatar = IEKDDPPNFPF.playerAvatar;
int num2 = 0;
AvatarItem igjpehncmno = this.IGJPEHNCMNO;
bool flag = playerAvatar.IsWearingTrialVersion(igjpehncmno, num2);
OutfitManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
AvatarItem igjpehncmno2 = this.IGJPEHNCMNO;
bool flag2 = instance.IsAvatarItemUnlocked(igjpehncmno2);
if (this.JIKGGMCEOBJ == (OutfitTool.CIGAFIMHKNA)num2 && flag == flag2)
{
if (!flag2)
{
goto IL_10A;
}
PlayerAvatar playerAvatar2 = IEKDDPPNFPF.playerAvatar;
AvatarItem igjpehncmno3 = this.IGJPEHNCMNO;
if (playerAvatar2.IsWearing(igjpehncmno3, num2))
{
goto IL_10A;
}
}
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
int num3 = 0;
if (<FLFJCIPBAPA>k__BackingField != num3)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = this.<MBFGOCOFHHM>k__BackingField.<FLFJCIPBAPA>k__BackingField;
PlayerAvatar playerAvatar3 = IEKDDPPNFPF.playerAvatar;
AvatarItem igjpehncmno4 = this.IGJPEHNCMNO;
if (this.<MBFGOCOFHHM>k__BackingField.FNFNLDBILFE)
{
this.DAIOGLFJPGM = OutfitTool.CIGAFIMHKNA.Attaching;
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
OKIMOMGKKDH ekjclgjfign = OKIMOMGKKDH.EKJCLGJFIGN;
tool.IKEGONLJBPP = ekjclgjfign;
throw new NullReferenceException();
}
continue;
}
IL_10A:
if (this.<MBFGOCOFHHM>k__BackingField.FNFNLDBILFE)
{
Tool tool2 = this.<MBFGOCOFHHM>k__BackingField;
OKIMOMGKKDH ekjclgjfign2 = OKIMOMGKKDH.EKJCLGJFIGN;
tool2.IKEGONLJBPP = ekjclgjfign2;
}
PlayerAvatar playerAvatar4 = IEKDDPPNFPF.playerAvatar;
AvatarItem igjpehncmno5 = this.IGJPEHNCMNO;
break;
}
}
// Token: 0x0600EE5F RID: 61023 RVA: 0x00388598 File Offset: 0x00386798
[Token(Token = "0x600EE5F")]
[Address(RVA = "0x1D0FE50", Offset = "0x1D0E850", VA = "0x181D0FE50")]
private void HAAIALDMMEL(Tool EGFEJGHDNAI)
{
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num = 0;
tool.SetUsingGravityRigidBody(num != 0);
ToolCollider jocneojnhpc = this.JOCNEOJNHPC;
int num2 = 0;
if (jocneojnhpc == num2)
{
Tool tool2 = this.<MBFGOCOFHHM>k__BackingField;
int num3 = 0;
int num4 = 0;
if (tool2 != num4 && this.<MBFGOCOFHHM>k__BackingField.NNBALFKKNDO != 0)
{
int num5 = 0;
if (num5 < num3)
{
num5 += num5;
if (num5 == num3)
{
goto IL_6A;
}
num5++;
}
int num6 = 0;
IL_6A:
num6 += num6;
}
int num7 = 0;
this.JOCNEOJNHPC = num7;
}
ulong num8;
this.JOCNEOJNHPC.enabled = num8 != 0UL;
}
// Token: 0x0600EE60 RID: 61024 RVA: 0x00388634 File Offset: 0x00386834
[Token(Token = "0x600EE60")]
[Address(RVA = "0x1D0FC00", Offset = "0x1D0E600", VA = "0x181D0FC00")]
private void BGEJPLCKLPA(Tool NBHJPDBHDHB)
{
if (this.<MBFGOCOFHHM>k__BackingField.PAJGCGDFHKK)
{
this.IOGJPBNCCOG = false;
Action action = new Action(this.OINKGNACAIK);
ISchedulerPromise schedulerPromise = this.InvokeInUpdate(1f, action);
}
}
// Token: 0x0600EE61 RID: 61025 RVA: 0x00388678 File Offset: 0x00386878
[Token(Token = "0x600EE61")]
[Address(RVA = "0x1D10BD0", Offset = "0x1D0F5D0", VA = "0x181D10BD0")]
private void OIOCPLEKMEK(Tool EGFEJGHDNAI)
{
if (this.<MBFGOCOFHHM>k__BackingField.PAJGCGDFHKK)
{
Tool tool = this.<MBFGOCOFHHM>k__BackingField;
int num = 0;
tool.SetUsingGravityRigidBody(num != 0);
OutfitTool.CIGAFIMHKNA jikggmceobj = this.JIKGGMCEOBJ;
if (jikggmceobj == OutfitTool.CIGAFIMHKNA.Attaching || jikggmceobj != OutfitTool.CIGAFIMHKNA.Wearing)
{
int num2 = 0;
this.DAIOGLFJPGM = (OutfitTool.CIGAFIMHKNA)num2;
}
if (this.<PEPMCNPDBJD>k__BackingField)
{
int num3 = 0;
EGFEJGHDNAI.PAJGCGDFHKK = num3 != 0;
}
}
}
// Token: 0x0600EE62 RID: 61026 RVA: 0x003886D8 File Offset: 0x003868D8
[Token(Token = "0x600EE62")]
[Address(RVA = "0x1D107C0", Offset = "0x1D0F1C0", VA = "0x181D107C0")]
private bool LHMCGNJOABN(Player IEKDDPPNFPF)
{
OutfitTool.CIGAFIMHKNA jikggmceobj = this.JIKGGMCEOBJ;
if (jikggmceobj != OutfitTool.CIGAFIMHKNA.Attaching)
{
return jikggmceobj == OutfitTool.CIGAFIMHKNA.Wearing;
}
int num = 0;
this.DAIOGLFJPGM = (OutfitTool.CIGAFIMHKNA)num;
return true;
}
// Token: 0x0600EE63 RID: 61027 RVA: 0x00388700 File Offset: 0x00386900
[Token(Token = "0x600EE63")]
[Address(RVA = "0x1D0FFE0", Offset = "0x1D0E9E0", VA = "0x181D0FFE0")]
private void IPJELGFGGLL(Player IEKDDPPNFPF)
{
OutfitTool.CIGAFIMHKNA jikggmceobj = this.JIKGGMCEOBJ;
if (jikggmceobj == OutfitTool.CIGAFIMHKNA.Attaching)
{
int num = 0;
this.DAIOGLFJPGM = (OutfitTool.CIGAFIMHKNA)num;
return;
}
if (jikggmceobj != OutfitTool.CIGAFIMHKNA.Wearing)
{
this.DAIOGLFJPGM = (OutfitTool.CIGAFIMHKNA)((uint)1);
return;
}
}
// Token: 0x0600EE64 RID: 61028 RVA: 0x00388730 File Offset: 0x00386930
[Token(Token = "0x600EE64")]
[Address(RVA = "0x1D0FD20", Offset = "0x1D0E720", VA = "0x181D0FD20")]
private void GNDJDFKHLFH(Transform BGCMCCOABIJ, bool JKGLJIHNJFJ, ref Vector3 DDHPAFKBMON, ref Quaternion IGPENJBJADK)
{
float z = Vector3.zero.z;
DDHPAFKBMON.z = z;
Transform transform = base.transform;
}
// Token: 0x0600EE65 RID: 61029 RVA: 0x0038875C File Offset: 0x0038695C
[Token(Token = "0x600EE65")]
[Address(RVA = "0x1D116F0", Offset = "0x1D100F0", VA = "0x181D116F0")]
public OutfitTool()
{
}
// Token: 0x0600EE67 RID: 61031 RVA: 0x003887C8 File Offset: 0x003869C8
[Token(Token = "0x600EE67")]
[Address(RVA = "0x10235D0", Offset = "0x1021FD0", VA = "0x1810235D0")]
[CompilerGenerated]
private void OINKGNACAIK()
{
this.IOGJPBNCCOG = true;
}
// Token: 0x04009E42 RID: 40514
[Token(Token = "0x4009E42")]
private static readonly int POKIHAFIPHE = Shader.PropertyToID("_Red_Col");
// Token: 0x04009E43 RID: 40515
[Token(Token = "0x4009E43")]
private static OutfitTool LAIDKDHADAK;
// Token: 0x04009E44 RID: 40516
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009E44")]
[NonSerialized]
public bool EquipOnCollision = true;
// Token: 0x04009E45 RID: 40517
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009E45")]
public Action<OutfitTool.CIGAFIMHKNA> EquipStateChanged;
// Token: 0x04009E46 RID: 40518
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009E46")]
private OutfitTool.CIGAFIMHKNA JIKGGMCEOBJ = (OutfitTool.CIGAFIMHKNA)((ulong)4294967295L);
// Token: 0x04009E49 RID: 40521
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009E49")]
private AvatarItem IGJPEHNCMNO;
// Token: 0x04009E4A RID: 40522
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x4009E4A")]
private bool IOGJPBNCCOG = true;
// Token: 0x04009E4B RID: 40523
[global::Cpp2IlInjected.FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4009E4B")]
private Player.GAHEJKDCLLE EKJIEKFMFMH = (Player.GAHEJKDCLLE)((ulong)4294967295L);
// Token: 0x04009E4C RID: 40524
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x4009E4C")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
private OutfitRenderSetup renderSetup;
// Token: 0x04009E4D RID: 40525
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x4009E4D")]
private ToolCollider JOCNEOJNHPC;
// Token: 0x04009E4F RID: 40527
[Token(Token = "0x4009E4F")]
public static string AVATAR_ITEM_INSTANTIATION_PARAM_KEY = "AvatarItem";
// Token: 0x020021C8 RID: 8648
[Token(Token = "0x20021C8")]
public enum CIGAFIMHKNA
{
// Token: 0x04009E51 RID: 40529
[Token(Token = "0x4009E51")]
None = -1,
// Token: 0x04009E52 RID: 40530
[Token(Token = "0x4009E52")]
Wearing,
// Token: 0x04009E53 RID: 40531
[Token(Token = "0x4009E53")]
NotWearing,
// Token: 0x04009E54 RID: 40532
[Token(Token = "0x4009E54")]
Attaching
}
// Token: 0x020021C9 RID: 8649
[Token(Token = "0x20021C9")]
[CompilerGenerated]
private sealed class NPKDDKOPLOJ
{
// Token: 0x0600EE68 RID: 61032 RVA: 0x003887DC File Offset: 0x003869DC
[Token(Token = "0x600EE68")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public NPKDDKOPLOJ()
{
}
// Token: 0x0600EE69 RID: 61033 RVA: 0x003887F0 File Offset: 0x003869F0
[Token(Token = "0x600EE69")]
[Address(RVA = "0x1D0E3D0", Offset = "0x1D0CDD0", VA = "0x181D0E3D0")]
internal void <SetSelectedItemAsync>b__0()
{
OutfitTool outfitTool = this.<>4__this;
int num = 0;
if (!(outfitTool == num))
{
OutfitTool outfitTool2 = this.<>4__this;
AvatarItem avatarItem = this.item;
outfitTool2.MCCIOEDEPNC(avatarItem);
}
}
// Token: 0x04009E55 RID: 40533
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4009E55")]
public OutfitTool <>4__this;
// Token: 0x04009E56 RID: 40534
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E56")]
public AvatarItem item;
}
}
}
@@ -0,0 +1,202 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using RecRoom.Avatar.Data.Runtime;
using RecRoom.Core;
using RecRoom.Core.Rendering;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021C5 RID: 8645
[Token(Token = "0x20021C5")]
[StructLayout(3)]
public class OutfitTrigger : MonoBehaviour
{
// Token: 0x170027E2 RID: 10210
// (get) Token: 0x0600EE32 RID: 60978 RVA: 0x00387520 File Offset: 0x00385720
[Token(Token = "0x170027E2")]
public OutfitTool PINLHNIGAMP
{
[Token(Token = "0x600EE32")]
[Address(RVA = "0x1D123F0", Offset = "0x1D10DF0", VA = "0x181D123F0")]
get
{
OutfitTool laidkdhadak = OutfitTool.LAIDKDHADAK;
int num = 0;
if (laidkdhadak == num)
{
OutfitTool.LAIDKDHADAK = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.SpawnDormOutfitForLocalPlayer();
OutfitTool.LAIDKDHADAK.<PEPMCNPDBJD>k__BackingField = true;
}
return OutfitTool.LAIDKDHADAK;
}
}
// Token: 0x170027E3 RID: 10211
// (get) Token: 0x0600EE33 RID: 60979 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x170027E3")]
public AvatarItem NJFKKOFHBKN
{
[Token(Token = "0x600EE33")]
[Address(RVA = "0x1062610", Offset = "0x1061010", VA = "0x181062610")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x170027E4 RID: 10212
// (get) Token: 0x0600EE34 RID: 60980 RVA: 0x00387564 File Offset: 0x00385764
[Token(Token = "0x170027E4")]
public Player.GAHEJKDCLLE HECJOOCGPLM
{
[Token(Token = "0x600EE34")]
[Address(RVA = "0x446CA0", Offset = "0x4456A0", VA = "0x180446CA0")]
get
{
return this.KBPBECFMDKD;
}
}
// Token: 0x170027E5 RID: 10213
// (get) Token: 0x0600EE35 RID: 60981 RVA: 0x00387578 File Offset: 0x00385778
// (set) Token: 0x0600EE36 RID: 60982 RVA: 0x0038758C File Offset: 0x0038578C
[Token(Token = "0x170027E5")]
public bool FDOCDLBPHME
{
[Token(Token = "0x600EE35")]
[Address(RVA = "0x446CB0", Offset = "0x4456B0", VA = "0x180446CB0")]
get
{
return this.HELIIGCHOEF;
}
[Token(Token = "0x600EE36")]
[Address(RVA = "0x1D12590", Offset = "0x1D10F90", VA = "0x181D12590")]
set
{
if (this.HELIIGCHOEF != value)
{
IDisposable lidkfomnnep = this.LIDKFOMNNEP;
this.HELIIGCHOEF = value;
if (value)
{
if (lidkfomnnep == 0)
{
Action action = new Action(this.HLOJGIIPPBO);
IDisposable disposable = this.PreRenderUpdate(action);
this.LIDKFOMNNEP = disposable;
return;
}
}
else if (lidkfomnnep != 0)
{
this.LIDKFOMNNEP = (ulong)0L;
}
}
}
}
// Token: 0x0600EE37 RID: 60983 RVA: 0x003875E4 File Offset: 0x003857E4
[Token(Token = "0x600EE37")]
[Address(RVA = "0x1D11E20", Offset = "0x1D10820", VA = "0x181D11E20")]
private void HLOJGIIPPBO()
{
OEIHLPKBJKH nextOutlineRenderHandle = OutlineRendererEffect.GetNextOutlineRenderHandle();
Renderer pacbkjlecjm = this.PACBKJLECJM;
int submeshCount = pacbkjlecjm.GetSubmeshCount();
OutlineRendererEffect.RenderHoverOutline(nextOutlineRenderHandle, pacbkjlecjm, submeshCount, true);
}
// Token: 0x0600EE38 RID: 60984 RVA: 0x00387610 File Offset: 0x00385810
[Token(Token = "0x600EE38")]
[Address(RVA = "0x1D11EC0", Offset = "0x1D108C0", VA = "0x181D11EC0")]
public void Initialize(Transform PNPBHNGFIBJ, AvatarItem LACNEKHKOII, Player.GAHEJKDCLLE NMKAKHOEMGB)
{
Renderer component = base.GetComponent<Renderer>();
this.PACBKJLECJM = component;
Transform transform = base.transform;
int num = 0;
transform.SetParent(PNPBHNGFIBJ, num != 0);
SphereCollider sphereCollider = base.gameObject.AddComponent<SphereCollider>();
this.IGDMNGKEFEB = sphereCollider;
this.NMJKIHNBGAB = PNPBHNGFIBJ;
this.KBPBECFMDKD = NMKAKHOEMGB;
Mesh mesh = this.PACBKJLECJM.GetMesh();
float[] array = new float[3];
array[1] = array;
float num2 = Mathf.Max(array);
this.IGDMNGKEFEB.radius = num2;
Renderer pacbkjlecjm = this.PACBKJLECJM;
int num3 = 0;
pacbkjlecjm.enabled = num3 != 0;
}
// Token: 0x0600EE39 RID: 60985 RVA: 0x003876B4 File Offset: 0x003858B4
[Token(Token = "0x600EE39")]
[Address(RVA = "0x1D12150", Offset = "0x1D10B50", VA = "0x181D12150")]
public void PositionToolForPickup(OutfitTool PCGLKEEOBAE)
{
Transform transform = PCGLKEEOBAE.transform;
Transform nmjkihnbgab = this.NMJKIHNBGAB;
Vector3 vector;
float z = vector.z;
Transform transform2 = PCGLKEEOBAE.transform;
Transform nmjkihnbgab2 = this.NMJKIHNBGAB;
}
// Token: 0x0600EE3A RID: 60986 RVA: 0x003876EC File Offset: 0x003858EC
[Token(Token = "0x600EE3A")]
[Address(RVA = "0x1D12220", Offset = "0x1D10C20", VA = "0x181D12220")]
public void RefreshBounds()
{
Mesh mesh = this.PACBKJLECJM.GetMesh();
float[] array = new float[3];
array[1] = array;
float num = Mathf.Max(array);
this.IGDMNGKEFEB.radius = num;
}
// Token: 0x0600EE3B RID: 60987 RVA: 0x00387734 File Offset: 0x00385934
[Token(Token = "0x600EE3B")]
[Address(RVA = "0x3C1210", Offset = "0x3BFC10", VA = "0x1803C1210")]
public OutfitTrigger()
{
}
// Token: 0x04009E36 RID: 40502
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4009E36")]
private Renderer PACBKJLECJM;
// Token: 0x04009E37 RID: 40503
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4009E37")]
private SphereCollider IGDMNGKEFEB;
// Token: 0x04009E38 RID: 40504
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4009E38")]
private Transform NMJKIHNBGAB;
// Token: 0x04009E39 RID: 40505
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4009E39")]
private AvatarItem IGJPEHNCMNO;
// Token: 0x04009E3A RID: 40506
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009E3A")]
private Player.GAHEJKDCLLE KBPBECFMDKD;
// Token: 0x04009E3B RID: 40507
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009E3B")]
private IDisposable LIDKFOMNNEP;
// Token: 0x04009E3C RID: 40508
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009E3C")]
private bool HELIIGCHOEF;
}
}
@@ -0,0 +1,161 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
using Photon.Pun;
using Photon.Realtime;
using RecRoom.Activities.Quest.Goblin2;
using UnityEngine;
namespace RecRoom.Avatar.Outfit
{
// Token: 0x020021C6 RID: 8646
[Token(Token = "0x20021C6")]
[StructLayout(3)]
public class PermanentHairDyeTool : MonoBehaviourPun
{
// Token: 0x0600EE3C RID: 60988 RVA: 0x00387748 File Offset: 0x00385948
[Token(Token = "0x600EE3C")]
[Address(RVA = "0x1D12910", Offset = "0x1D11310", VA = "0x181D12910", Slot = "13")]
protected override void Awake()
{
int num;
for (;;)
{
base..ctor();
Tool tool = this.tool;
num = 0;
if (tool.NDKHDFJHGPP || this.tool.InstantiationParameters == 0 || !this.tool.InstantiationParameters.TryGetValue("ColorGuid", num))
{
goto IL_95;
}
HairColorVault hairColorVault = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.HairColorVault;
if (num == 0 || num != 0)
{
ColorVault.ColorToGuid dyeColor = hairColorVault.GetDyeColor(num);
this.MEBLCMDDKCK = dyeColor;
int num2 = 0;
if (ColorVault.ColorToGuid.BDBLGMKABNK(dyeColor, num2))
{
goto IL_E8;
}
if (num == 0 || num != 0)
{
break;
}
}
}
Debug.LogError("Can not find dye color for " + num);
PhotonNetwork.Destroy(base.gameObject);
IL_95:
Tool tool2 = this.tool;
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool2.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action = new Action(this.FICCBKGGJOE);
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> actionEvent = postResetEvent + action;
tool2.PostResetEvent = actionEvent;
Potion potion = this.potion;
Potion.JICLAAJLNCE jiclaajlnce = new Potion.JICLAAJLNCE(this.BHFMPLDIHFG);
potion.AOFFBPHMBBP += jiclaajlnce;
return;
IL_E8:
HairDyeRenderSetup hairDyeRenderSetup = this.hairDyeRenderSetup;
ColorVault.ColorToGuid meblcmddkck = this.MEBLCMDDKCK;
hairDyeRenderSetup.SetupRenderers(meblcmddkck);
OutfitManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG;
ColorVault.ColorToGuid meblcmddkck2 = this.MEBLCMDDKCK;
HairColorVault hairColorVault2 = instance.HairColorVault;
string guidString = meblcmddkck2.guidString;
hairColorVault2.AddUnlockedHairDye(guidString);
throw new NullReferenceException();
}
// Token: 0x0600EE3D RID: 60989 RVA: 0x00387888 File Offset: 0x00385A88
[Token(Token = "0x600EE3D")]
[Address(RVA = "0x1D12E40", Offset = "0x1D11840", VA = "0x181D12E40", Slot = "14")]
protected override void OnDestroy()
{
Tool tool = this.tool;
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> postResetEvent = tool.PostResetEvent;
Action<Tool, Vector3, Quaternion, Vector3, bool> action = new Action(this.FICCBKGGJOE);
ActionEvent<Tool, Vector3, Quaternion, Vector3, bool> actionEvent = postResetEvent - action;
tool.PostResetEvent = actionEvent;
Potion potion = this.potion;
Potion.JICLAAJLNCE jiclaajlnce = new Potion.JICLAAJLNCE(this.BHFMPLDIHFG);
potion.AOFFBPHMBBP -= jiclaajlnce;
base.OnDestroy();
}
// Token: 0x0600EE3E RID: 60990 RVA: 0x003878EC File Offset: 0x00385AEC
[Token(Token = "0x600EE3E")]
[Address(RVA = "0x1D12DC0", Offset = "0x1D117C0", VA = "0x181D12DC0")]
private void FICCBKGGJOE(Tool NBHJPDBHDHB, Vector3 BNMOCBJEEPN, Quaternion LPHCCEOHNIN, Vector3 GMMJHABHDHE, bool ACPOOMGHPKJ)
{
PhotonNetwork.Destroy(base.gameObject);
}
// Token: 0x0600EE3F RID: 60991 RVA: 0x00387908 File Offset: 0x00385B08
[Token(Token = "0x600EE3F")]
[Address(RVA = "0x1D12C70", Offset = "0x1D11670", VA = "0x181D12C70")]
private void BHFMPLDIHFG(Potion GCEPCEDMAHI, Photon.Realtime.Player IEKDDPPNFPF)
{
if (!this.OEJHFGNAGFB && IEKDDPPNFPF != 0 && IEKDDPPNFPF.IsLocal)
{
string guidString = this.MEBLCMDDKCK.guidString;
int num = 0;
Tool tool = this.tool;
if (tool != 0)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField = tool.<FLFJCIPBAPA>k__BackingField;
if (<FLFJCIPBAPA>k__BackingField != 0)
{
bool isNew = <FLFJCIPBAPA>k__BackingField.HICLCBMIPIN;
}
if (num != 1)
{
PlayerSpawnedEquipment <FLFJCIPBAPA>k__BackingField2 = this.tool.<FLFJCIPBAPA>k__BackingField;
int num2 = 0;
<FLFJCIPBAPA>k__BackingField2.HICLCBMIPIN = num2 != 0;
}
}
this.OEJHFGNAGFB = true;
}
}
// Token: 0x0600EE40 RID: 60992 RVA: 0x0038798C File Offset: 0x00385B8C
[Token(Token = "0x600EE40")]
[Address(RVA = "0x6A4030", Offset = "0x6A2A30", VA = "0x1806A4030")]
public PermanentHairDyeTool()
{
}
// Token: 0x04009E3D RID: 40509
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4009E3D")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected Potion potion;
// Token: 0x04009E3E RID: 40510
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4009E3E")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected HairDyeRenderSetup hairDyeRenderSetup;
// Token: 0x04009E3F RID: 40511
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4009E3F")]
[SerializeField]
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
protected Tool tool;
// Token: 0x04009E40 RID: 40512
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x4009E40")]
private bool OEJHFGNAGFB;
// Token: 0x04009E41 RID: 40513
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x4009E41")]
private ColorVault.ColorToGuid MEBLCMDDKCK;
}
}