1
0
Fork 0
forked from aly/qstbak
qstbak/Questionable/Questionable.Controller.Steps/InteractionProgressContext.cs
2026-08-17 20:27:25 +10:00

227 lines
7.3 KiB
C#

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<bool> 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<bool> func)
{
return FromActionUseInternal(func).Item2;
}
public static InteractionProgressContext? FromActionUseOrDefault(Func<bool> 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<string>(-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<string>(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<string>(-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<string>(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<string>(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);
}
}