1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -0,0 +1,661 @@
using System.Runtime.CompilerServices;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using FFXIVClientStructs.FFXIV.Component.GUI;
using LLib.GameUI;
using Lumina.Excel.Sheets;
namespace LLib.Gear;
public static class MeldActions
{
public const uint MeldUnlockQuestId = 66175u;
public const uint OvermeldUnlockQuestId = 66176u;
public unsafe static bool TryOpenMeldAgent()
{
ActionManager* ptr = ActionManager.Instance();
int num = ((ptr != null) ? (-92377207) : (-92377206));
while (true)
{
int num2 = num;
int num3 = -92377205;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0049;
case 2:
return ptr->UseAction(ActionType.GeneralAction, 13u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null);
case 1:
return false;
}
continue;
IL_0049:
num = -92377206;
}
}
public unsafe static bool IsMeldAgentReady()
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? 1012581320 : 1012581323);
while (true)
{
int num2 = num;
int num3 = 1012581322;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0050;
case 2:
return false;
case 1:
return agentByInternalId->IsAgentActive();
}
continue;
IL_0050:
num = 1012581323;
}
}
public unsafe static void CloseMeldAgent()
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? 1172237178 : 1172237177);
while (true)
{
int num2 = num;
int num3 = 1172237179;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return;
case 2:
agentByInternalId->Hide();
num = 1172237178;
break;
case 0:
num = 1172237177;
break;
}
}
}
public unsafe static bool TrySelectItemCategory(int category)
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? 1631304881 : 1631304883);
while (true)
{
int num2 = num;
int num3 = 1631304882;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
return false;
case 2:
AgentHelper.SendEvent(agentByInternalId, 0uL, 0, category);
return true;
case 0:
num = 1631304883;
break;
case 1:
num = (agentByInternalId->IsAgentActive() ? 1631304880 : 1631304881);
break;
}
}
}
public unsafe static bool TrySelectItem(int itemIndex)
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? (-2072200034) : (-2072200035));
while (true)
{
int num2 = num;
int num3 = -2072200036;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -2072200035;
break;
case 2:
return false;
case 1:
num = (agentByInternalId->IsAgentActive() ? (-2072200033) : (-2072200034));
break;
case 3:
AgentHelper.SendEvent(agentByInternalId, 0uL, 1, itemIndex, 1, 0);
return true;
}
}
}
public unsafe static bool TrySelectMateria(int materiaIndex)
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? 1070130699 : 1070130696);
while (true)
{
int num2 = num;
int num3 = 1070130698;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return false;
case 2:
num = (agentByInternalId->IsAgentActive() ? 1070130697 : 1070130699);
break;
case 3:
AgentHelper.SendEvent(agentByInternalId, 0uL, 2, materiaIndex, 1, 0);
return true;
case 0:
num = 1070130696;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static bool TryConfirmMeld(IGameGui gameGui)
{
AtkUnitBase* addonPtr;
int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(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<string>(627835042), out addonPtr) ? 1229741423 : 1229741420);
while (true)
{
int num2 = num;
int num3 = 1229741422;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0052;
case 2:
return false;
case 1:
AddonCallback.Fire(addonPtr, 0, 0, 1);
addonPtr->Close(fireCallback: true);
return true;
}
continue;
IL_0052:
num = 1229741420;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static bool TryConfirmOvermeld(IGameGui gameGui)
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? (-1324266092) : (-1324266093));
AtkUnitBase* addonPtr = default(AtkUnitBase*);
while (true)
{
int num2 = num;
int num3 = -1324266089;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
AddonCallback.ClickYes(addonPtr);
addonPtr->Close(fireCallback: true);
return true;
case 4:
num = (agentByInternalId->IsAgentActive() ? (-1324266090) : (-1324266092));
break;
case 2:
return false;
case 1:
num = (gameGui.TryGetReadyAddon<AtkUnitBase>(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<string>(184774238), out addonPtr) ? (-1324266089) : (-1324266091));
break;
case 5:
num = -1324266093;
break;
case 3:
return false;
}
}
}
public unsafe static bool TryRequestRetrieve()
{
AgentInterface* agentByInternalId = AgentModule.Instance()->GetAgentByInternalId(AgentId.MateriaAttach);
int num = ((agentByInternalId == null) ? (-1148814480) : (-1148814479));
while (true)
{
int num2 = num;
int num3 = -1148814480;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
return false;
case 1:
num = (agentByInternalId->IsAgentActive() ? (-1148814477) : (-1148814480));
break;
case 2:
num = -1148814479;
break;
case 3:
AgentHelper.SendEvent(agentByInternalId, 4uL, 0, 1, 0, 0, 0);
return true;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static bool TryConfirmRetrieve(IGameGui gameGui)
{
AtkUnitBase* addonPtr;
int num = (gameGui.TryGetReadyAddon<AtkUnitBase>(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<string>(-507581273), out addonPtr) ? (-1428512463) : (-1428512462));
while (true)
{
int num2 = num;
int num3 = -1428512461;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0052;
case 2:
AddonCallback.Fire(addonPtr, default(int));
addonPtr->Close(fireCallback: true);
return true;
case 1:
return false;
}
continue;
IL_0052:
num = -1428512462;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static bool IsMeldDialogReady(IGameGui gameGui)
{
AtkUnitBase* addonPtr;
return gameGui.TryGetReadyAddon<AtkUnitBase>(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<string>(2146370651), out addonPtr);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static bool IsRetrieveDialogReady(IGameGui gameGui)
{
AtkUnitBase* addonPtr;
return gameGui.TryGetReadyAddon<AtkUnitBase>(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<string>(1509768351), out addonPtr);
}
public unsafe static bool IsAgentLoading()
{
AgentMateriaAttach* ptr = AgentMateriaAttach.Instance();
int num = ((ptr == null) ? (-1447124743) : (-1447124742));
while (true)
{
int num2 = num;
int num3 = -1447124741;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return false;
case 1:
return ptr->UpdateState != 0;
case 0:
goto IL_0057;
}
continue;
IL_0057:
num = -1447124742;
}
}
public unsafe static int GetSelectedItemIndex()
{
AgentMateriaAttach* ptr = AgentMateriaAttach.Instance();
int num = ((ptr == null) ? (-10593117) : (-10593120));
while (true)
{
int num2 = num;
int num3 = -10593119;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return -1;
case 1:
return ptr->SelectedItemIndex;
case 0:
goto IL_0054;
}
continue;
IL_0054:
num = -10593120;
}
}
public static AgentMateriaAttach.FilterCategory GetFilterCategory(InventoryType inventoryType)
{
int num = ((inventoryType > InventoryType.EquippedItems) ? (-1327648937) : (-1327648944));
AgentMateriaAttach.FilterCategory result = default(AgentMateriaAttach.FilterCategory);
while (true)
{
int num2 = num;
int num3 = -1327648930;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 11:
result = AgentMateriaAttach.FilterCategory.Equipped;
num = -1327648933;
break;
case 4:
result = AgentMateriaAttach.FilterCategory.ArmouryWeapon;
num = -1327648933;
break;
case 10:
result = AgentMateriaAttach.FilterCategory.Inventory;
num = -1327648933;
break;
case 14:
num = ((inventoryType <= InventoryType.Inventory4) ? (-1327648940) : (-1327648931));
break;
case 9:
switch (inventoryType)
{
case InventoryType.ArmoryOffHand:
break;
default:
goto IL_00f8;
case InventoryType.ArmoryHead:
case InventoryType.ArmoryBody:
case InventoryType.ArmoryHands:
goto IL_010e;
case InventoryType.ArmoryWrist:
goto IL_011b;
case InventoryType.ArmoryLegs:
case InventoryType.ArmoryFeets:
goto IL_0128;
case InventoryType.ArmoryEar:
case InventoryType.ArmoryNeck:
goto IL_0135;
case InventoryType.ArmoryWaist:
goto IL_016e;
}
goto case 4;
case 15:
num = -1327648944;
break;
case 7:
goto IL_010e;
case 2:
goto IL_011b;
case 6:
goto IL_0128;
case 8:
goto IL_0135;
case 1:
num = ((inventoryType == InventoryType.ArmoryMainHand) ? (-1327648934) : (-1327648946));
break;
case 16:
num = -1327648930;
break;
case 0:
goto IL_016e;
case 5:
return result;
case 3:
num = ((inventoryType == InventoryType.EquippedItems) ? (-1327648939) : (-1327648942));
break;
case 12:
num = -1327648930;
break;
case 13:
{
num = ((inventoryType == InventoryType.ArmoryRings) ? (-1327648932) : (-1327648929));
break;
}
IL_010e:
result = AgentMateriaAttach.FilterCategory.ArmouryHeadBodyHands;
num = -1327648933;
break;
IL_00f8:
num = -1327648941;
break;
IL_016e:
result = AgentMateriaAttach.FilterCategory.None;
num = -1327648933;
break;
IL_0135:
result = AgentMateriaAttach.FilterCategory.ArmouryNeckEars;
num = -1327648933;
break;
IL_0128:
result = AgentMateriaAttach.FilterCategory.ArmouryLegsFeet;
num = -1327648933;
break;
IL_011b:
result = AgentMateriaAttach.FilterCategory.ArmouryWristRing;
num = -1327648933;
break;
}
}
}
public unsafe static int? FindItemIndex(InventoryItem* target)
{
int num = ((target != null) ? (-1032587333) : (-1032587331));
AgentMateriaAttach* ptr = default(AgentMateriaAttach*);
int num5 = default(int);
AgentMateriaAttach.MateriaAttachEntry* value = default(AgentMateriaAttach.MateriaAttachEntry*);
while (true)
{
int num2 = num;
int num3 = -1032587332;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 8:
num = ((!ptr->IsAgentActive()) ? (-1032587329) : (-1032587330));
break;
case 3:
return null;
case 10:
num = ((num5 < ptr->ItemCount) ? (-1032587339) : (-1032587336));
break;
case 7:
ptr = AgentMateriaAttach.Instance();
num = ((ptr == null) ? (-1032587329) : (-1032587340));
break;
case 4:
return null;
case 12:
{
int num6 = num5;
num3 = 1;
num4 = num6;
int num7 = num4 ^ num3;
int num8 = num4 & num3;
num5 = num7 + (num8 + num8);
num = -1032587338;
break;
}
case 9:
value = ptr->Data->ItemsSorted[num5].Value;
num = ((value == null) ? (-1032587344) : (-1032587335));
break;
case 5:
num = ((value->Item != target) ? (-1032587344) : (-1032587337));
break;
case 1:
return null;
case 2:
num = ((ptr->Data != null) ? (-1032587334) : (-1032587329));
break;
case 11:
return num5;
case 0:
num = -1032587331;
break;
case 6:
num5 = 0;
num = -1032587338;
break;
}
}
}
public unsafe static int? FindMateriaIndex(uint materiaItemId)
{
AgentMateriaAttach* ptr = AgentMateriaAttach.Instance();
int num = ((ptr == null) ? 2014235157 : 2014235164);
AgentMateriaAttach.MateriaAttachEntry* value = default(AgentMateriaAttach.MateriaAttachEntry*);
int num6 = default(int);
while (true)
{
int num2 = num;
int num3 = 2014235167;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 11:
num = ((value->Item->ItemId != materiaItemId) ? 2014235158 : 2014235159);
break;
case 0:
num = ((ptr->Data != null) ? 2014235166 : 2014235157);
break;
case 10:
return null;
case 8:
return num6;
case 7:
return null;
case 3:
num = ((!ptr->IsAgentActive()) ? 2014235157 : 2014235167);
break;
case 2:
num = 2014235164;
break;
case 4:
num = ((num6 < ptr->MateriaCount) ? 2014235162 : 2014235160);
break;
case 1:
num6 = 0;
num = 2014235163;
break;
case 5:
value = ptr->Data->MateriaSorted[num6].Value;
num = ((value == null) ? 2014235158 : 2014235161);
break;
case 6:
num = ((value->Item == null) ? 2014235158 : 2014235156);
break;
case 9:
{
int num5 = num6;
num3 = 1;
num4 = num5;
num6 = (num4 | num3) + (num4 & num3);
num = 2014235163;
break;
}
}
}
}
public static bool IsMeldingUnlocked()
{
return GearFeatures.IsMeldingUnlocked();
}
public static bool IsOvermeldingUnlocked()
{
return GearFeatures.IsOvermeldingUnlocked();
}
public unsafe static bool CanMeldItem(IDataManager dataManager, InventoryItem* item)
{
int num = ((item == null) ? (-1684140330) : (-1684140332));
Item row = default(Item);
int num5 = default(int);
int num6 = default(int);
while (true)
{
int num2 = num;
int num3 = -1684140328;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 6:
num = (dataManager.GetExcelSheet<Item>().TryGetRow(item->ItemId, out row) ? (-1684140324) : (-1684140325));
break;
case 5:
num5 = row.MateriaSlotCount;
num = ((!row.IsAdvancedMeldingPermitted) ? (-1684140336) : (-1684140333));
break;
case 4:
num = ((row.MateriaSlotCount != 0) ? (-1684140323) : (-1684140335));
break;
case 2:
num = -1684140332;
break;
case 1:
num = ((item->Materia[num6] != 0) ? (-1684140334) : (-1684140321));
break;
case 13:
return false;
case 11:
num5 = 5;
num = -1684140336;
break;
case 0:
num = ((num6 < num5) ? (-1684140327) : (-1684140331));
break;
case 10:
{
int num7 = num6;
num3 = 1;
num4 = num7;
int num8 = num4 ^ num3;
int num9 = num4 & num3;
num6 = num8 + (num9 + num9);
num = -1684140328;
break;
}
case 8:
num6 = 0;
num = -1684140328;
break;
case 7:
return true;
case 9:
return false;
case 14:
return false;
case 3:
return false;
case 12:
num = ((item->ItemId != 0) ? (-1684140322) : (-1684140330));
break;
}
}
}
}