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(-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); } }