using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.CompilerServices; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Validation.Validators; internal sealed class DialogueChoiceValidator : IQuestValidator { [CompilerGenerated] private sealed class _003CValidate_003Ed__2 : IEnumerable, IEnumerable, IEnumerator, IEnumerator, IDisposable { private int _003C_003E1__state; private ValidationIssue _003C_003E2__current; private int _003C_003El__initialThreadId; private Quest quest; public Quest _003C_003E3__quest; public DialogueChoiceValidator _003C_003E4__this; private IEnumerator<(QuestSequence Sequence, int StepId, QuestStep Step)> _003C_003E7__wrap1; private (QuestSequence Sequence, int StepId, QuestStep Step) _003Cx_003E5__3; private List.Enumerator _003C_003E7__wrap3; private DialogueChoice _003CdialogueChoice_003E5__5; ValidationIssue IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } [DebuggerHidden] public _003CValidate_003Ed__2(int _003C_003E1__state) { this._003C_003E1__state = _003C_003E1__state; _003C_003El__initialThreadId = _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E(); } [DebuggerHidden] void IDisposable.Dispose() { int num = _003C_003E1__state; int num2 = -4; int num3 = num; int num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 1829827120 : 1829827123); while (true) { int num5 = num4; num2 = 1829827122; num3 = num5; int num6 = num3 + num2; int num7 = num3 & num2; switch (num6 - (num7 + num7)) { default: continue; case 0: num4 = 1829827123; continue; case 1: num2 = 1; num3 = num; if ((uint)(~(~num3 + num2)) <= 1u) { num4 = 1829827120; continue; } break; case 2: try { num4 = ((num == -4) ? 1185253003 : 1185253002); while (true) { int num8 = num4; num2 = 1185253003; num3 = num8; int num9 = num3 + num2; int num10 = num3 & num2; switch (num9 - (num10 + num10)) { case 3: goto end_IL_0098; case 1: num2 = 1; num3 = num; num4 = (((uint)(~(~num3 + num2)) <= 1u) ? 1185253003 : 1185253000); break; case 2: num4 = 1185253002; break; case 0: try { } finally { _003C_003Em__Finally2(); } goto end_IL_0098; } continue; end_IL_0098: break; } } finally { _003C_003Em__Finally1(); } break; } break; } _003C_003E7__wrap1 = null; _003Cx_003E5__3 = default((QuestSequence, int, QuestStep)); _003C_003E7__wrap3 = default(List.Enumerator); _003CdialogueChoice_003E5__5 = null; _003C_003E1__state = -2; } [MethodImpl(MethodImplOptions.NoInlining)] private bool MoveNext() { try { int num = _003C_003E1__state; DialogueChoiceValidator dialogueChoiceValidator = _003C_003E4__this; int num2; ValidationIssue validationIssue2 = default(ValidationIssue); ValidationIssue validationIssue = default(ValidationIssue); ExcelRef excelRef = default(ExcelRef); ExcelRef excelRef2 = default(ExcelRef); switch (num) { default: num2 = -658626702; goto IL_002c; case 0: _003C_003E1__state = -1; _003C_003E7__wrap1 = quest.AllSteps().GetEnumerator(); _003C_003E1__state = -3; num2 = -658626698; goto IL_002c; case 1: goto IL_0298; case 2: goto IL_02ac; IL_002c: while (true) { int num3 = num2; int num4 = -658626697; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { case 2: goto IL_0094; case 1: goto IL_00f3; case 4: goto end_IL_002c; case 11: _003CdialogueChoice_003E5__5 = null; num2 = -658626704; break; case 15: _003C_003E2__current = validationIssue2; _003C_003E1__state = 1; return true; case 9: goto IL_0181; case 17: _003C_003E2__current = validationIssue; _003C_003E1__state = 2; return true; case 12: goto IL_01e6; case 7: goto IL_0246; case 0: _003C_003Em__Finally2(); _003C_003E7__wrap3 = default(List.Enumerator); _003Cx_003E5__3 = default((QuestSequence, int, QuestStep)); num2 = -658626698; break; case 3: goto IL_0298; case 13: goto IL_02ac; case 14: num2 = -658626702; break; case 5: return false; case 10: _003C_003E7__wrap3 = _206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(_003Cx_003E5__3.Step).GetEnumerator(); _003C_003E1__state = -4; num2 = -658626704; break; case 6: goto IL_030e; case 16: goto IL_033a; case 8: _003C_003Em__Finally1(); _003C_003E7__wrap1 = null; return false; } continue; IL_033a: _003CdialogueChoice_003E5__5 = _003C_003E7__wrap3.Current; excelRef = _206A_200C_200C_200F_202A_200C_206A_206C_206A_202D_206D_200B_206F_202C_202A_206E_200E_206E_206C_206B_206F_200F_200F_206B_206D_202D_202E_206A_206C_202E_202A_206E_206C_200C_202B_206D_206E_206C_202E_200F_202E(_003CdialogueChoice_003E5__5); num2 = ((excelRef == null) ? (-658626703) : (-658626699)); continue; IL_0094: validationIssue2 = dialogueChoiceValidator.Validate(quest, _003Cx_003E5__3.Sequence, _003Cx_003E5__3.StepId, _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(_003CdialogueChoice_003E5__5), excelRef, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-633511800)); num2 = ((!(validationIssue2 != null)) ? (-658626703) : (-658626696)); continue; IL_0181: _003Cx_003E5__3 = _003C_003E7__wrap1.Current; num2 = ((_206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(_003Cx_003E5__3.Step).Count == 0) ? (-658626698) : (-658626691)); continue; IL_030e: excelRef2 = _206E_200D_206D_200D_206B_202A_202A_200D_206F_200E_202E_202D_202E_202A_206D_200F_200B_202E_200D_202E_206D_200E_200C_206E_202B_206B_202A_200B_206A_206E_206F_206A_200B_206A_202C_202E_206E_200C_202A_202C_202E(_003CdialogueChoice_003E5__5); num2 = ((excelRef2 == null) ? (-658626692) : (-658626693)); continue; IL_01e6: validationIssue = dialogueChoiceValidator.Validate(quest, _003Cx_003E5__3.Sequence, _003Cx_003E5__3.StepId, _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(_003CdialogueChoice_003E5__5), excelRef2, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(726153876)); num2 = ((!(validationIssue != null)) ? (-658626692) : (-658626714)); continue; IL_00f3: num2 = (_202D_200B_206D_200F_202C_202D_200B_206E_202A_206A_200D_200E_200F_202A_202D_206C_200F_200E_206C_202B_200D_206F_200E_206C_202D_206F_206A_202C_206E_206A_200B_200B_206E_206E_200C_206E_200E_206B_206A_202B_202E((IEnumerator)_003C_003E7__wrap1) ? (-658626690) : (-658626689)); continue; IL_0246: num2 = (_003C_003E7__wrap3.MoveNext() ? (-658626713) : (-658626697)); continue; end_IL_002c: break; } goto case 0; IL_02ac: _003C_003E1__state = -4; num2 = -658626692; goto IL_002c; IL_0298: _003C_003E1__state = -4; num2 = -658626703; goto IL_002c; } } catch { //try-fault ((IDisposable)this).Dispose(); throw; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } private void _003C_003Em__Finally1() { _003C_003E1__state = -1; int num = ((_003C_003E7__wrap1 == null) ? 1730549734 : 1730549733); while (true) { int num2 = num; int num3 = 1730549732; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = 1730549733; break; case 1: _200B_202B_202B_202C_200B_202D_206A_200B_206A_206D_202D_202D_202D_202A_202C_202D_200F_200E_200B_200C_200B_202B_200D_202A_206F_200E_202B_202B_200B_206C_206A_200B_200C_206F_202C_206C_202D_202C_202D_206D_202E((IDisposable)_003C_003E7__wrap1); num = 1730549734; break; case 2: return; } } } private void _003C_003Em__Finally2() { _003C_003E1__state = -3; ((IDisposable)_003C_003E7__wrap3/*cast due to .constrained prefix*/).Dispose(); } [DebuggerHidden] void IEnumerator.Reset() { throw _202E_200F_202B_206D_206C_202B_202C_202B_206C_202D_206B_206F_200F_206E_200F_202B_200E_202A_202C_202D_200B_206A_206C_206F_206C_202D_206A_206B_206C_202E_206F_206C_202D_206A_206D_200E_200F_200B_202A_202E_202E(); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { int num = ((_003C_003E1__state != -2) ? 890630818 : 890630816); _003CValidate_003Ed__2 _003CValidate_003Ed__ = default(_003CValidate_003Ed__2); while (true) { int num2 = num; int num3 = 890630817; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 4: _003CValidate_003Ed__.quest = _003C_003E3__quest; return _003CValidate_003Ed__; case 1: num = ((_003C_003El__initialThreadId != _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E()) ? 890630818 : 890630817); break; case 3: _003CValidate_003Ed__ = new _003CValidate_003Ed__2(0) { _003C_003E4__this = _003C_003E4__this }; num = 890630821; break; case 0: _003C_003E1__state = 0; _003CValidate_003Ed__ = this; num = 890630821; break; case 2: num = 890630816; break; } } } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)this).GetEnumerator(); } static int _200D_202C_200B_202A_200C_200F_206B_200E_202E_202E_200B_206C_200E_202A_200E_202D_200B_206E_202D_202E_200F_202E_206D_200B_202E_202C_202E_206B_200D_200E_202C_202E_200D_202A_206E_206F_200D_200C_206E_206D_202E() { return Environment.CurrentManagedThreadId; } static List _206F_206E_200D_206E_200D_200C_202B_200F_206B_200E_202E_206B_202D_206D_200D_206F_200B_202E_206C_206C_200E_202E_206C_206C_206E_200E_202A_206B_202D_206E_200E_206E_206A_202B_200D_206A_206A_206A_200E_200F_202E(QuestStep P_0) { return P_0.DialogueChoices; } static ExcelRef _206A_200C_200C_200F_202A_200C_206A_206C_206A_202D_206D_200B_206F_202C_202A_206E_200E_206E_206C_206B_206F_200F_200F_206B_206D_202D_202E_206A_206C_202E_202A_206E_206C_200C_202B_206D_206E_206C_202E_200F_202E(DialogueChoice P_0) { return P_0.Prompt; } static string _200F_202B_206D_202D_200D_202E_206C_206D_202B_202E_202B_206A_202E_206B_202A_206A_202C_206A_206C_200E_206C_200F_206C_206F_202A_200C_202D_200B_202E_206D_202B_206E_202E_200D_202E_200E_202C_202A_200F_202C_202E(DialogueChoice P_0) { return P_0.ExcelSheet; } static ExcelRef _206E_200D_206D_200D_206B_202A_202A_200D_206F_200E_202E_202D_202E_202A_206D_200F_200B_202E_200D_202E_206D_200E_200C_206E_202B_206B_202A_200B_206A_206E_206F_206A_200B_206A_202C_202E_206E_200C_202A_202C_202E(DialogueChoice P_0) { return P_0.Answer; } static bool _202D_200B_206D_200F_202C_202D_200B_206E_202A_206A_200D_200E_200F_202A_202D_206C_200F_200E_206C_202B_200D_206F_200E_206C_202D_206F_206A_202C_206E_206A_200B_200B_206E_206E_200C_206E_200E_206B_206A_202B_202E(IEnumerator P_0) { return P_0.MoveNext(); } static void _200B_202B_202B_202C_200B_202D_206A_200B_206A_206D_202D_202D_202D_202A_202C_202D_200F_200E_200B_200C_200B_202B_200D_202A_206F_200E_202B_202B_200B_206C_206A_200B_200C_206F_202C_206C_202D_202C_202D_206D_202E(IDisposable P_0) { P_0.Dispose(); } static NotSupportedException _202E_200F_202B_206D_206C_202B_202C_202B_206C_202D_206B_206F_200F_206E_200F_202B_200E_202A_202C_202D_200B_206A_206C_206F_206C_202D_206A_206B_206C_202E_206F_206C_202D_206A_206D_200E_200F_200B_202A_202E_202E() { return new NotSupportedException(); } } private readonly ExcelFunctions _excelFunctions; public DialogueChoiceValidator(ExcelFunctions excelFunctions) { _excelFunctions = excelFunctions; } [IteratorStateMachine(typeof(_003CValidate_003Ed__2))] public IEnumerable Validate(Quest quest) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new _003CValidate_003Ed__2(-2) { _003C_003E4__this = this, _003C_003E3__quest = quest }; } IEnumerable IQuestValidator.Validate(Quest quest) { //ILSpy generated this explicit interface implementation from .override directive in Validate return this.Validate(quest); } [MethodImpl(MethodImplOptions.NoInlining)] private ValidationIssue? Validate(Quest quest, QuestSequence sequence, int stepId, string? excelSheet, ExcelRef excelRef, string label) { int num = ((_200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(excelRef) != ExcelRef.EType.Key) ? 784349212 : 784349211); while (true) { int num2 = num; int num3 = 784349210; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 5: num = 784349211; break; case 3: { ValidationIssue obj = new ValidationIssue { PathType = EPathType.Quest, Id = _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E((object)quest.Id), Location = SchemaValidationHelper.FormatQuestLocation(_206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(sequence), stepId), Type = EIssueType.InvalidExcelRef, Severity = EIssueSeverity.Error }; DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 3); defaultInterpolatedStringHandler.AppendFormatted(label); defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1993753271)); defaultInterpolatedStringHandler.AppendFormatted(excelSheet); defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-545088367)); defaultInterpolatedStringHandler.AppendFormatted(_206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(excelRef)); obj.Description = defaultInterpolatedStringHandler.ToStringAndClear(); return obj; } case 0: return null; case 6: num = ((_200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(excelRef) != ExcelRef.EType.RowId) ? 784349210 : 784349208); break; case 4: { ValidationIssue obj2 = new ValidationIssue { PathType = EPathType.Quest, Id = _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E((object)quest.Id), Location = SchemaValidationHelper.FormatQuestLocation(_206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(sequence), stepId), Type = EIssueType.InvalidExcelRef, Severity = EIssueSeverity.Error }; DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(13, 3); defaultInterpolatedStringHandler2.AppendFormatted(label); defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1993753271)); defaultInterpolatedStringHandler2.AppendFormatted(excelSheet); defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-485019730)); defaultInterpolatedStringHandler2.AppendFormatted(_202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(excelRef)); obj2.Description = defaultInterpolatedStringHandler2.ToStringAndClear(); return obj2; } case 2: num = (_excelFunctions.GetRawDialogueTextByRowId(excelSheet, _206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(excelRef)).HasValue ? 784349210 : 784349209); break; case 1: num = (_excelFunctions.GetRawDialogueText(quest, excelSheet, _202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(excelRef)).HasValue ? 784349210 : 784349214); break; } } } static ExcelRef.EType _200E_200C_206D_206D_202C_200E_200F_206E_202E_200E_202D_206D_200E_202C_206C_200B_200B_206A_202A_200F_200C_202A_202B_206F_200C_206B_206E_206D_206C_206E_202C_206B_202E_200F_206F_200B_206D_200B_206C_206E_202E(ExcelRef P_0) { return P_0.Type; } static string _202B_206D_206E_206C_200E_202E_206F_200F_202B_202A_206F_206E_206D_202A_202D_202E_202D_202A_200F_206E_200C_202A_206E_206A_202C_206C_206B_206C_200E_206B_202D_202A_206A_206C_206C_202A_206F_206D_206E_202E_202E(ExcelRef P_0) { return P_0.AsKey(); } static string _200F_206F_200D_206A_206F_200D_206A_206A_206A_206F_206E_202A_200C_202C_200F_202A_202C_200C_202A_200F_202D_202E_200E_206C_206A_200C_206F_200B_206E_206A_206D_200B_200E_202C_206A_202D_202E_200C_202C_202C_202E(object P_0) { return P_0.ToString(); } static byte _206E_206B_202D_206C_206A_200B_202C_206E_200B_206B_200F_200E_206D_206D_200F_200D_202E_200E_202B_202C_200C_202C_202A_206F_202A_200F_206F_200C_206A_206C_206C_202E_200F_202B_200C_206D_206E_202A_202B_202C_202E(QuestSequence P_0) { return P_0.Sequence; } static uint _206D_200C_200F_202C_206D_202E_206A_206E_206F_202B_200E_206D_206D_206E_200D_206B_202E_202B_206D_206B_202D_200B_202C_200C_206B_202C_200F_206E_200E_206D_200B_200B_206B_206A_202B_200B_206B_202C_206D_202C_202E(ExcelRef P_0) { return P_0.AsRowId(); } }