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,52 @@
using Lumina.Excel.Sheets;
namespace LLib.Inventory;
public static class CofferHelper
{
public static bool IsGearCoffer(Item item)
{
ItemAction? valueNullable = item.ItemAction.ValueNullable;
int num = (valueNullable.HasValue ? (-77683553) : (-77683554));
bool flag = default(bool);
uint rowId = default(uint);
while (true)
{
int num2 = num;
int num3 = -77683553;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 4:
return false;
case 8:
return item.ItemUICategory.RowId == 61;
case 7:
flag = false;
num = -77683558;
break;
case 5:
num = ((!flag) ? (-77683557) : (-77683561));
break;
case 3:
flag = true;
num = -77683558;
break;
case 2:
num = -77683554;
break;
case 6:
num = ((rowId != 1085) ? (-77683560) : (-77683556));
break;
case 1:
return false;
case 0:
rowId = valueNullable.Value.RowId;
num = ((rowId == 388) ? (-77683556) : (-77683559));
break;
}
}
}
}

View file

@ -0,0 +1,313 @@
using System;
using System.Collections.Generic;
using FFXIVClientStructs.FFXIV.Client.Game;
namespace LLib.Inventory;
public static class InventoryContainers
{
public static ReadOnlySpan<InventoryType> Bags => new InventoryType[4]
{
InventoryType.Inventory1,
InventoryType.Inventory2,
InventoryType.Inventory3,
InventoryType.Inventory4
};
public static ReadOnlySpan<InventoryType> ArmouryMainHand => new InventoryType[1] { InventoryType.ArmoryMainHand };
public static ReadOnlySpan<InventoryType> ArmouryOffHand => new InventoryType[1] { InventoryType.ArmoryOffHand };
public static ReadOnlySpan<InventoryType> ArmouryLeftSide => new InventoryType[5]
{
InventoryType.ArmoryHead,
InventoryType.ArmoryBody,
InventoryType.ArmoryHands,
InventoryType.ArmoryLegs,
InventoryType.ArmoryFeets
};
public static ReadOnlySpan<InventoryType> ArmouryRightSide => new InventoryType[4]
{
InventoryType.ArmoryEar,
InventoryType.ArmoryNeck,
InventoryType.ArmoryWrist,
InventoryType.ArmoryRings
};
public static ReadOnlySpan<InventoryType> SaddleBag => new InventoryType[2]
{
InventoryType.SaddleBag1,
InventoryType.SaddleBag2
};
public static ReadOnlySpan<InventoryType> PremiumSaddleBag => new InventoryType[2]
{
InventoryType.PremiumSaddleBag1,
InventoryType.PremiumSaddleBag2
};
public unsafe static int CountFreeSlots(ReadOnlySpan<InventoryType> containers)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 422803500 : 422803490);
ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>);
int num7 = default(int);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
int num9 = default(int);
int num11 = default(int);
InventoryItem* inventorySlot = default(InventoryItem*);
while (true)
{
int num2 = num;
int num3 = 422803495;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
{
InventoryType inventoryType = readOnlySpan[num7];
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? 422803501 : 422803493);
break;
}
case 11:
num9 = 0;
readOnlySpan = containers;
num7 = 0;
num = 422803492;
break;
case 0:
num = ((num11 < inventoryContainer->Size) ? 422803491 : 422803501);
break;
case 10:
{
int num14 = num7;
num3 = 1;
num4 = num14;
num7 = (num4 | num3) + (num4 & num3);
num = 422803492;
break;
}
case 7:
{
int num10 = num11;
num3 = 1;
num4 = num10;
int num12 = num4 ^ num3;
int num13 = num4 & num3;
num11 = num12 + (num13 + num13);
num = 422803495;
break;
}
case 9:
{
int num8 = num9;
num3 = 1;
num4 = num8;
num9 = (num4 | num3) + (num4 & num3);
num = 422803488;
break;
}
case 5:
return 0;
case 12:
return num9;
case 6:
num = 422803490;
break;
case 8:
num = ((inventorySlot->ItemId != 0) ? 422803488 : 422803502);
break;
case 2:
num11 = 0;
num = 422803495;
break;
case 4:
inventorySlot = inventoryContainer->GetInventorySlot(num11);
num = ((inventorySlot == null) ? 422803502 : 422803503);
break;
case 3:
num = ((num7 < readOnlySpan.Length) ? 422803494 : 422803499);
break;
}
}
}
public unsafe static int CountItems(uint itemId, ReadOnlySpan<InventoryType> containers)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 107037197 : 107037193);
int num11 = default(int);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
int num7 = default(int);
ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>);
int num5 = default(int);
InventoryItem* inventorySlot = default(InventoryItem*);
while (true)
{
int num2 = num;
int num3 = 107037196;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 9:
num11 = 0;
num = 107037196;
break;
case 0:
num = ((num11 < inventoryContainer->Size) ? 107037190 : 107037191);
break;
case 1:
num7 = 0;
readOnlySpan = containers;
num5 = 0;
num = 107037184;
break;
case 3:
num = ((inventorySlot->ItemId != itemId) ? 107037192 : 107037188);
break;
case 7:
num = 107037193;
break;
case 8:
{
int num6 = num7;
num3 = inventorySlot->Quantity;
num4 = num6;
int num8 = num4 ^ num3;
int num9 = num4 & num3;
num7 = num8 + (num9 + num9);
num = 107037192;
break;
}
case 5:
return 0;
case 10:
inventorySlot = inventoryContainer->GetInventorySlot(num11);
num = ((inventorySlot == null) ? 107037192 : 107037199);
break;
case 4:
{
int num12 = num11;
num3 = 1;
num4 = num12;
int num13 = num4 ^ num3;
int num14 = num4 & num3;
num11 = num13 + (num14 + num14);
num = 107037196;
break;
}
case 6:
{
InventoryType inventoryType = readOnlySpan[num5];
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? 107037191 : 107037189);
break;
}
case 2:
return num7;
case 11:
{
int num10 = num5;
num3 = 1;
num4 = num10;
num5 = (num4 | num3) + (num4 & num3);
num = 107037184;
break;
}
case 12:
num = ((num5 < readOnlySpan.Length) ? 107037194 : 107037198);
break;
}
}
}
public unsafe static List<InventoryItem> GetHqItems(ReadOnlySpan<InventoryType> containers)
{
List<InventoryItem> list = new List<InventoryItem>();
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? (-877452053) : (-877452056));
InventoryItem* inventorySlot = default(InventoryItem*);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
int num5 = default(int);
ReadOnlySpan<InventoryType> readOnlySpan = default(ReadOnlySpan<InventoryType>);
int num9 = default(int);
while (true)
{
int num2 = num;
int num3 = -877452054;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 5:
inventorySlot = inventoryContainer->GetInventorySlot(num5);
num = ((inventorySlot == null) ? (-877452055) : (-877452050));
break;
case 2:
return list;
case 9:
num = -877452056;
break;
case 0:
{
InventoryType inventoryType = readOnlySpan[num9];
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? (-877452051) : (-877452057));
break;
}
case 7:
{
int num10 = num9;
num3 = 1;
num4 = num10;
int num11 = num4 ^ num3;
int num12 = num4 & num3;
num9 = num11 + (num12 + num12);
num = -877452064;
break;
}
case 10:
num = ((num9 < readOnlySpan.Length) ? (-877452054) : (-877452063));
break;
case 6:
num = ((num5 < inventoryContainer->Size) ? (-877452049) : (-877452051));
break;
case 12:
num = (((inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) == 0) ? (-877452055) : (-877452062));
break;
case 8:
list.Add(*inventorySlot);
num = -877452055;
break;
case 1:
readOnlySpan = containers;
num9 = 0;
num = -877452064;
break;
case 4:
num = ((inventorySlot->ItemId == 0) ? (-877452055) : (-877452058));
break;
case 3:
{
int num6 = num5;
num3 = 1;
num4 = num6;
int num7 = num4 ^ num3;
int num8 = num4 & num3;
num5 = num7 + (num8 + num8);
num = -877452052;
break;
}
case 11:
return list;
case 13:
num5 = 0;
num = -877452052;
break;
}
}
}
}

View file

@ -0,0 +1,474 @@
using System;
using System.Runtime.CompilerServices;
using FFXIVClientStructs.FFXIV.Client.Game;
using Lumina.Excel;
using Lumina.Excel.Sheets;
namespace LLib.Inventory;
public static class InventoryHelper
{
public unsafe static int GetItemCount(uint itemId, bool checkEquipped = false, bool checkArmory = false)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? (-1076709592) : (-1076709591));
while (true)
{
int num2 = num;
int num3 = -1076709592;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
return ptr->GetInventoryItemCount(itemId, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(itemId, isHq: true, checkEquipped, checkArmory, 0);
case 1:
return 0;
case 2:
goto IL_0063;
}
continue;
IL_0063:
num = -1076709591;
}
}
public unsafe static int GetItemCount(uint itemId, InventoryType inventoryType)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? (-397486013) : (-397486005));
int num7 = default(int);
int num8 = default(int);
InventoryItem* inventorySlot = default(InventoryItem*);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
while (true)
{
int num2 = num;
int num3 = -397486013;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
return 0;
case 7:
{
int num9 = num7;
num3 = 1;
num4 = num9;
num7 = (num4 | num3) + (num4 & num3);
num = -397486009;
break;
}
case 8:
return 0;
case 3:
{
int num10 = num8;
num3 = inventorySlot->Quantity;
num4 = num10;
int num11 = num4 ^ num3;
int num12 = num4 & num3;
num8 = num11 + (num12 + num12);
num = -397486012;
break;
}
case 0:
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer != null) ? (-397486007) : (-397486014));
break;
case 4:
num = ((num7 < inventoryContainer->Size) ? (-397486010) : (-397486011));
break;
case 6:
return num8;
case 9:
num = ((inventorySlot->ItemId != itemId) ? (-397486012) : (-397486016));
break;
case 10:
num8 = 0;
num7 = 0;
num = -397486009;
break;
case 5:
inventorySlot = inventoryContainer->GetInventorySlot(num7);
num = ((inventorySlot == null) ? (-397486012) : (-397486006));
break;
case 2:
num = -397486005;
break;
}
}
}
public static bool HasFreeInventorySlot()
{
return CountFreeInventorySlots() > 0;
}
public unsafe static int CountFreeInventorySlots()
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 1747914912 : 1747914917);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
InventoryType inventoryType = default(InventoryType);
int num5 = default(int);
int num9 = default(int);
InventoryItem* inventorySlot = default(InventoryItem*);
while (true)
{
int num2 = num;
int num3 = 1747914921;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 6:
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? 1747914922 : 1747914926);
break;
case 4:
num = ((inventoryType <= InventoryType.Inventory4) ? 1747914927 : 1747914915);
break;
case 2:
num = ((num5 < inventoryContainer->Size) ? 1747914921 : 1747914922);
break;
case 3:
inventoryType++;
num = 1747914925;
break;
case 5:
{
int num10 = num9;
num3 = 1;
num4 = num10;
num9 = (num4 | num3) + (num4 & num3);
num = 1747914920;
break;
}
case 7:
num5 = 0;
num = 1747914923;
break;
case 9:
num9 = 0;
inventoryType = InventoryType.Inventory1;
num = 1747914925;
break;
case 8:
num = ((inventorySlot->ItemId != 0) ? 1747914920 : 1747914924);
break;
case 10:
return num9;
case 12:
return 0;
case 11:
num = 1747914917;
break;
case 1:
{
int num6 = num5;
num3 = 1;
num4 = num6;
int num7 = num4 ^ num3;
int num8 = num4 & num3;
num5 = num7 + (num8 + num8);
num = 1747914923;
break;
}
case 0:
inventorySlot = inventoryContainer->GetInventorySlot(num5);
num = ((inventorySlot == null) ? 1747914924 : 1747914913);
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static int CountInventorySlotsWithCondition(uint itemId, Predicate<int> predicate)
{
_206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)predicate, 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>(-279872189));
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? (-1746491217) : (-1746491226));
InventoryType inventoryType = default(InventoryType);
int num7 = default(int);
int num11 = default(int);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
InventoryItem* inventorySlot = default(InventoryItem*);
while (true)
{
int num2 = num;
int num3 = -1746491230;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 14:
num = ((inventoryType <= InventoryType.Inventory4) ? (-1746491221) : (-1746491231));
break;
case 11:
num7 = 0;
num = -1746491225;
break;
case 13:
num11 = 0;
inventoryType = InventoryType.Inventory1;
num = -1746491220;
break;
case 9:
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? (-1746491230) : (-1746491223));
break;
case 5:
num = ((num7 < inventoryContainer->Size) ? (-1746491232) : (-1746491230));
break;
case 10:
{
int num8 = num7;
num3 = 1;
num4 = num8;
int num9 = num4 ^ num3;
int num10 = num4 & num3;
num7 = num9 + (num10 + num10);
num = -1746491225;
break;
}
case 2:
inventorySlot = inventoryContainer->GetInventorySlot(num7);
num = ((inventorySlot == null) ? (-1746491224) : (-1746491227));
break;
case 8:
{
int num12 = num11;
num3 = 1;
num4 = num12;
int num13 = num4 ^ num3;
int num14 = num4 & num3;
num11 = num13 + (num14 + num14);
num = -1746491224;
break;
}
case 0:
inventoryType++;
num = -1746491220;
break;
case 7:
num = ((inventorySlot->ItemId == 0) ? (-1746491224) : (-1746491218));
break;
case 6:
num = -1746491226;
break;
case 3:
return num11;
case 1:
num = ((!predicate(inventorySlot->Quantity)) ? (-1746491224) : (-1746491222));
break;
case 12:
num = ((inventorySlot->ItemId != itemId) ? (-1746491224) : (-1746491229));
break;
case 4:
return 0;
}
}
}
public static bool IsItemEquipped(uint itemId)
{
return GetEquippedItemSlot(itemId) >= 0;
}
public unsafe static int GetEquippedItemSlot(uint itemId)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 1216447237 : 1216447232);
InventoryItem* inventorySlot = default(InventoryItem*);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
int num8 = default(int);
while (true)
{
int num2 = num;
int num3 = 1216447236;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 9:
inventorySlot = inventoryContainer->GetInventorySlot(num8);
num = ((inventorySlot == null) ? 1216447246 : 1216447244);
break;
case 3:
return num8;
case 10:
{
int num7 = num8;
num3 = 1;
num4 = num7;
int num9 = num4 ^ num3;
int num10 = num4 & num3;
num8 = num9 + (num10 + num10);
num = 1216447236;
break;
}
case 4:
return -1;
case 6:
return -1;
case 5:
num = 1216447232;
break;
case 0:
num = ((num8 < inventoryContainer->Size) ? 1216447245 : 1216447234);
break;
case 2:
num8 = 0;
num = 1216447236;
break;
case 7:
return -1;
case 1:
inventoryContainer = ptr->GetInventoryContainer(InventoryType.EquippedItems);
num = ((inventoryContainer != null) ? 1216447238 : 1216447235);
break;
case 8:
num = ((inventorySlot->ItemId != itemId) ? 1216447246 : 1216447239);
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe static int GetRemainingStackCapacity(uint itemId, ExcelSheet<Item> itemSheet)
{
_206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)itemSheet, 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>(-2041652730));
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 2074514221 : 2074514216);
int num9 = default(int);
InventoryType inventoryType = default(InventoryType);
int num7 = default(int);
InventoryItem* inventorySlot = default(InventoryItem*);
InventoryContainer* inventoryContainer = default(InventoryContainer*);
int num8 = default(int);
while (true)
{
int num2 = num;
int num3 = 2074514213;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 14:
return 0;
case 8:
num9 = (int)(itemSheet.GetRowOrDefault(itemId)?.StackSize ?? 0);
num = ((num9 > 1) ? 2074514215 : 2074514219);
break;
case 10:
inventoryType++;
num = 2074514220;
break;
case 11:
num7 = 0;
num = 2074514213;
break;
case 1:
inventorySlot = inventoryContainer->GetInventorySlot(num7);
num = ((inventorySlot == null) ? 2074514214 : 2074514211);
break;
case 4:
return num8;
case 2:
num8 = 0;
inventoryType = InventoryType.Inventory1;
num = 2074514220;
break;
case 6:
num = ((inventorySlot->ItemId != itemId) ? 2074514214 : 2074514208);
break;
case 15:
{
int num11 = num8;
int num12 = num9;
num3 = inventorySlot->Quantity;
num4 = num12;
num3 = ~(~num4 + num3);
num4 = num11;
num8 = (num4 | num3) + (num4 & num3);
num = 2074514214;
break;
}
case 12:
num = 2074514216;
break;
case 3:
{
int num10 = num7;
num3 = 1;
num4 = num10;
num7 = (num4 | num3) + (num4 & num3);
num = 2074514213;
break;
}
case 7:
inventoryContainer = ptr->GetInventoryContainer(inventoryType);
num = ((inventoryContainer == null) ? 2074514223 : 2074514222);
break;
case 9:
num = ((inventoryType <= InventoryType.Inventory4) ? 2074514210 : 2074514209);
break;
case 0:
num = ((num7 < inventoryContainer->Size) ? 2074514212 : 2074514223);
break;
case 13:
return 0;
case 5:
num = (((inventorySlot->Flags & InventoryItem.ItemFlags.HighQuality) != InventoryItem.ItemFlags.None) ? 2074514214 : 2074514218);
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public static int GetMaxHoldableQuantity(uint itemId, ExcelSheet<Item> itemSheet)
{
_206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E((object)itemSheet, 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>(-2041652730));
Item? rowOrDefault = itemSheet.GetRowOrDefault(itemId);
int num = (rowOrDefault.HasValue ? (-1200966345) : (-1200966350));
int stackSize = default(int);
while (true)
{
int num2 = num;
int num3 = -1200966351;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 6:
num = ((!rowOrDefault.Value.IsUnique) ? (-1200966349) : (-1200966352));
break;
case 1:
return (GetItemCount(itemId, checkEquipped: true, checkArmory: true) <= 0) ? 1 : 0;
case 4:
return GetRemainingStackCapacity(itemId, itemSheet) + CountFreeInventorySlots() * stackSize;
case 3:
return 0;
case 2:
stackSize = (int)rowOrDefault.Value.StackSize;
num = ((stackSize > 0) ? (-1200966347) : (-1200966348));
break;
case 0:
num = -1200966350;
break;
case 5:
return 0;
}
}
}
static void _206A_202D_202D_202C_200F_206B_206C_202C_206D_202D_206C_200C_206B_202B_200C_200E_202C_200E_200F_206B_202B_202D_200F_202D_200B_200B_206D_206A_200C_200B_202D_206F_202C_200F_206C_206A_206A_206D_200E_200C_202E(object P_0, string P_1)
{
ArgumentNullException.ThrowIfNull(P_0, P_1);
}
}

View file

@ -0,0 +1,207 @@
using System;
using System.Runtime.CompilerServices;
using System.Text;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using Lumina.Excel.Sheets;
namespace LLib.Inventory;
public readonly record struct ItemHandle(uint RawId)
{
public uint Id
{
get
{
int num = ((RawId >= 1000000) ? 357166028 : 357166029);
while (true)
{
int num2 = num;
int num3 = 357166028;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_004b;
case 1:
return RawId;
case 0:
return RawId % 1000000;
}
continue;
IL_004b:
num = 357166029;
}
}
}
public bool IsHq => RawId >= 1000000;
private const uint HqThreshold = 1000000u;
public static implicit operator ItemHandle(uint itemId)
{
return new ItemHandle(itemId);
}
public static ItemHandle FromUInt32(uint itemId)
{
return new ItemHandle(itemId);
}
public static implicit operator uint(ItemHandle handle)
{
return handle.Id;
}
public uint ToUInt32()
{
return Id;
}
public unsafe static ItemHandle FromInventorySlot(InventoryItem* slot)
{
int num = ((slot != null) ? (-1287272070) : (-1287272069));
while (true)
{
int num2 = num;
int num3 = -1287272070;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_0043;
case 0:
return new ItemHandle(slot->ItemId);
case 1:
return new ItemHandle(0u);
}
continue;
IL_0043:
num = -1287272069;
}
}
public unsafe int GetCount(bool checkEquipped = false, bool checkArmory = false)
{
InventoryManager* ptr = InventoryManager.Instance();
int num = ((ptr != null) ? 991214794 : 991214795);
while (true)
{
int num2 = num;
int num3 = 991214794;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto IL_0049;
case 0:
return ptr->GetInventoryItemCount(Id, isHq: false, checkEquipped, checkArmory, 0) + ptr->GetInventoryItemCount(Id, isHq: true, checkEquipped, checkArmory, 0);
case 1:
return 0;
}
continue;
IL_0049:
num = 991214795;
}
}
public int GetCountInContainer(InventoryType container)
{
return InventoryHelper.GetItemCount(Id, container);
}
public int CountInContainers(ReadOnlySpan<InventoryType> containers)
{
return InventoryContainers.CountItems(Id, containers);
}
public bool HasItem(bool checkEquipped = false, bool checkArmory = false)
{
return GetCount(checkEquipped, checkArmory) > 0;
}
public bool IsEquipped()
{
return InventoryHelper.IsItemEquipped(Id);
}
public int GetEquippedSlot()
{
return InventoryHelper.GetEquippedItemSlot(Id);
}
public Item? GetRow(IDataManager dataManager)
{
return dataManager.GetExcelSheet<Item>().GetRowOrDefault(Id);
}
public uint GetItemLevel(IDataManager dataManager)
{
return GetRow(dataManager)?.LevelItem.RowId ?? 0;
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _206E_206E_206A_200B_206C_200B_202B_202B_200C_206E_206F_206C_206C_202A_200B_200B_200C_206D_206F_200E_206A_200E_202A_202B_206A_206D_200C_200E_206D_200D_202A_202D_206A_206C_200F_200C_206C_200F_202E_206E_202E();
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(stringBuilder, 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>(29412539));
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(stringBuilder, 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>(1808631505));
int num = ((!PrintMembers(stringBuilder)) ? 631534302 : 631534303);
while (true)
{
int num2 = num;
int num3 = 631534302;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 631534303;
break;
case 1:
_202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(stringBuilder, ' ');
num = 631534302;
break;
case 0:
_202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(stringBuilder, '}');
return _200B_202B_206F_200F_200E_202E_206C_202B_206E_200B_206C_200B_202E_202E_206C_206F_206D_206A_202A_206B_206C_202B_200B_200C_206C_200F_202E_202B_200E_200B_202A_200D_200E_206F_200C_200F_202B_206B_206C_206E_202E((object)stringBuilder);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, 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>(-595664961));
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, RawId.ToString());
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, 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>(-1970731150));
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, Id.ToString());
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, 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>(1700323707));
_200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(builder, IsHq.ToString());
return true;
}
static StringBuilder _206E_206E_206A_200B_206C_200B_202B_202B_200C_206E_206F_206C_206C_202A_200B_200B_200C_206D_206F_200E_206A_200E_202A_202B_206A_206D_200C_200E_206D_200D_202A_202D_206A_206C_200F_200C_206C_200F_202E_206E_202E()
{
return new StringBuilder();
}
static StringBuilder _200F_206B_200D_200E_206E_206A_206E_200F_206F_200C_200E_206E_206D_200E_200B_202C_202D_202E_200F_206D_202D_200C_206E_200D_206B_206D_206F_206A_200F_206E_202E_202A_206A_200B_200C_206C_206F_206B_200D_202A_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202C_200E_202D_200E_200E_200C_202C_206A_206B_206D_202C_206B_200E_200C_200E_202D_202D_206F_206B_206B_202A_200E_202E_206A_202B_206C_206E_200C_200F_206B_200B_200C_202A_200C_202E_200E_200E_206B_200C_206C_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200B_202B_206F_200F_200E_202E_206C_202B_206E_200B_206C_200B_202E_202E_206C_206F_206D_206A_202A_206B_206C_202B_200B_200C_206C_200F_202E_202B_200E_200B_202A_200D_200E_206F_200C_200F_202B_206B_206C_206E_202E(object P_0)
{
return P_0.ToString();
}
}