forked from aly/qstbak
227 lines
7.3 KiB
C#
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);
|
|
}
|
|
}
|