using System; using System.Linq; using Cpp2IlInjected; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using MarsSDK; using UnityEngine; using UnityEngine.UI; // Token: 0x0200023D RID: 573 [Token(Token = "0x200023D")] public abstract class UIValueBindingBase : UISubSettingsBase { // Token: 0x0600160A RID: 5642 RVA: 0x000329E8 File Offset: 0x00030BE8 [Token(Token = "0x600160A")] [Address(RVA = "0x8B6B90", Offset = "0x8B5990", VA = "0x1808B6B90", Slot = "11")] public override void Init(CanvasGroup mainCanvasGroup, Action cancelHandler, Text title) { int num = 0; base.Init(mainCanvasGroup, cancelHandler, title); UIValueBindingHandler[] array = this.topHandlers; if (num < array.Length) { array[num].index = num; num++; UIValueBindingHandler[] array2 = this.topHandlers; } this.bottomNavigationEffect.Hide(); GameObject gameObject = this.submissionEffect.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); CanvasGroup subCanvasGroup = this.subCanvasGroup; int num3 = 0; subCanvasGroup.alpha = (float)num3; CanvasGroup subCanvasGroup2 = this.subCanvasGroup; int num4 = 0; subCanvasGroup2.blocksRaycasts = num4 != 0; } // Token: 0x0600160B RID: 5643 RVA: 0x00032A78 File Offset: 0x00030C78 [Token(Token = "0x600160B")] [Address(RVA = "0x8B6320", Offset = "0x8B5120", VA = "0x1808B6320")] protected void InitHandlers(UIValueBindingHandler[] activeTopHandlers) { UINavigator navigator2; UIHandlerBase[] array2; UILabelHandler uilabelHandler22; for (;;) { UIValueBindingHandler uivalueBindingHandler = activeTopHandlers[0]; this.defaultHandler = uivalueBindingHandler; int num = 0; UINavigationSetter.Get(UINavigationMode.Vertical, true, num).Apply(activeTopHandlers); int length = activeTopHandlers.Length; UIValueBindingHandler uivalueBindingHandler2 = activeTopHandlers[0]; UILabelHandler uilabelHandler = this.backHandler; uivalueBindingHandler2.SetupNavigationHandler(Direction2D.Up, uilabelHandler); int num2 = length - 1; UIValueBindingHandler uivalueBindingHandler3 = activeTopHandlers[num2]; UILabelHandler uilabelHandler2 = this.backHandler; uivalueBindingHandler3.SetupNavigationHandler(Direction2D.Down, uilabelHandler2); int num3 = 0; int length2 = activeTopHandlers.Length; if (num3 < length2) { UIValueBindingHandler uivalueBindingHandler4 = activeTopHandlers[num3]; Action action = new Action(this.OnTopHandlerSelected); uivalueBindingHandler4.onSelectedHandler = action; Action action2 = new Action(this.OnTopHandlerDeselected); uivalueBindingHandler4.onDeselectedHandler = action2; num3++; } this.navigator.BindPointerEnterEvent(activeTopHandlers); this.navigator.BindPointerExitEvent(activeTopHandlers); this.resetHandler.index = (int)((ulong)100L); UILabelHandler uilabelHandler3 = this.resetHandler; UILabelHandler uilabelHandler4 = this.backHandler; uilabelHandler3.SetupNavigationHandler(Direction2D.Left, uilabelHandler4); UILabelHandler uilabelHandler5 = this.resetHandler; UILabelHandler uilabelHandler6 = this.backHandler; uilabelHandler5.SetupNavigationHandler(Direction2D.Right, uilabelHandler6); int length3 = activeTopHandlers.Length; UILabelHandler uilabelHandler7 = this.resetHandler; int num4 = length3 - 1; UIValueBindingHandler uivalueBindingHandler5 = activeTopHandlers[num4]; uilabelHandler7.SetupNavigationHandler(Direction2D.Up, uivalueBindingHandler5); UILabelHandler uilabelHandler8 = this.resetHandler; UIValueBindingHandler uivalueBindingHandler6 = activeTopHandlers[0]; uilabelHandler8.SetupNavigationHandler(Direction2D.Down, uivalueBindingHandler6); UILabelHandler uilabelHandler9 = this.resetHandler; Action action3 = new Action(this.OnBottomHandlerSelected); uilabelHandler9.onSelectedHandler = action3; UILabelHandler uilabelHandler10 = this.resetHandler; Action action4 = new Action(this.OnBottomHandlerDeselected); uilabelHandler10.onDeselectedHandler = action4; this.backHandler.index = (int)((ulong)101L); UILabelHandler uilabelHandler11 = this.backHandler; UILabelHandler uilabelHandler12 = this.resetHandler; uilabelHandler11.SetupNavigationHandler(Direction2D.Left, uilabelHandler12); UILabelHandler uilabelHandler13 = this.backHandler; UILabelHandler uilabelHandler14 = this.resetHandler; uilabelHandler13.SetupNavigationHandler(Direction2D.Right, uilabelHandler14); int length4 = activeTopHandlers.Length; UILabelHandler uilabelHandler15 = this.backHandler; int num5 = length4 - 1; UIValueBindingHandler uivalueBindingHandler7 = activeTopHandlers[num5]; uilabelHandler15.SetupNavigationHandler(Direction2D.Up, uivalueBindingHandler7); UILabelHandler uilabelHandler16 = this.backHandler; UIValueBindingHandler uivalueBindingHandler8 = activeTopHandlers[0]; uilabelHandler16.SetupNavigationHandler(Direction2D.Down, uivalueBindingHandler8); UILabelHandler uilabelHandler17 = this.backHandler; Action action5 = new Action(this.OnBottomHandlerSelected); uilabelHandler17.onSelectedHandler = action5; UILabelHandler uilabelHandler18 = this.backHandler; Action action6 = new Action(this.OnBottomHandlerDeselected); uilabelHandler18.onDeselectedHandler = action6; UINavigator navigator = this.navigator; UIHandlerBase[] array = new UIHandlerBase[2]; UILabelHandler uilabelHandler19 = this.resetHandler; if (uilabelHandler19 == 0 || array != 0) { array[0] = uilabelHandler19; UILabelHandler uilabelHandler20 = this.backHandler; if (uilabelHandler20 == 0 || array != 0) { array[1] = uilabelHandler20; navigator.BindPointerEnterEvent(array); navigator2 = this.navigator; array2 = new UIHandlerBase[2]; UILabelHandler uilabelHandler21 = this.resetHandler; if (uilabelHandler21 == 0 || array2 != 0) { array2[0] = uilabelHandler21; uilabelHandler22 = this.backHandler; if (uilabelHandler22 == 0 || array2 != 0) { break; } } } } } array2[1] = uilabelHandler22; navigator2.BindPointerExitEvent(array2); this.InitTopHandlerLayout(activeTopHandlers); } // Token: 0x0600160C RID: 5644 RVA: 0x00032D94 File Offset: 0x00030F94 [Token(Token = "0x600160C")] [Address(RVA = "0x8B6A00", Offset = "0x8B5800", VA = "0x1808B6A00")] private void InitTopHandlerLayout(UIValueBindingHandler[] activeHandlers) { UIValueBindingHandler[] array = this.topHandlers; int length = activeHandlers.Length; if (array.Length != length) { UIValueBindingHandler[] array2 = Enumerable.ToArray(Enumerable.Except(array, activeHandlers)); int num = 0; int length2 = array2.Length; if (num < length2) { GameObject gameObject = array2[num].root.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); num++; } this.layoutGroup.enabled = true; LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutGroup.GetComponent()); LayoutGroup layoutGroup = this.layoutGroup; int num3 = 0; layoutGroup.enabled = num3 != 0; } } // Token: 0x0600160D RID: 5645 RVA: 0x00032E30 File Offset: 0x00031030 [Token(Token = "0x600160D")] [Address(RVA = "0x8B7040", Offset = "0x8B5E40", VA = "0x1808B7040", Slot = "12")] public override void Open() { Text title = this.title; string text = this.titleText; title.text = text; ValueType[] configValues = this.GetConfigValues(); this.originConfigValues = configValues; this.bottomNavigationEffect.HideImmediate(); GameObject gameObject = this.submissionEffect.gameObject; int num = 0; gameObject.SetActive(num != 0); this.UpdateTopHandlers(); UINavigator navigator = this.navigator; UIValueBindingHandler uivalueBindingHandler = this.defaultHandler; navigator.SetDefaultHandler(uivalueBindingHandler); base.Appear(); } // Token: 0x0600160E RID: 5646 RVA: 0x00032EB0 File Offset: 0x000310B0 [Token(Token = "0x600160E")] [Address(RVA = "0x8B6FF0", Offset = "0x8B5DF0", VA = "0x1808B6FF0")] private void OnTopHandlerSelected(UIHandlerBase handler) { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x0600160F RID: 5647 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600160F")] [Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")] private void OnTopHandlerDeselected(UIHandlerBase handler) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001610 RID: 5648 RVA: 0x00032EC4 File Offset: 0x000310C4 [Token(Token = "0x6001610")] [Address(RVA = "0x8B6F10", Offset = "0x8B5D10", VA = "0x1808B6F10")] private void OnBottomHandlerSelected(UIHandlerBase handler) { UINavigationEffect uinavigationEffect = this.bottomNavigationEffect; Vector2 anchoredPosition = handler.rectTransform.anchoredPosition; uinavigationEffect.UpdatePos(anchoredPosition); if (handler.index == 100) { } UILabelHandler uilabelHandler = this.backHandler; this.bottomNavigationEffect.UpdateArrowPos(uilabelHandler); this.bottomNavigationEffect.Appear(); Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001611 RID: 5649 RVA: 0x00032F20 File Offset: 0x00031120 [Token(Token = "0x6001611")] [Address(RVA = "0x8B6EF0", Offset = "0x8B5CF0", VA = "0x1808B6EF0")] private void OnBottomHandlerDeselected(UIHandlerBase handler) { this.bottomNavigationEffect.Hide(); } // Token: 0x06001612 RID: 5650 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001612")] [Address(RVA = "0x8B6C80", Offset = "0x8B5A80", VA = "0x1808B6C80", Slot = "19")] public override bool IsDirty() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001613 RID: 5651 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001613")] [Address(RVA = "0x8B6DE0", Offset = "0x8B5BE0", VA = "0x1808B6DE0", Slot = "13")] public override void Move(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001614 RID: 5652 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001614")] [Address(RVA = "0x8B74F0", Offset = "0x8B62F0", VA = "0x1808B74F0")] protected void TrySwitchHandlerValue(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001615 RID: 5653 RVA: 0x00032F40 File Offset: 0x00031140 [Token(Token = "0x6001615")] [Address(RVA = "0x8B7200", Offset = "0x8B6000", VA = "0x1808B7200", Slot = "22")] protected virtual void PlayHandlerMoveSE() { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001616 RID: 5654 RVA: 0x00032F54 File Offset: 0x00031154 [Token(Token = "0x6001616")] [Address(RVA = "0x8B7550", Offset = "0x8B6350", VA = "0x1808B7550", Slot = "21")] public override void UpdateDirtyCheckValue() { /* An exception occurred when decompiling this method (06001616) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UIValueBindingBase::UpdateDirtyCheckValue() ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stloc:class [mscorlib]System.ValueType[](var_0_06, callvirt:class [mscorlib]System.ValueType[](UIValueBindingBase::GetConfigValues, ldloc:UIValueBindingBase(this))); stfld:class [mscorlib]System.ValueType[](UIValueBindingBase::originConfigValues, ldloc:UIValueBindingBase(this), ldloc:class [mscorlib]System.ValueType[](var_0_06)); }; at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810 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 344 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 1618 */; } // Token: 0x06001617 RID: 5655 [Token(Token = "0x6001617")] [Address(Slot = "23")] protected abstract ValueType[] GetConfigValues(); // Token: 0x06001618 RID: 5656 [Token(Token = "0x6001618")] [Address(Slot = "24")] protected abstract void UpdateTopHandlers(); // Token: 0x06001619 RID: 5657 RVA: 0x00032F70 File Offset: 0x00031170 [Token(Token = "0x6001619")] [Address(RVA = "0x8B7250", Offset = "0x8B6050", VA = "0x1808B7250", Slot = "16")] public override void Submit() { bool flag = this.navigator.currentHandler; if (flag) { if (this.navigator.currentHandler.index == 100) { this.PerformSubmissionEffect(true); Game.PlayHandlerScaleEffect(this.navigator.currentHandler); Game.PlayHandlerSE(UIHandlerSFX.ResetDefault); this.SetDefault(); } else { ValueType[] configValues; if (flag) { int num = 0; this.PerformSubmissionEffect(num != 0); Game.PlayHandlerScaleEffect(this.navigator.currentHandler); configValues = this.GetConfigValues(); return; } UIValueBindingHandler uivalueBindingHandler = this.topHandlers[configValues]; RectTransform rectTransform = uivalueBindingHandler.value.rectTransform; int num2 = 0; int num3 = rectTransform.DOKill(num2 != 0); TweenerCore tweenerCore = ShortcutExtensions.DOScale(uivalueBindingHandler.value.rectTransform, 0.7f, 0.075f); int num4 = 0; TweenerCore tweenerCore2 = TweenSettingsExtensions.From(tweenerCore, 1f, true, num4 != 0).SetLoops(2, LoopType.Yoyo).SetEase((Ease)((uint)3)) .Play>(); return; } } } // Token: 0x0600161A RID: 5658 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600161A")] [Address(RVA = "0x8B7100", Offset = "0x8B5F00", VA = "0x1808B7100")] private void PerformSubmissionEffect(bool withFadingAnimation) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600161B RID: 5659 [Token(Token = "0x600161B")] [Address(Slot = "25")] protected abstract void SetDefault(); // Token: 0x0600161C RID: 5660 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600161C")] [Address(RVA = "0x8B6D40", Offset = "0x8B5B40", VA = "0x1808B6D40")] protected bool IsTopHandlerSelected() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600161D RID: 5661 RVA: 0x00033060 File Offset: 0x00031260 [Token(Token = "0x600161D")] [Address(RVA = "0x8B61F0", Offset = "0x8B4FF0", VA = "0x1808B61F0")] protected string[] GetSwitchText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(325); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(324); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x0600161E RID: 5662 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600161E")] [Address(RVA = "0x8B5C40", Offset = "0x8B4A40", VA = "0x1808B5C40")] protected string[] GetDashMethodText(GameTextData data) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600161F RID: 5663 RVA: 0x000330B4 File Offset: 0x000312B4 [Token(Token = "0x600161F")] [Address(RVA = "0x8B5D70", Offset = "0x8B4B70", VA = "0x1808B5D70")] protected string[] GetDifficultyText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(27); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(28); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x06001620 RID: 5664 RVA: 0x00033104 File Offset: 0x00031304 [Token(Token = "0x6001620")] [Address(RVA = "0x8B60C0", Offset = "0x8B4EC0", VA = "0x1808B60C0")] protected string[] GetQualityText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(326); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(327); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x06001621 RID: 5665 RVA: 0x00033158 File Offset: 0x00031358 [Token(Token = "0x6001621")] [Address(RVA = "0x8B5EA0", Offset = "0x8B4CA0", VA = "0x1808B5EA0")] protected string[] GetFpsText(GameTextData data) { string[] array; string text; for (;;) { array = new string[4]; if ("30 FPS" == 0 || "30 FPS" != 0) { array[0] = "30 FPS"; if ("60 FPS" == 0 || "60 FPS" != 0) { array[1] = "60 FPS"; if ("120 FPS" == 0 || "120 FPS" != 0) { array[2] = "120 FPS"; text = data.GetText(330); if (text == 0 || text != 0) { break; } } } } } array[3] = text; return array; } // Token: 0x06001622 RID: 5666 RVA: 0x000331E4 File Offset: 0x000313E4 [Token(Token = "0x6001622")] [Address(RVA = "0x3FBF80", Offset = "0x3FAD80", VA = "0x1803FBF80")] protected UIValueBindingBase() { } // Token: 0x040020F7 RID: 8439 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40020F7")] [SerializeField] protected LayoutGroup layoutGroup; // Token: 0x040020F8 RID: 8440 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40020F8")] [SerializeField] protected UIValueBindingHandler[] topHandlers; // Token: 0x040020F9 RID: 8441 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40020F9")] [SerializeField] protected UILabelHandler resetHandler; // Token: 0x040020FA RID: 8442 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40020FA")] [SerializeField] protected UILabelHandler backHandler; // Token: 0x040020FB RID: 8443 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40020FB")] [SerializeField] protected UINavigationEffect bottomNavigationEffect; // Token: 0x040020FC RID: 8444 [FieldOffset(Offset = "0x68")] [Token(Token = "0x40020FC")] [SerializeField] protected Image submissionEffect; // Token: 0x040020FD RID: 8445 [FieldOffset(Offset = "0x70")] [Token(Token = "0x40020FD")] protected string titleText; // Token: 0x040020FE RID: 8446 [FieldOffset(Offset = "0x78")] [Token(Token = "0x40020FE")] protected ValueType[] originConfigValues; // Token: 0x040020FF RID: 8447 [FieldOffset(Offset = "0x80")] [Token(Token = "0x40020FF")] protected UIValueBindingHandler defaultHandler; // Token: 0x04002100 RID: 8448 [Token(Token = "0x4002100")] private const int RESET_HANDLER_INDEX = 100; // Token: 0x04002101 RID: 8449 [Token(Token = "0x4002101")] private const int BACK_HANDLER_INDEX = 101; }