using System; using System.Runtime.CompilerServices; using FFXIVClientStructs.FFXIV.Client.Game; namespace Questionable.Controller.Steps; internal sealed class InteractionProgressContext { private bool _firstUpdateDone; public bool CheckSequence { get; private set; } public int CurrentSequence { get; private set; } private InteractionProgressContext(bool checkSequence, int currentSequence) { CheckSequence = checkSequence; CurrentSequence = currentSequence; } public unsafe static InteractionProgressContext Create(bool checkSequence) { int num = (checkSequence ? (-177703781) : (-177703782)); while (true) { int num2 = num; int num3 = -177703781; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: num = -177703782; break; case 1: ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal; num = -177703781; break; case 0: return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence); } } } private unsafe static (bool, InteractionProgressContext?) FromActionUseInternal(Func func) { int lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence; int num = (func() ? 1923074249 : 1923074254); while (true) { int num2 = num; int num3 = 1923074253; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 4: { int lastUsedActionSequence2 = ActionManager.Instance()->LastUsedActionSequence; num = ((lastUsedActionSequence != lastUsedActionSequence2) ? 1923074253 : 1923074252); break; } case 3: return (false, null); case 1: return (true, null); case 2: num = 1923074254; break; case 0: return (true, Create(checkSequence: true)); } } } public static InteractionProgressContext? FromActionUse(Func func) { return FromActionUseInternal(func).Item2; } public static InteractionProgressContext? FromActionUseOrDefault(Func func) { (bool, InteractionProgressContext) tuple = FromActionUseInternal(func); int num = (tuple.Item1 ? 1006213129 : 1006213130); while (true) { int num2 = num; int num3 = 1006213128; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_004d; case 2: return null; case 1: return tuple.Item2 ?? Create(checkSequence: false); } continue; IL_004d: num = 1006213130; } } public unsafe void Update() { int num = (_firstUpdateDone ? 862506309 : 862506305); int lastUsedActionSequence = default(int); while (true) { int num2 = num; int num3 = 862506308; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 3: num = ((lastUsedActionSequence <= CurrentSequence) ? 862506308 : 862506304); break; case 1: return; case 2: num = 862506305; break; case 5: lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence; num = (CheckSequence ? 862506308 : 862506311); break; case 0: _firstUpdateDone = true; num = 862506309; break; case 4: CheckSequence = true; CurrentSequence = lastUsedActionSequence; num = 862506308; break; } } } public unsafe bool WasSuccessful() { int num = ((!CheckSequence) ? (-1110443467) : (-1110443470)); while (true) { int num2 = num; int num3 = -1110443469; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 6: num = ((!(ActionManager.Instance()->CastTimeElapsed > 0f)) ? (-1110443465) : (-1110443472)); break; case 4: return false; case 5: num = -1110443470; break; case 0: num = ((CurrentSequence == ActionManager.Instance()->LastHandledActionSequence) ? (-1110443467) : (-1110443471)); break; case 2: return false; case 1: num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-1110443471) : (-1110443469)); break; case 3: return _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f; } } } public unsafe bool WasInterrupted() { int num = ((!CheckSequence) ? (-139740651) : (-139740650)); while (true) { int num2 = num; int num3 = -139740649; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 5: num = -139740650; break; case 4: num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-139740651) : (-139740649)); break; case 3: return false; case 0: return false; case 2: num = ((ActionManager.Instance()->CastTimeElapsed != 0f) ? (-139740652) : (-139740655)); break; case 6: return ActionManager.Instance()->CastTimeTotal > 0f; case 1: num = ((CurrentSequence != ActionManager.Instance()->LastHandledActionSequence) ? (-139740651) : (-139740653)); break; } } } [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3); defaultInterpolatedStringHandler.AppendLiteral(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(-1617315869)); defaultInterpolatedStringHandler.AppendFormatted(CheckSequence ? ((object)CurrentSequence) : 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(792471175)); defaultInterpolatedStringHandler.AppendLiteral(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(-1687715325)); defaultInterpolatedStringHandler.AppendFormatted(WasSuccessful()); defaultInterpolatedStringHandler.AppendLiteral(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(1403263077)); defaultInterpolatedStringHandler.AppendFormatted(WasInterrupted()); defaultInterpolatedStringHandler.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(424561659)); return defaultInterpolatedStringHandler.ToStringAndClear(); } static float _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(float P_0) { return Math.Abs(P_0); } }