217 lines
6.8 KiB
C#
217 lines
6.8 KiB
C#
using System;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using Dalamud.Game.ClientState.Objects.SubKinds;
|
|
using Dalamud.Game.ClientState.Objects.Types;
|
|
using Dalamud.Plugin.Services;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Controller.Steps.Shared;
|
|
|
|
internal sealed class ExtraConditionUtils
|
|
{
|
|
private readonly IClientState _clientState;
|
|
|
|
private readonly IObjectTable _objectTable;
|
|
|
|
public ExtraConditionUtils(IClientState clientState, IObjectTable objectTable)
|
|
{
|
|
_clientState = clientState;
|
|
_objectTable = objectTable;
|
|
}
|
|
|
|
public bool MatchesExtraCondition(EExtraSkipCondition skipCondition)
|
|
{
|
|
IPlayerCharacter playerCharacter = _206A_202B_202C_200B_200B_200E_206C_200B_206C_206C_206F_206F_200B_202D_206A_206E_206B_202B_206B_202C_206B_202E_206F_202D_200F_206C_202A_202C_206B_206D_200B_202E_206F_206F_200F_206C_206E_200D_206A_206D_202E(_objectTable);
|
|
Vector3? vector = ((playerCharacter != null) ? new Vector3?(_206B_202E_202E_206A_200D_200B_202D_200F_206E_206B_206C_200C_206B_206A_206B_200D_202A_202B_202B_202C_200C_200B_200C_200C_206E_202D_202E_202A_206A_200D_202A_206F_206E_200D_202E_206B_202E_200B_202D_202E_202E((IGameObject)playerCharacter)) : ((Vector3?)null));
|
|
int num = ((!vector.HasValue) ? 1142844286 : 1142844285);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1142844284;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
num = 1142844285;
|
|
break;
|
|
case 3:
|
|
return MatchesExtraCondition(skipCondition, vector.Value, _202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(_clientState));
|
|
case 2:
|
|
return false;
|
|
case 1:
|
|
num = ((_202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(_clientState) == 0) ? 1142844286 : 1142844287);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public static bool MatchesExtraCondition(EExtraSkipCondition skipCondition, Vector3 position, uint territoryType)
|
|
{
|
|
int num;
|
|
bool result = default(bool);
|
|
switch (skipCondition)
|
|
{
|
|
default:
|
|
num = 1143569671;
|
|
goto IL_002b;
|
|
case EExtraSkipCondition.DockStorehouse:
|
|
num = ((territoryType != 137) ? 1143569672 : 1143569666);
|
|
goto IL_002b;
|
|
case EExtraSkipCondition.WakingSandsMainArea:
|
|
goto IL_00cc;
|
|
case EExtraSkipCondition.NotRoguesGuild:
|
|
goto IL_0115;
|
|
case EExtraSkipCondition.RoguesGuild:
|
|
goto IL_0209;
|
|
case EExtraSkipCondition.RisingStonesSolar:
|
|
goto IL_022c;
|
|
case EExtraSkipCondition.WakingSandsSolar:
|
|
goto IL_024d;
|
|
IL_002b:
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1143569666;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
int num12;
|
|
int num11;
|
|
int num10;
|
|
int num8;
|
|
int num9;
|
|
int num7;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 16:
|
|
num12 = 0;
|
|
goto IL_009f;
|
|
case 18:
|
|
goto end_IL_002b;
|
|
case 19:
|
|
goto IL_00cc;
|
|
case 5:
|
|
num = 1143569683;
|
|
break;
|
|
case 12:
|
|
num12 = ((position.Y > -115f) ? 1 : 0);
|
|
goto IL_009f;
|
|
case 1:
|
|
goto IL_0115;
|
|
case 17:
|
|
throw _206B_200F_200F_200D_200F_202A_206D_200D_200D_202D_206C_206A_206E_206C_206E_202E_202B_206C_206C_200D_202C_200B_200C_202C_206A_200F_206D_206B_206C_202D_206F_202E_206F_202C_200B_206E_206A_200D_206B_206A_202E(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>(-226080792), (object)skipCondition, (string)null);
|
|
case 0:
|
|
num11 = ((position.Y <= -20f) ? 1 : 0);
|
|
goto IL_018e;
|
|
case 7:
|
|
num10 = ((position.Z <= -28f) ? 1 : 0);
|
|
goto IL_01c5;
|
|
case 10:
|
|
num11 = 0;
|
|
goto IL_018e;
|
|
case 4:
|
|
num8 = ((position.X < 24f) ? 1 : 0);
|
|
goto IL_026f;
|
|
case 14:
|
|
num9 = 0;
|
|
goto IL_01b8;
|
|
case 13:
|
|
num10 = 0;
|
|
goto IL_01c5;
|
|
case 11:
|
|
num7 = 0;
|
|
goto IL_01d2;
|
|
case 20:
|
|
num = 1143569671;
|
|
break;
|
|
case 6:
|
|
num9 = ((position.X >= 24f) ? 1 : 0);
|
|
goto IL_01b8;
|
|
case 9:
|
|
goto IL_0209;
|
|
case 3:
|
|
return result;
|
|
case 15:
|
|
goto IL_022c;
|
|
case 8:
|
|
goto IL_024d;
|
|
case 2:
|
|
num8 = 0;
|
|
goto IL_026f;
|
|
case 21:
|
|
{
|
|
num7 = ((position.Y <= -115f) ? 1 : 0);
|
|
goto IL_01d2;
|
|
}
|
|
IL_01d2:
|
|
result = (byte)num7 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
IL_01b8:
|
|
result = (byte)num9 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
IL_026f:
|
|
result = (byte)num8 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
IL_01c5:
|
|
result = (byte)num10 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
IL_018e:
|
|
result = (byte)num11 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
IL_009f:
|
|
result = (byte)num12 != 0;
|
|
num = 1143569665;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_002b:
|
|
break;
|
|
}
|
|
goto case EExtraSkipCondition.DockStorehouse;
|
|
IL_024d:
|
|
num = ((territoryType != 212) ? 1143569676 : 1143569668);
|
|
goto IL_002b;
|
|
IL_0209:
|
|
num = ((territoryType != 129) ? 1143569673 : 1143569687);
|
|
goto IL_002b;
|
|
IL_0115:
|
|
num = ((territoryType != 129) ? 1143569682 : 1143569678);
|
|
goto IL_002b;
|
|
IL_022c:
|
|
num = ((territoryType != 351) ? 1143569679 : 1143569669);
|
|
goto IL_002b;
|
|
IL_00cc:
|
|
num = ((territoryType != 212) ? 1143569664 : 1143569670);
|
|
goto IL_002b;
|
|
}
|
|
}
|
|
|
|
static IPlayerCharacter _206A_202B_202C_200B_200B_200E_206C_200B_206C_206C_206F_206F_200B_202D_206A_206E_206B_202B_206B_202C_206B_202E_206F_202D_200F_206C_202A_202C_206B_206D_200B_202E_206F_206F_200F_206C_206E_200D_206A_206D_202E(IObjectTable P_0)
|
|
{
|
|
return P_0.LocalPlayer;
|
|
}
|
|
|
|
static Vector3 _206B_202E_202E_206A_200D_200B_202D_200F_206E_206B_206C_200C_206B_206A_206B_200D_202A_202B_202B_202C_200C_200B_200C_200C_206E_202D_202E_202A_206A_200D_202A_206F_206E_200D_202E_206B_202E_200B_202D_202E_202E(IGameObject P_0)
|
|
{
|
|
return P_0.Position;
|
|
}
|
|
|
|
static uint _202B_206D_206D_200E_206E_200C_206D_206B_206D_202D_206E_200F_200C_206D_202C_200B_206A_200D_202A_206C_202B_200D_206B_202D_206E_202A_200D_200C_202A_206B_202B_200B_200C_206C_206D_202A_202C_200F_206C_206F_202E(IClientState P_0)
|
|
{
|
|
return P_0.TerritoryType;
|
|
}
|
|
|
|
static ArgumentOutOfRangeException _206B_200F_200F_200D_200F_202A_206D_200D_200D_202D_206C_206A_206E_206C_206E_202E_202B_206C_206C_200D_202C_200B_200C_202C_206A_200F_206D_206B_206C_202D_206F_202E_206F_202C_200B_206E_206A_200D_206B_206A_202E(string P_0, object P_1, string P_2)
|
|
{
|
|
return new ArgumentOutOfRangeException(P_0, P_1, P_2);
|
|
}
|
|
}
|