using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; using Microsoft.Extensions.Logging; using Questionable.Data; using Questionable.Model; using Questionable.Model.Questing; using Questionable.Navigation; using SmartNav; using SmartNav.Data; using SmartNav.Model; namespace Questionable.Controller.Steps.Shared; internal static class SmartNavStep { internal sealed class Factory(NavRouter navRouter, PlayerNavStateBuilder playerNavStateBuilder, RouteInstructionBuilder instructionBuilder, SmartNavTaskMapper taskMapper, SmartNavReRouteService reRouteService, AetheryteData aetheryteData, TerritoryData territoryData, ILogger logger) : ITaskFactory { [CompilerGenerated] private sealed class _003CCreateAllTasks_003Ed__13 : IEnumerable, IEnumerable, IEnumerator, IEnumerator, IDisposable { private int _003C_003E1__state; private ITask _003C_003E2__current; private int _003C_003El__initialThreadId; public Factory _003C_003E4__this; private QuestStep step; public QuestStep _003C_003E3__step; private IEnumerator _003C_003E7__wrap1; ITask IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } [DebuggerHidden] public _003CCreateAllTasks_003Ed__13(int _003C_003E1__state) { this._003C_003E1__state = _003C_003E1__state; _003C_003El__initialThreadId = _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E(); } [DebuggerHidden] void IDisposable.Dispose() { int num = _003C_003E1__state; int num2 = ((num == -3) ? 605314869 : 605314870); while (true) { int num3 = num2; int num4 = 605314868; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { default: continue; case 0: num2 = 605314870; continue; case 2: if (num == 1) { num2 = 605314869; continue; } break; case 1: try { } finally { _003C_003Em__Finally1(); } break; } break; } _003C_003E7__wrap1 = null; _003C_003E1__state = -2; } [MethodImpl(MethodImplOptions.NoInlining)] private bool MoveNext() { try { int num = _003C_003E1__state; Factory factory = _003C_003E4__this; int num2 = ((num == 0) ? 663941782 : 663941783); Vector3? vector = default(Vector3?); PlayerNavState playerNavState = default(PlayerNavState); RouteResult routeResult = default(RouteResult); while (true) { int num3 = num2; int num4 = 663941778; int num5 = num3; int num6 = num5 + num4; int num7 = num5 & num4; switch (num6 - (num7 + num7)) { case 8: num2 = (_202D_200C_202E_202D_200B_206A_206E_206E_200C_200B_200F_200F_206F_206C_200C_206C_206D_200B_206B_200E_200D_206D_202A_206E_202E_200F_206C_206F_206F_202C_200B_206F_202E_200C_202C_202B_202B_200D_206F_202D_202E((IEnumerator)_003C_003E7__wrap1) ? 663941779 : 663941780); break; case 4: _003C_003E1__state = -1; factory.HandledRouting = false; vector = factory.ResolveDestination(step); num2 = (vector.HasValue ? 663941790 : 663941781); break; case 0: num2 = 663941783; break; case 11: return false; case 12: playerNavState = _200C_202A_206C_206D_206B_200D_200F_202A_202D_200E_206E_200D_200B_206C_206A_200F_202A_202B_206C_200E_206E_200B_202B_200F_202C_206B_206F_200E_202A_202B_202A_206E_206E_202C_200F_200F_202B_202A_206F_206F_202E(factory.playerNavStateBuilder, (int?)null); num2 = ((playerNavState != null) ? 663941776 : 663941785); break; case 7: return false; case 3: _003C_003E1__state = -3; num2 = 663941786; break; case 13: return false; case 10: return false; case 1: { ITask current = _003C_003E7__wrap1.Current; _003C_003E2__current = current; _003C_003E1__state = 1; return true; } case 2: routeResult = _206C_200D_206E_200F_200D_200B_202A_202C_206B_206D_206E_206C_202A_206F_206B_206B_206B_202D_202B_200F_206C_206D_200F_206F_200B_202C_206A_202A_202E_202E_202D_206B_200E_206A_202B_206E_202E_206F_200C_206A_202E(factory.navRouter, playerNavState, (uint)_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), vector.Value, (IReadOnlySet)null); num2 = ((_206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(routeResult).Count != 0) ? 663941787 : 663941791); break; case 5: num2 = ((num == 1) ? 663941777 : 663941784); break; case 9: factory.HandledRouting = true; _200C_202B_200D_200E_206A_200E_200D_206B_206C_202B_206C_202D_202D_206A_206B_206D_200B_206D_202B_202D_206F_206C_200B_202E_200B_200F_200B_202B_206E_202C_206A_200D_200E_202B_206E_200D_206B_202E_206B_202E((ILogger)factory.logger, 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(-1590358802), new object[2] { factory.territoryData.GetNameAndId(_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step)), _206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(routeResult).Count }); factory.reRouteService.SetDestination(_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), vector.Value); _003C_003E7__wrap1 = factory.taskMapper.MapInstructions(_202C_206C_206A_202C_206B_206D_206B_206F_202A_202E_206E_206F_202A_206B_206C_206F_200B_206B_202B_202E_202C_200E_202A_200B_206D_200F_206F_202E_202B_200F_206F_202E_200B_202B_202A_202D_206D_206D_202B_202C_202E(factory.instructionBuilder, routeResult, (uint)_206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(step), _206D_202C_202E_200D_202A_200D_200B_200F_206C_200B_206F_206B_206F_206F_200D_200E_206B_206A_206C_200F_200C_200F_206A_200D_206D_206B_206A_202B_200B_200F_202E_200D_202C_206C_206E_206B_206D_202A_200B_202E_202E(step)), step).GetEnumerator(); _003C_003E1__state = -3; num2 = 663941786; break; case 6: _003C_003Em__Finally1(); _003C_003E7__wrap1 = null; return false; } } } 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) ? 298667003 : 298667002); while (true) { int num2 = num; int num3 = 298667003; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: num = 298667002; break; case 1: _200E_202A_206A_200C_206E_206C_206B_206B_206D_206E_206B_202C_206D_206A_202B_202B_200C_202B_202E_202C_202D_200B_200D_202C_206B_202B_206F_202B_200F_200F_202B_202D_200C_206E_200F_206C_200F_206A_206F_206D_202E((IDisposable)_003C_003E7__wrap1); num = 298667003; break; case 0: return; } } } [DebuggerHidden] void IEnumerator.Reset() { throw _206C_206C_200B_202D_206A_200B_200C_206D_202D_206E_202A_202B_206A_206B_200D_202E_202D_200C_200C_200C_200D_206E_202E_202A_206A_200C_202B_202C_206E_206E_200B_200C_200D_206F_202C_200C_206E_206B_206F_206C_202E(); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { int num = ((_003C_003E1__state != -2) ? (-183220830) : (-183220831)); _003CCreateAllTasks_003Ed__13 _003CCreateAllTasks_003Ed__ = default(_003CCreateAllTasks_003Ed__13); while (true) { int num2 = num; int num3 = -183220832; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 4: _003C_003E1__state = 0; _003CCreateAllTasks_003Ed__ = this; num = -183220832; break; case 1: num = ((_003C_003El__initialThreadId != _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E()) ? (-183220830) : (-183220828)); break; case 0: _003CCreateAllTasks_003Ed__.step = _003C_003E3__step; return _003CCreateAllTasks_003Ed__; case 3: num = -183220831; break; case 2: _003CCreateAllTasks_003Ed__ = new _003CCreateAllTasks_003Ed__13(0) { _003C_003E4__this = _003C_003E4__this }; num = -183220832; break; } } } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)this).GetEnumerator(); } static int _200F_200F_202C_206D_206F_202D_200D_206E_200B_202D_206A_202A_206B_202E_206D_200F_202E_206C_206C_206B_200C_206D_200B_206E_200F_200F_206F_206E_206A_200E_206B_206C_202C_202C_202B_206C_202D_206E_202D_200C_202E() { return Environment.CurrentManagedThreadId; } static PlayerNavState _200C_202A_206C_206D_206B_200D_200F_202A_202D_200E_206E_200D_200B_206C_206A_200F_202A_202B_206C_200E_206E_200B_202B_200F_202C_206B_206F_200E_202A_202B_202A_206E_206E_202C_200F_200F_202B_202A_206F_206F_202E(PlayerNavStateBuilder P_0, int? P_1) { return P_0.Build(P_1); } static ushort _206D_206D_206C_200C_206D_202C_206E_202C_206B_202D_206B_206A_200F_206B_200D_206A_200D_206C_206D_202E_200F_202C_206B_206F_206C_206B_206B_200F_200B_202E_206E_206F_200C_202A_200F_206A_202C_206E_206C_202C_202E(QuestStep P_0) { return P_0.TerritoryId; } static RouteResult _206C_200D_206E_200F_200D_200B_202A_202C_206B_206D_206E_206C_202A_206F_206B_206B_206B_202D_202B_200F_206C_206D_200F_206F_200B_202C_206A_202A_202E_202E_202D_206B_200E_206A_202B_206E_202E_206F_200C_206A_202E(NavRouter P_0, PlayerNavState P_1, uint P_2, Vector3 P_3, IReadOnlySet P_4) { return P_0.FindRoute(P_1, P_2, P_3, P_4); } static IReadOnlyList _206F_206B_200F_202A_202E_200F_200B_200B_200B_200E_200D_206A_202A_206D_200D_200E_206F_202E_202A_206C_206B_200C_206E_202E_202C_202A_206E_200E_202E_206F_206D_206C_200D_202B_206E_202E_202E_200C_202A_202E_202E(RouteResult P_0) { return P_0.Segments; } static void _200C_202B_200D_200E_206A_200E_200D_206B_206C_202B_206C_202D_202D_206A_206B_206D_200B_206D_202B_202D_206F_206C_200B_202E_200B_200F_200B_202B_206E_202C_206A_200D_200E_202B_206E_200D_206B_202E_206B_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static bool _206D_202C_202E_200D_202A_200D_200B_200F_206C_200B_206F_206B_206F_206F_200D_200E_206B_206A_206C_200F_200C_200F_206A_200D_206D_206B_206A_202B_200B_200F_202E_200D_202C_206C_206E_206B_206D_202A_200B_202E_202E(QuestStep P_0) { return P_0.DisableNavmesh; } static IReadOnlyList _202C_206C_206A_202C_206B_206D_206B_206F_202A_202E_206E_206F_202A_206B_206C_206F_200B_206B_202B_202E_202C_200E_202A_200B_206D_200F_206F_202E_202B_200F_206F_202E_200B_202B_202A_202D_206D_206D_202B_202C_202E(RouteInstructionBuilder P_0, RouteResult P_1, uint P_2, bool P_3) { return P_0.Build(P_1, P_2, P_3); } static bool _202D_200C_202E_202D_200B_206A_206E_206E_200C_200B_200F_200F_206F_206C_200C_206C_206D_200B_206B_200E_200D_206D_202A_206E_202E_200F_206C_206F_206F_202C_200B_206F_202E_200C_202C_202B_202B_200D_206F_202D_202E(IEnumerator P_0) { return P_0.MoveNext(); } static void _200E_202A_206A_200C_206E_206C_206B_206B_206D_206E_206B_202C_206D_206A_202B_202B_200C_202B_202E_202C_202D_200B_200D_202C_206B_202B_206F_202B_200F_200F_202B_202D_200C_206E_200F_206C_200F_206A_206F_206D_202E(IDisposable P_0) { P_0.Dispose(); } static NotSupportedException _206C_206C_200B_202D_206A_200B_200C_206D_202D_206E_202A_202B_206A_206B_200D_202E_202D_200C_200C_200C_200D_206E_202E_202A_206A_200C_202B_202C_206E_206E_200B_200C_200D_206F_202C_200C_206E_206B_206F_206C_202E() { return new NotSupportedException(); } } public bool HandledRouting { get; private set; } [IteratorStateMachine(typeof(_003CCreateAllTasks_003Ed__13))] public IEnumerable CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new _003CCreateAllTasks_003Ed__13(-2) { _003C_003E4__this = this, _003C_003E3__step = step }; } IEnumerable ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) { //ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks return this.CreateAllTasks(quest, sequence, step); } private Vector3? ResolveDestination(QuestStep step) { int num = ((!_200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(step).HasValue) ? (-1099591953) : (-1099591967)); Vector3 value2 = default(Vector3); EAetheryteLocation? eAetheryteLocation = default(EAetheryteLocation?); EAetheryteLocation valueOrDefault2 = default(EAetheryteLocation); bool flag = default(bool); Vector3 value = default(Vector3); while (true) { int num2 = num; int num3 = -1099591953; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: num = ((step == null) ? (-1099591954) : (-1099591955)); break; case 7: return value2; case 13: eAetheryteLocation = _202C_206D_200B_200C_202E_202B_206C_206F_206F_206E_202E_200F_206C_202D_202C_200D_200D_202B_206E_202A_200C_202D_202C_206A_206A_200E_206E_202B_206D_206D_202B_202E_206D_200F_202C_206D_206B_206E_200D_202E_202E(step); num = ((!eAetheryteLocation.HasValue) ? (-1099591964) : (-1099591963)); break; case 15: num = ((!_200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(aetheryteData).TryGetValue(valueOrDefault2, out value2)) ? (-1099591957) : (-1099591960)); break; case 5: num = ((!flag) ? (-1099591957) : (-1099591968)); break; case 2: { EInteractionType eInteractionType = _200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(step); num = (((uint)(eInteractionType - 4) > 1u) ? (-1099591954) : (-1099591962)); break; } case 12: num = ((_200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(step) != EInteractionType.AttuneAethernetShard) ? (-1099591964) : (-1099591966)); break; case 4: num = ((step == null) ? (-1099591964) : (-1099591965)); break; case 3: num = -1099591967; break; case 11: return null; case 6: return value; case 9: eAetheryteLocation = _206D_202A_200F_206A_200E_206D_206D_202D_202D_206D_200E_202D_202D_200F_202E_202E_206F_206E_200E_200F_206A_200B_200E_202A_202C_206F_206C_206B_206D_202A_200B_200F_206D_200D_206B_202B_200D_202E_206F_200E_202E(step); num = ((!eAetheryteLocation.HasValue) ? (-1099591954) : (-1099591961)); break; case 1: flag = false; num = -1099591958; break; case 8: valueOrDefault2 = eAetheryteLocation.GetValueOrDefault(); flag = true; num = -1099591958; break; case 10: { EAetheryteLocation valueOrDefault = eAetheryteLocation.GetValueOrDefault(); num = ((!_200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(aetheryteData).TryGetValue(valueOrDefault, out value)) ? (-1099591964) : (-1099591959)); break; } case 14: return _200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(step); } } } static Vector3? _200C_200E_202E_206A_206E_202E_202E_200D_200D_206D_200C_200C_200B_200C_200E_200F_200C_206A_206F_202B_202A_206A_202E_200D_200D_200B_200E_200C_206B_200B_202B_202B_202A_206B_200F_206D_206A_200B_200F_202B_202E(QuestStep P_0) { return P_0.Position; } static EInteractionType _200C_202C_206A_202D_206E_200D_206D_202D_206F_202E_200B_202E_206A_202D_200F_206F_200E_206E_202D_206B_202D_200E_200D_206F_202D_206B_202C_206F_200E_206C_206E_200F_202C_206A_206C_206E_206D_206E_206F_206D_202E(QuestStep P_0) { return P_0.InteractionType; } static EAetheryteLocation? _206D_202A_200F_206A_200E_206D_206D_202D_202D_206D_200E_202D_202D_200F_202E_202E_206F_206E_200E_200F_206A_200B_200E_202A_202C_206F_206C_206B_206D_202A_200B_200F_206D_200D_206B_202B_200D_202E_206F_200E_202E(QuestStep P_0) { return P_0.Aetheryte; } static ReadOnlyDictionary _200D_200B_206D_206B_200B_200E_206C_202B_200D_200C_200C_202A_206F_206C_206E_206B_202A_206D_202B_206D_206D_202E_206B_200B_200F_202A_200C_206E_200B_202A_206B_200C_200E_200F_202D_200F_206A_206B_202C_200F_202E(AetheryteData P_0) { return P_0.Locations; } static EAetheryteLocation? _202C_206D_200B_200C_202E_202B_206C_206F_206F_206E_202E_200F_206C_202D_202C_200D_200D_202B_206E_202A_200C_202D_202C_206A_206A_200E_206E_202B_206D_206D_202B_202E_206D_200F_202C_206D_206B_206E_200D_202E_202E(QuestStep P_0) { return P_0.AethernetShard; } } }