using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; namespace LLib.Gear; public static class ExtractActions { public const uint ExtractionUnlockQuestId = 66174u; public unsafe static bool TryOpenExtractionWindow() { ActionManager* ptr = ActionManager.Instance(); int num = ((ptr != null) ? 1517753475 : 1517753472); while (true) { int num2 = num; int num3 = 1517753473; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: goto IL_004b; case 2: return ptr->UseAction(ActionType.GeneralAction, 14u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null); case 1: return false; } continue; IL_004b: num = 1517753472; } } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsExtractionAddonReady(IGameGui gameGui) { AtkUnitBase* addonPtr; return gameGui.TryGetReadyAddon(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(1975097749), out addonPtr); } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryExtractFirst(IGameGui gameGui) { AtkUnitBase* addonPtr; int num = (gameGui.TryGetReadyAddon(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E(-1577561758), out addonPtr) ? 1656734997 : 1656734996); while (true) { int num2 = num; int num3 = 1656734997; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: AddonCallback.FireWithUpdate(addonPtr, 2, 0); return true; case 1: return false; case 2: goto IL_0068; } continue; IL_0068: num = 1656734996; } } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool IsConfirmDialogReady(IGameGui gameGui) { AtkUnitBase* addonPtr; return gameGui.TryGetReadyAddon(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E(1781947130), out addonPtr); } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryConfirmExtraction(IGameGui gameGui) { AtkUnitBase* addonPtr; int num = (gameGui.TryGetReadyAddon(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E(839489786), out addonPtr) ? (-1818884272) : (-1818884269)); while (true) { int num2 = num; int num3 = -1818884271; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_0052; case 2: return false; case 1: AddonCallback.Fire(addonPtr, default(int)); return true; } continue; IL_0052: num = -1818884269; } } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TrySwitchCategory(IGameGui gameGui, int category) { AtkUnitBase* addonPtr; int num = (gameGui.TryGetReadyAddon(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(1975097749), out addonPtr) ? (-1576577779) : (-1576577778)); while (true) { int num2 = num; int num3 = -1576577780; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 1: AddonCallback.Fire(addonPtr, 1, category); return true; case 2: return false; case 0: goto IL_006a; } continue; IL_006a: num = -1576577778; } } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe static bool TryCloseExtractionWindow(IGameGui gameGui) { AtkUnitBase* addonPtr; int num = (gameGui.TryGetReadyAddon(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E(1686317250), out addonPtr) ? 930280316 : 930280319); while (true) { int num2 = num; int num3 = 930280317; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_0052; case 2: return false; case 1: AddonCallback.Fire(addonPtr, -1); return true; } continue; IL_0052: num = 930280319; } } public static bool IsExtractionUnlocked() { return GearFeatures.IsExtractionUnlocked(); } }