using System; using System.Collections; using System.Collections.Generic; using System.Numerics; using System.Runtime.CompilerServices; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using Microsoft.Extensions.Logging; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Movement; internal sealed class MoveToObjectExecutor(MovementController movementController, GameFunctions gameFunctions, IClientState clientState, IObjectTable objectTable, ILogger logger) : TaskExecutor() { private long? _startedLookingAt; private Vector3 _destination; private bool _moving; [MethodImpl(MethodImplOptions.NoInlining)] protected override bool Start() { int num = (_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).HasValue ? 29975280 : 29975286); while (true) { int num2 = num; int num3 = 29975282; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 2: num = ((_206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(clientState) == _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(base.Task.Step)) ? 29975281 : 29975283); break; case 3: _startedLookingAt = _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E(); return TryStartMovement(); case 0: num = 29975286; break; case 1: _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, 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(969274381), Array.Empty()); return true; case 4: _206E_202E_200C_200E_206C_202E_206E_200C_206D_206C_206D_202D_202A_200F_200F_206B_206F_206B_200C_200B_200B_200E_202C_202B_206C_200F_202B_200D_200E_206A_202B_200D_206C_206C_206B_202B_202D_206F_206F_206B_202E((ILogger)logger, 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(-833964926), Array.Empty()); return false; } } } private IGameObject? FindDistantObjectByDataId(uint dataId) { IPlayerCharacter playerCharacter = _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(objectTable); int num = ((playerCharacter != null) ? 1134612284 : 1134612287); ObjectKind objectKind = default(ObjectKind); bool flag = default(bool); IGameObject current = default(IGameObject); float num8 = default(float); while (true) { int num2 = num; int num3 = 1134612286; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_0056; case 1: return null; case 2: { float num5 = _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step); IGameObject result = null; float num6 = float.MaxValue; IEnumerator enumerator = objectTable.GetEnumerator(); try { num = -1624913686; while (true) { int num7 = num; num3 = -1624913683; num4 = num7; switch ((num4 | num3) - (num4 & num3)) { case 12: num = ((objectKind != ObjectKind.HousingEventObject) ? (-1624913692) : (-1624913681)); break; case 2: flag = true; num = -1624913690; break; case 3: num = ((objectKind - 8 <= ObjectKind.BattleNpc) ? (-1624913681) : (-1624913695)); break; case 6: result = current; num6 = num8; num = -1624913686; break; case 10: num = ((!(num8 < num6)) ? (-1624913686) : (-1624913685)); break; case 5: num8 = Vector3.Distance(_206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E((IGameObject)playerCharacter), _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(current)); num = ((num8 <= num5) ? (-1624913686) : (-1624913689)); break; case 9: flag = false; num = -1624913690; break; case 1: num = ((_202E_206F_200F_206E_200D_200E_202A_202E_200C_202C_206C_200C_202C_206B_206C_200D_202E_200E_202C_206B_206A_202A_200C_206D_202A_200F_202A_206C_200F_202A_202D_200B_202B_202A_202A_206D_202B_200F_206F_200C_202E(current) != dataId) ? (-1624913686) : (-1624913688)); break; case 0: num = -1624913686; break; case 4: current = enumerator.Current; objectKind = _200F_206E_200F_206C_206A_200D_202C_200C_200E_200E_206A_206E_202E_200D_202A_202D_202C_206C_206D_202D_200D_200E_200D_206D_200E_206F_206C_200D_202C_206E_202B_200D_202E_206E_200E_200B_202D_206B_202E(current); num = ((objectKind == ObjectKind.Pc) ? (-1624913681) : (-1624913682)); break; case 11: num = (flag ? (-1624913686) : (-1624913684)); break; case 7: num = (_206B_206F_200D_202E_206E_206D_206C_200B_206A_206A_206F_202A_202D_200B_202D_202B_200E_202A_200E_202C_206A_202D_200C_200E_202D_206F_200E_206E_206D_202E_202B_200E_202D_206E_206A_202A_206A_200E_206C_202E((IEnumerator)enumerator) ? (-1624913687) : (-1624913691)); break; case 8: return result; } } } finally { num = ((enumerator == null) ? 2066825075 : 2066825072); while (true) { int num9 = num; num3 = 2066825073; num4 = num9; int num10 = num4 + num3; int num11 = num4 & num3; switch (num10 - (num11 + num11)) { case 0: num = 2066825072; break; case 2: goto end_IL_027b; case 1: _206E_202D_206F_200D_202E_206E_200B_202C_200C_206B_206B_200E_202B_206B_202E_202C_200D_200B_202D_200F_206E_206F_200C_202A_206E_202E_200B_206C_200C_202B_206B_206F_206D_206F_200D_206D_200E_202A_206A_202B_202E((IDisposable)enumerator); num = 2066825075; break; } continue; end_IL_027b: break; } } } } continue; IL_0056: num = 1134612287; } } [MethodImpl(MethodImplOptions.NoInlining)] private bool TryStartMovement() { IGameObject gameObject = FindDistantObjectByDataId(_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).Value); int num = ((gameObject != null) ? 1351000987 : 1351000991); IPlayerCharacter playerCharacter = default(IPlayerCharacter); float num7 = default(float); while (true) { int num2 = num; int num3 = 1351000990; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 3: num = 1351000991; break; case 2: playerCharacter = _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(objectTable); num7 = _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step); num = ((playerCharacter == null) ? 1351000987 : 1351000984); break; case 1: gameObject = gameFunctions.FindObjectByDataId(_202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step).Value, null, warnIfMissing: false); num = ((gameObject != null) ? 1351000988 : 1351000986); break; case 4: _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, 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(-1977444893), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); return true; case 5: _destination = _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(gameObject); _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-581508250), new object[2] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step), _destination }); movementController.NavigateTo(EMovementType.Quest, _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step), _destination, fly: false, _206E_200D_202B_202C_202E_202A_206C_206C_206C_206B_202A_202C_206C_202D_200C_206B_202A_200D_200F_202C_206D_202D_206F_200C_206B_200F_200E_206A_202C_206C_202E_200B_206F_200F_202E_202A_206A_202B_202E_206A_202E(base.Task.Step) ?? true, _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(base.Task.Step)); _moving = true; return true; case 0: _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)logger, 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(-604742017), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); return true; case 6: num = ((!(Vector3.Distance(_206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E((IGameObject)playerCharacter), _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(gameObject)) <= num7)) ? 1351000987 : 1351000990); break; } } } [MethodImpl(MethodImplOptions.NoInlining)] public override ETaskResult Update() { int num = ((_206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(clientState) == _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(base.Task.Step)) ? (-1023711134) : (-1023711130)); long? startedLookingAt = default(long?); while (true) { int num2 = num; int num3 = -1023711125; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 12: startedLookingAt = _startedLookingAt; num = ((!startedLookingAt.HasValue) ? (-1023711132) : (-1023711133)); break; case 14: return ETaskResult.TaskComplete; case 9: num = (_moving ? (-1023711128) : (-1023711129)); break; case 15: num = (TryStartMovement() ? (-1023711121) : (-1023711131)); break; case 8: { long valueOrDefault = startedLookingAt.GetValueOrDefault(); long num5 = _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E(); long num6 = 3000L; long num7 = valueOrDefault; num = ((num5 <= (num7 | num6) + (num7 & num6)) ? (-1023711132) : (-1023711127)); break; } case 4: num = (_moving ? (-1023711128) : (-1023711135)); break; case 2: _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E((ILogger)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(1582144125), new object[1] { _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(base.Task.Step) }); return ETaskResult.TaskComplete; case 5: num = (movementController.HasBeenMovingForAtLeast(2000) ? (-1023711123) : (-1023711124)); break; case 0: num = -1023711130; break; case 1: num = ((!movementController.IsPathRunning) ? (-1023711122) : (-1023711136)); break; case 3: num = (movementController.IsPathfinding ? (-1023711136) : (-1023711126)); break; case 7: return ETaskResult.StillRunning; case 13: return ETaskResult.StillRunning; case 6: return ETaskResult.TaskComplete; case 10: return ETaskResult.StillRunning; case 11: return ETaskResult.StillRunning; } } } public override bool ShouldInterruptOnDamage() { return false; } static uint? _202A_202B_202A_200D_200E_206A_206D_202A_200C_202A_200F_202C_202C_200B_200D_202C_202C_202B_200B_200E_202B_206F_202A_200B_206B_206D_206E_206B_206E_200E_206D_206D_202D_202B_206B_200E_200C_200D_206F_206B_202E(QuestStep P_0) { return P_0.DataId; } static void _206E_202E_200C_200E_206C_202E_206E_200C_206D_206C_206D_202D_202A_200F_200F_206B_206F_206B_200C_200B_200B_200E_202C_202B_206C_200F_202B_200D_200E_206A_202B_200D_206C_206C_206B_202B_202D_206F_206F_206B_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogWarning(P_1, P_2); } static uint _206B_206E_200B_200D_206A_202D_206B_200C_200E_200F_200D_200C_202B_206A_200C_202B_202B_200F_200E_200C_200B_206A_202C_202A_200D_202E_200C_200C_206F_206D_202B_206F_200B_200F_206F_200B_200D_206A_206C_206C_202E(IClientState P_0) { return P_0.TerritoryType; } static ushort _206B_206F_202D_200C_202B_202A_206B_200F_206B_206E_206C_206E_206A_202D_202A_200C_206B_202B_206D_202B_206C_200C_200F_206D_200B_202E_202C_206B_206E_206C_200C_206C_200E_202A_206F_206D_206B_206C_200B_202C_202E(QuestStep P_0) { return P_0.TerritoryId; } static void _202E_200E_202D_206F_200C_200D_202A_200B_200C_200F_206B_206C_200B_206D_200C_200E_202C_206B_206D_206D_202C_206F_206A_206C_202B_200E_206B_200F_206A_202D_206F_200B_202E_200C_200C_202C_202E_206D_206A_206B_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static long _202C_200B_200E_200D_202C_206D_200D_200E_206E_200B_200E_206C_206B_206A_202D_200D_202D_200E_206F_200F_200D_200C_200B_200F_206C_200C_202C_202D_200D_206F_206E_206A_206B_202B_202E_202C_200E_200D_202B_200E_202E() { return Environment.TickCount64; } static IPlayerCharacter _202C_200D_206A_206B_200C_206A_202A_200B_206E_206C_206B_206C_200F_206C_202C_206E_200C_206A_206B_202C_206F_206C_202A_206A_200F_206B_202B_206E_206F_206F_200B_202C_202E_206F_206E_200D_206F_200D_202A_200D_202E(IObjectTable P_0) { return P_0.LocalPlayer; } static float _200D_206F_206E_202C_200D_206D_206B_206F_206F_200C_200C_202B_206F_200C_200C_200E_206C_202D_200C_206A_206C_202E_200C_200D_206A_206B_202D_200F_206A_206A_206D_202A_200E_202E_202C_206D_202C_200D_206E_202E(QuestStep P_0) { return P_0.CalculateActualStopDistance(); } static ObjectKind _200F_206E_200F_206C_206A_200D_202C_200C_200E_200E_206A_206E_202E_200D_202A_202D_202C_206C_206D_202D_200D_200E_200D_206D_200E_206F_206C_200D_202C_206E_202B_200D_202E_206E_200E_200B_202D_206B_202E(IGameObject P_0) { return P_0.ObjectKind; } static uint _202E_206F_200F_206E_200D_200E_202A_202E_200C_202C_206C_200C_202C_206B_206C_200D_202E_200E_202C_206B_206A_202A_200C_206D_202A_200F_202A_206C_200F_202A_202D_200B_202B_202A_202A_206D_202B_200F_206F_200C_202E(IGameObject P_0) { return P_0.BaseId; } static Vector3 _206F_200E_206A_200E_206C_200C_206C_202D_206A_206D_202C_206C_200B_202E_202E_206D_200E_206D_200F_200D_200D_206A_202B_200F_206C_206E_206B_206D_206D_206D_202A_200E_206C_200D_200F_202E_202A_200D_206F_200C_202E(IGameObject P_0) { return P_0.Position; } static bool _206B_206F_200D_202E_206E_206D_206C_200B_206A_206A_206F_202A_202D_200B_202D_202B_200E_202A_200E_202C_206A_202D_200C_200E_202D_206F_200E_206E_206D_202E_202B_200E_202D_206E_206A_202A_206A_200E_206C_202E(IEnumerator P_0) { return P_0.MoveNext(); } static void _206E_202D_206F_200D_202E_206E_200B_202C_200C_206B_206B_200E_202B_206B_202E_202C_200D_200B_202D_200F_206E_206F_200C_202A_206E_202E_200B_206C_200C_202B_206B_206F_206D_206F_200D_206D_200E_202A_206A_202B_202E(IDisposable P_0) { P_0.Dispose(); } static bool? _206E_200D_202B_202C_202E_202A_206C_206C_206C_206B_202A_202C_206C_202D_200C_206B_202A_200D_200F_202C_206D_202D_206F_200C_206B_200F_200E_206A_202C_206C_202E_200B_206F_200F_202E_202A_206A_202B_202E_206A_202E(QuestStep P_0) { return P_0.Sprint; } }