using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using AGUI.StackedUI; using CodeStage.AntiCheat.ObscuredTypes; using Cpp2IlInjected; using Photon.Realtime; using RecRoom.Async; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; namespace RecRoom { // Token: 0x02001D30 RID: 7472 [Token(Token = "0x2001D30")] [StructLayout(3)] public class SubscribeFeedbackButtonController : MonoBehaviour { // Token: 0x0600C8D1 RID: 51409 RVA: 0x002FAB24 File Offset: 0x002F8D24 [Token(Token = "0x600C8D1")] [Address(RVA = "0x1014410", Offset = "0x1012E10", VA = "0x181014410")] private void Awake() { ChargePhysicalButton chargePhysicalButton = this.subscribeToCreatorButton; bool isButtonEnabled = chargePhysicalButton.HFNAIHCPBNN; int num = 0; chargePhysicalButton.EFEGGLIACKH = num != 0; bool isButtonEnabled2 = this.viewAllCreatorsButton.HFNAIHCPBNN; PhysicalButtonBase.PhysicalButtonPressEvent pressEvent = this.viewAllCreatorsButton.pressEvent; UnityAction unityAction = new UnityAction(this.PDDBEJLIPGF); pressEvent.AddListener(unityAction); GameObject gameObject = this.subscribeToCreatorsRoot.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); GameObject gameObject2 = this.viewAllCreatorsRoot.gameObject; int num3 = 0; gameObject2.SetActive(num3 != 0); ChargePhysicalButton chargePhysicalButton2 = this.subscribeToCreatorButton; ChargePhysicalButton.DHLBGCGFOKM dhlbgcgfokm = new ChargePhysicalButton.DHLBGCGFOKM(this.FLEJIKFEAPC); chargePhysicalButton2.IFBBCJAFNKL += dhlbgcgfokm; ChargePhysicalButton chargePhysicalButton3 = this.subscribeToCreatorButton; int num4; ChargePhysicalButton.LAIOCMMEABH laiocmmeabh = new ChargePhysicalButton.LAIOCMMEABH(num4.BLDBNAOHJIG); num4 = 0; chargePhysicalButton3.AddCustomChargeCondition(laiocmmeabh); RoomOrPlaylistSpecificUIBehaviour roomOrPlaylistSpecificUIBehaviour = this.roomDetailsProvider; ActionEvent roomOrPlaylistDetailsUpdated = roomOrPlaylistSpecificUIBehaviour.RoomOrPlaylistDetailsUpdated; Action action = new Action(this.FODLGIJCALM); ActionEvent actionEvent = roomOrPlaylistDetailsUpdated + action; roomOrPlaylistSpecificUIBehaviour.RoomOrPlaylistDetailsUpdated = actionEvent; AccountSpecificUIBehaviour accountSpecificUIBehaviour = this.creatorDetailsProvider; ActionEvent playerAccountUpdated = accountSpecificUIBehaviour.PlayerAccountUpdated; Action action2 = new Action(this.CKEHAFFPBGL); ActionEvent actionEvent2 = playerAccountUpdated + action2; accountSpecificUIBehaviour.PlayerAccountUpdated = actionEvent2; SubscribeFeedbackButtonController.EIBFLBCCOKG eibflbccokg; eibflbccokg.System.IDisposable.Dispose(); eibflbccokg.<>1__state = (int)((ulong)0L); eibflbccokg.<>4__this = this; Coroutine coroutine = base.StartCoroutine(eibflbccokg); } // Token: 0x0600C8D2 RID: 51410 RVA: 0x002FAC7C File Offset: 0x002F8E7C [Token(Token = "0x600C8D2")] [Address(RVA = "0x1014950", Offset = "0x1013350", VA = "0x181014950")] private IEnumerator OKMHPIIEJNP() { /* An exception occurred when decompiling this method (0600C8D2) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerator RecRoom.SubscribeFeedbackButtonController::OKMHPIIEJNP() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: call:void(EIBFLBCCOKG::System.IDisposable.Dispose, ldloc:EIBFLBCCOKG(var_0)) stfld:int32(EIBFLBCCOKG::<>1__state, ldloc:EIBFLBCCOKG(var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](0))) stfld:SubscribeFeedbackButtonController(EIBFLBCCOKG::<>4__this, ldloc:EIBFLBCCOKG(var_0), ldloc:SubscribeFeedbackButtonController(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: 0x0600C8D3 RID: 51411 RVA: 0x002FACA0 File Offset: 0x002F8EA0 [Token(Token = "0x600C8D3")] [Address(RVA = "0x1015120", Offset = "0x1013B20", VA = "0x181015120")] private void PLDFGPMIAPN() { int num = 0; if (this.creatorDetailsProvider.GEAFMCJMKBM != 0) { int? k__BackingField = this.creatorDetailsProvider.k__BackingField; } ChargePhysicalButton chargePhysicalButton = this.subscribeToCreatorButton; bool isButtonEnabled = chargePhysicalButton.HFNAIHCPBNN; chargePhysicalButton.EFEGGLIACKH = num != 0; } // Token: 0x0600C8D4 RID: 51412 RVA: 0x002FACE4 File Offset: 0x002F8EE4 [Token(Token = "0x600C8D4")] [Address(RVA = "0x1014EA0", Offset = "0x10138A0", VA = "0x181014EA0")] private void PICEBFBCNCL() { RoomOrPlaylistSpecificUIBehaviour roomOrPlaylistSpecificUIBehaviour = this.roomDetailsProvider; int num = 0; RoomOrPlaylistSpecificUIBehaviour.CMLGLFBGNNH k__BackingField = roomOrPlaylistSpecificUIBehaviour.k__BackingField; if (k__BackingField != 0) { IReadOnlyList k__BackingField = k__BackingField.k__BackingField; GameObject gameObject = this.subscribeToCreatorsRoot.gameObject; bool flag = roomOrPlaylistSpecificUIBehaviour == 0; gameObject.SetActive(flag); GameObject gameObject2 = this.viewAllCreatorsRoot.gameObject; bool flag2 = roomOrPlaylistSpecificUIBehaviour > 0; gameObject2.SetActive(flag2); } bool isButtonEnabled = this.viewAllCreatorsButton.HFNAIHCPBNN; this.PLDFGPMIAPN(); AccountSpecificUIBehaviour accountSpecificUIBehaviour = this.creatorDetailsProvider; if (accountSpecificUIBehaviour.k__BackingField != 0 && accountSpecificUIBehaviour.DLLAJGDMFHI != 0 && this.creatorDetailsProvider.GEAFMCJMKBM != 0 && this.subscribeToCreatorButton.EFEGGLIACKH) { IPromise promise = JDJGIBLMFKK.DPFECPNKKEL(this.creatorDetailsProvider.k__BackingField.value); Action action = new Action(this.IEMDEGMGHNM); if (num < this) { num += num; if (num == this) { promise += promise; num += 19; throw new NullReferenceException(); } num++; } } } // Token: 0x0600C8D5 RID: 51413 RVA: 0x002FADD8 File Offset: 0x002F8FD8 [Token(Token = "0x600C8D5")] [Address(RVA = "0x10146D0", Offset = "0x10130D0", VA = "0x1810146D0")] private void FODLGIJCALM(RoomOrPlaylistSpecificUIBehaviour.CMLGLFBGNNH EFDBFLPKHKA, RoomOrPlaylistSpecificUIBehaviour.NCJGCLHOAPO EEAOJHBIACA, OKLDKBKBECD GEDCEIDOKJL) { this.PICEBFBCNCL(); } // Token: 0x0600C8D6 RID: 51414 RVA: 0x002FADEC File Offset: 0x002F8FEC [Token(Token = "0x600C8D6")] [Address(RVA = "0x10146D0", Offset = "0x10130D0", VA = "0x1810146D0")] private void CKEHAFFPBGL() { this.PICEBFBCNCL(); } // Token: 0x0600C8D7 RID: 51415 RVA: 0x002FAE00 File Offset: 0x002F9000 [Token(Token = "0x600C8D7")] [Address(RVA = "0x10146C0", Offset = "0x10130C0", VA = "0x1810146C0")] private static bool BLDBNAOHJIG(ChargePhysicalButton AKBHFOFHHNK, Photon.Realtime.Player BBIDOHOGCJN, PlayerHand JOFEIIFPKCC) { if (BBIDOHOGCJN != 0) { } return true; } // Token: 0x0600C8D8 RID: 51416 RVA: 0x002FAE14 File Offset: 0x002F9014 [Token(Token = "0x600C8D8")] [Address(RVA = "0x10146E0", Offset = "0x10130E0", VA = "0x1810146E0")] private void FLEJIKFEAPC(ChargePhysicalButton LKDLEHGHCAD) { int k__BackingField = this.creatorDetailsProvider.DLLAJGDMFHI.k__BackingField; FEIJAKCMJKH.BCEJDLNDEJO bcejdlndejo = FEIJAKCMJKH.BCEJDLNDEJO.PLFHINDPFIF(); Action action = new Action(this.PICEBFBCNCL); int num = 0; num += num; num++; IPromise promise; bool isCompleted = promise.IsCompleted; } // Token: 0x0600C8D9 RID: 51417 RVA: 0x002FAE68 File Offset: 0x002F9068 [Token(Token = "0x600C8D9")] [Address(RVA = "0x1014B80", Offset = "0x1013580", VA = "0x181014B80")] private void PDDBEJLIPGF(PhysicalButtonBase AKBHFOFHHNK, global::Player JGOCAKIAFPE) { int num = 0; if (JGOCAKIAFPE != num) { } global::Player k__BackingField = global::Player.k__BackingField; RoomOrPlaylistSpecificUIBehaviour roomOrPlaylistSpecificUIBehaviour = this.roomDetailsProvider; PlayerUI playerUI = k__BackingField.playerUI; RoomOrPlaylistSpecificUIBehaviour.CMLGLFBGNNH k__BackingField = roomOrPlaylistSpecificUIBehaviour.k__BackingField; int num2 = 0; if (!(playerUI == num2) && k__BackingField != 0) { List list = new List(); int k__BackingField = k__BackingField.k__BackingField; list.Add(k__BackingField); List owners = list; IReadOnlyList k__BackingField = k__BackingField.k__BackingField; if (list > 0) { List owners3 = owners; IReadOnlyList k__BackingField2 = k__BackingField.k__BackingField; Func func; if (SubscribeFeedbackButtonController.<>c.<>9__23_0 == 0) { func = delegate(ObscuredInt obscuredInt) { int num4; return num4; }; SubscribeFeedbackButtonController.<>c.<>9__23_0 = func; } IEnumerable enumerable = Enumerable.Select(k__BackingField2, func); owners3.AddRange(enumerable); } EMAPDKEOHPA gmjkemamoio = this.GMJKEMAMOIO; string text = this.amplitudeEventContextLabel; Action action = delegate(PlayerListScreen flow) { string text2 = this.amplitudeEventContextLabel; List owners2 = owners; flow.ShowScreen(owners2, "Room Owners", text2); }; int num3 = 0; gmjkemamoio.HEFAJPDICFB((NDAHJCGIABD.CBNALAKCIPM)num3, text, action); } } // Token: 0x0600C8DA RID: 51418 RVA: 0x002FAF70 File Offset: 0x002F9170 [Token(Token = "0x600C8DA")] [Address(RVA = "0x10149B0", Offset = "0x10133B0", VA = "0x1810149B0")] private void OnDestroy() { EMAPDKEOHPA gmjkemamoio = this.GMJKEMAMOIO; if (gmjkemamoio != 0) { gmjkemamoio.Dispose(); } PhysicalButtonBase.PhysicalButtonPressEvent pressEvent = this.viewAllCreatorsButton.pressEvent; UnityAction unityAction = new UnityAction(this.PDDBEJLIPGF); pressEvent.RemoveListener(unityAction); ChargePhysicalButton chargePhysicalButton = this.subscribeToCreatorButton; int num; ChargePhysicalButton.LAIOCMMEABH laiocmmeabh = new ChargePhysicalButton.LAIOCMMEABH(num.BLDBNAOHJIG); num = 0; chargePhysicalButton.RemoveCustomChargeCondition(laiocmmeabh); ChargePhysicalButton chargePhysicalButton2 = this.subscribeToCreatorButton; ChargePhysicalButton.DHLBGCGFOKM dhlbgcgfokm = new ChargePhysicalButton.DHLBGCGFOKM(this.FLEJIKFEAPC); chargePhysicalButton2.IFBBCJAFNKL -= dhlbgcgfokm; RoomOrPlaylistSpecificUIBehaviour roomOrPlaylistSpecificUIBehaviour = this.roomDetailsProvider; ActionEvent roomOrPlaylistDetailsUpdated = roomOrPlaylistSpecificUIBehaviour.RoomOrPlaylistDetailsUpdated; Action action = new Action(this.FODLGIJCALM); ActionEvent actionEvent = roomOrPlaylistDetailsUpdated - action; roomOrPlaylistSpecificUIBehaviour.RoomOrPlaylistDetailsUpdated = actionEvent; AccountSpecificUIBehaviour accountSpecificUIBehaviour = this.creatorDetailsProvider; ActionEvent playerAccountUpdated = accountSpecificUIBehaviour.PlayerAccountUpdated; Action action2 = new Action(this.CKEHAFFPBGL); ActionEvent actionEvent2 = playerAccountUpdated - action2; accountSpecificUIBehaviour.PlayerAccountUpdated = actionEvent2; } // Token: 0x0600C8DB RID: 51419 RVA: 0x002FB05C File Offset: 0x002F925C [Token(Token = "0x600C8DB")] [Address(RVA = "0x1015280", Offset = "0x1013C80", VA = "0x181015280")] public SubscribeFeedbackButtonController() { EMAPDKEOHPA emapdkeohpa = new EMAPDKEOHPA(); this.GMJKEMAMOIO = emapdkeohpa; base..ctor(); } // Token: 0x0600C8DC RID: 51420 RVA: 0x002FB088 File Offset: 0x002F9288 [Token(Token = "0x600C8DC")] [Address(RVA = "0x1014840", Offset = "0x1013240", VA = "0x181014840")] [CompilerGenerated] private void IEMDEGMGHNM(bool FALMOMEIDBM) { Image image = this.subscribeIconImage; if (!FALMOMEIDBM) { Sprite sprite = this.toggledOffSprite; image.sprite = sprite; TMP_Text tmp_Text = this.subscribeLabel; } Sprite sprite2 = this.toggledOnSprite; image.sprite = sprite2; TMP_Text tmp_Text2 = this.subscribeLabel; string text = this.toggledOnLabel; tmp_Text2.text = text; PhysicalButtonLocalToggleAdapter physicalButtonLocalToggleAdapter = this.subscribeToCreatorToggleButton; int num = 0; if (physicalButtonLocalToggleAdapter != num) { ChargePhysicalButton chargePhysicalButton = this.subscribeToCreatorButton; PhysicalButtonLocalToggleAdapter physicalButtonLocalToggleAdapter2 = this.subscribeToCreatorToggleButton; bool activated = chargePhysicalButton.EFEGGLIACKH; physicalButtonLocalToggleAdapter2.IBIEKAOHAMD = true; } } // Token: 0x04008561 RID: 34145 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4008561")] [SerializeField] [Header("Data Sources")] private RoomOrPlaylistSpecificUIBehaviour roomDetailsProvider; // Token: 0x04008562 RID: 34146 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4008562")] [SerializeField] private AccountSpecificUIBehaviour creatorDetailsProvider; // Token: 0x04008563 RID: 34147 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4008563")] [SerializeField] [Header("Subscribe To Creator")] private Transform subscribeToCreatorsRoot; // Token: 0x04008564 RID: 34148 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4008564")] [SerializeField] private TMP_Text subscribeLabel; // Token: 0x04008565 RID: 34149 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4008565")] [SerializeField] private Image subscribeIconImage; // Token: 0x04008566 RID: 34150 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4008566")] [SerializeField] private ChargePhysicalButton subscribeToCreatorButton; // Token: 0x04008567 RID: 34151 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4008567")] [SerializeField] private PhysicalButtonLocalToggleAdapter subscribeToCreatorToggleButton; // Token: 0x04008568 RID: 34152 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4008568")] [SerializeField] private Sprite toggledOffSprite; // Token: 0x04008569 RID: 34153 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x4008569")] [SerializeField] private Sprite toggledOnSprite; // Token: 0x0400856A RID: 34154 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400856A")] [SerializeField] private string toggledOffLabel; // Token: 0x0400856B RID: 34155 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400856B")] [SerializeField] private string toggledOnLabel; // Token: 0x0400856C RID: 34156 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x400856C")] [SerializeField] [Header("View All Creators")] private Transform viewAllCreatorsRoot; // Token: 0x0400856D RID: 34157 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x400856D")] [SerializeField] private PhysicalButtonBase viewAllCreatorsButton; // Token: 0x0400856E RID: 34158 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x400856E")] [SerializeField] [Header("Analytics")] private string amplitudeEventContextLabel = ""; // Token: 0x0400856F RID: 34159 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x400856F")] private readonly EMAPDKEOHPA GMJKEMAMOIO; // Token: 0x02001D32 RID: 7474 [Token(Token = "0x2001D32")] [CompilerGenerated] private sealed class LAKNKOJPGHN { // Token: 0x0600C8E3 RID: 51427 RVA: 0x002FB1F4 File Offset: 0x002F93F4 [Token(Token = "0x600C8E3")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public LAKNKOJPGHN() { } // Token: 0x0600C8E4 RID: 51428 RVA: 0x002FB208 File Offset: 0x002F9408 [Token(Token = "0x600C8E4")] [Address(RVA = "0x1008CB0", Offset = "0x10076B0", VA = "0x181008CB0")] internal void b__1(PlayerListScreen flow) { string amplitudeEventContextLabel = this.<>4__this.amplitudeEventContextLabel; List list = this.owners; flow.ShowScreen(list, "Room Owners", amplitudeEventContextLabel); } // Token: 0x04008573 RID: 34163 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4008573")] public List owners; // Token: 0x04008574 RID: 34164 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4008574")] public SubscribeFeedbackButtonController <>4__this; } } }