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: 0x02000245 RID: 581 [Token(Token = "0x2000245")] public abstract class UIValueBindingBase : UISubSettingsBase { // Token: 0x06001629 RID: 5673 RVA: 0x000330F8 File Offset: 0x000312F8 [Token(Token = "0x6001629")] [Address(RVA = "0x95F6B0", Offset = "0x95DEB0", VA = "0x18095F6B0", 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: 0x0600162A RID: 5674 RVA: 0x00033188 File Offset: 0x00031388 [Token(Token = "0x600162A")] [Address(RVA = "0x95EE40", Offset = "0x95D640", VA = "0x18095EE40")] 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: 0x0600162B RID: 5675 RVA: 0x000334A4 File Offset: 0x000316A4 [Token(Token = "0x600162B")] [Address(RVA = "0x95F520", Offset = "0x95DD20", VA = "0x18095F520")] 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: 0x0600162C RID: 5676 RVA: 0x00033540 File Offset: 0x00031740 [Token(Token = "0x600162C")] [Address(RVA = "0x95FB60", Offset = "0x95E360", VA = "0x18095FB60", 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: 0x0600162D RID: 5677 RVA: 0x000335C0 File Offset: 0x000317C0 [Token(Token = "0x600162D")] [Address(RVA = "0x95FB10", Offset = "0x95E310", VA = "0x18095FB10")] private void OnTopHandlerSelected(UIHandlerBase handler) { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x0600162E RID: 5678 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600162E")] [Address(RVA = "0x29E8B0", Offset = "0x29D0B0", VA = "0x18029E8B0")] private void OnTopHandlerDeselected(UIHandlerBase handler) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600162F RID: 5679 RVA: 0x000335D4 File Offset: 0x000317D4 [Token(Token = "0x600162F")] [Address(RVA = "0x95FA30", Offset = "0x95E230", VA = "0x18095FA30")] 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: 0x06001630 RID: 5680 RVA: 0x00033630 File Offset: 0x00031830 [Token(Token = "0x6001630")] [Address(RVA = "0x95FA10", Offset = "0x95E210", VA = "0x18095FA10")] private void OnBottomHandlerDeselected(UIHandlerBase handler) { this.bottomNavigationEffect.Hide(); } // Token: 0x06001631 RID: 5681 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001631")] [Address(RVA = "0x95F7A0", Offset = "0x95DFA0", VA = "0x18095F7A0", Slot = "19")] public override bool IsDirty() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001632 RID: 5682 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001632")] [Address(RVA = "0x95F900", Offset = "0x95E100", VA = "0x18095F900", Slot = "13")] public override void Move(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001633 RID: 5683 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001633")] [Address(RVA = "0x960010", Offset = "0x95E810", VA = "0x180960010")] protected void TrySwitchHandlerValue(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001634 RID: 5684 RVA: 0x00033650 File Offset: 0x00031850 [Token(Token = "0x6001634")] [Address(RVA = "0x95FD20", Offset = "0x95E520", VA = "0x18095FD20", Slot = "22")] protected virtual void PlayHandlerMoveSE() { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001635 RID: 5685 RVA: 0x00033664 File Offset: 0x00031864 [Token(Token = "0x6001635")] [Address(RVA = "0x960070", Offset = "0x95E870", VA = "0x180960070", Slot = "21")] public override void UpdateDirtyCheckValue() { /* An exception occurred when decompiling this method (06001635) 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: 0x06001636 RID: 5686 [Token(Token = "0x6001636")] [Address(Slot = "23")] protected abstract ValueType[] GetConfigValues(); // Token: 0x06001637 RID: 5687 [Token(Token = "0x6001637")] [Address(Slot = "24")] protected abstract void UpdateTopHandlers(); // Token: 0x06001638 RID: 5688 RVA: 0x00033680 File Offset: 0x00031880 [Token(Token = "0x6001638")] [Address(RVA = "0x95FD70", Offset = "0x95E570", VA = "0x18095FD70", 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: 0x06001639 RID: 5689 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001639")] [Address(RVA = "0x95FC20", Offset = "0x95E420", VA = "0x18095FC20")] private void PerformSubmissionEffect(bool withFadingAnimation) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600163A RID: 5690 [Token(Token = "0x600163A")] [Address(Slot = "25")] protected abstract void SetDefault(); // Token: 0x0600163B RID: 5691 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600163B")] [Address(RVA = "0x95F860", Offset = "0x95E060", VA = "0x18095F860")] protected bool IsTopHandlerSelected() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600163C RID: 5692 RVA: 0x00033770 File Offset: 0x00031970 [Token(Token = "0x600163C")] [Address(RVA = "0x95ED10", Offset = "0x95D510", VA = "0x18095ED10")] 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: 0x0600163D RID: 5693 RVA: 0x000337C4 File Offset: 0x000319C4 [Token(Token = "0x600163D")] [Address(RVA = "0x95E760", Offset = "0x95CF60", VA = "0x18095E760")] protected string[] GetDashMethodText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(329); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(328); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x0600163E RID: 5694 RVA: 0x00033818 File Offset: 0x00031A18 [Token(Token = "0x600163E")] [Address(RVA = "0x95E890", Offset = "0x95D090", VA = "0x18095E890")] 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: 0x0600163F RID: 5695 RVA: 0x00033868 File Offset: 0x00031A68 [Token(Token = "0x600163F")] [Address(RVA = "0x95EBE0", Offset = "0x95D3E0", VA = "0x18095EBE0")] 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: 0x06001640 RID: 5696 RVA: 0x000338BC File Offset: 0x00031ABC [Token(Token = "0x6001640")] [Address(RVA = "0x95E9C0", Offset = "0x95D1C0", VA = "0x18095E9C0")] 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: 0x06001641 RID: 5697 RVA: 0x00033948 File Offset: 0x00031B48 [Token(Token = "0x6001641")] [Address(RVA = "0x41E600", Offset = "0x41CE00", VA = "0x18041E600")] protected UIValueBindingBase() { } // Token: 0x0400212C RID: 8492 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400212C")] [SerializeField] protected LayoutGroup layoutGroup; // Token: 0x0400212D RID: 8493 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400212D")] [SerializeField] protected UIValueBindingHandler[] topHandlers; // Token: 0x0400212E RID: 8494 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400212E")] [SerializeField] protected UILabelHandler resetHandler; // Token: 0x0400212F RID: 8495 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400212F")] [SerializeField] protected UILabelHandler backHandler; // Token: 0x04002130 RID: 8496 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4002130")] [SerializeField] protected UINavigationEffect bottomNavigationEffect; // Token: 0x04002131 RID: 8497 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4002131")] [SerializeField] protected Image submissionEffect; // Token: 0x04002132 RID: 8498 [FieldOffset(Offset = "0x70")] [Token(Token = "0x4002132")] protected string titleText; // Token: 0x04002133 RID: 8499 [FieldOffset(Offset = "0x78")] [Token(Token = "0x4002133")] protected ValueType[] originConfigValues; // Token: 0x04002134 RID: 8500 [FieldOffset(Offset = "0x80")] [Token(Token = "0x4002134")] protected UIValueBindingHandler defaultHandler; // Token: 0x04002135 RID: 8501 [Token(Token = "0x4002135")] private const int RESET_HANDLER_INDEX = 100; // Token: 0x04002136 RID: 8502 [Token(Token = "0x4002136")] private const int BACK_HANDLER_INDEX = 101; }