forked from aly/qstbak
527 lines
10 KiB
C#
527 lines
10 KiB
C#
using System;
|
|
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
|
|
|
namespace LLib.Buddy;
|
|
|
|
public static class BuddyStateHelper
|
|
{
|
|
public unsafe static bool IsCompanionSummoned()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-1349796682) : (-1349796683));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1349796684;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
return ptr->Buddy.CompanionInfo.TimeLeft > 0f;
|
|
case 1:
|
|
return false;
|
|
case 0:
|
|
goto IL_0063;
|
|
}
|
|
continue;
|
|
IL_0063:
|
|
num = -1349796683;
|
|
}
|
|
}
|
|
|
|
public unsafe static bool IsCompanionMounted()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-1440023216) : (-1440023213));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1440023215;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0049;
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.Mounted;
|
|
case 2:
|
|
return false;
|
|
}
|
|
continue;
|
|
IL_0049:
|
|
num = -1440023213;
|
|
}
|
|
}
|
|
|
|
public unsafe static string GetCompanionName()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 1483608628 : 1483608631);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1483608630;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_004b;
|
|
case 2:
|
|
return ptr->Buddy.CompanionInfo.NameString;
|
|
case 1:
|
|
return string.Empty;
|
|
}
|
|
continue;
|
|
IL_004b:
|
|
num = 1483608631;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetCompanionColorStainId()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 345206792 : 345206793);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 345206792;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
return ptr->Buddy.CompanionInfo.CurrentColorStainId;
|
|
case 1:
|
|
return 0;
|
|
case 2:
|
|
goto IL_005c;
|
|
}
|
|
continue;
|
|
IL_005c:
|
|
num = 345206793;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetCompanionRank()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 424961589 : 424961588);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 424961589;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
return ptr->Buddy.CompanionInfo.Rank;
|
|
case 1:
|
|
return 0;
|
|
case 2:
|
|
goto IL_005c;
|
|
}
|
|
continue;
|
|
IL_005c:
|
|
num = 424961588;
|
|
}
|
|
}
|
|
|
|
public unsafe static uint GetCompanionCurrentXP()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-7933264) : (-7933261));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -7933262;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
return ptr->Buddy.CompanionInfo.CurrentXP;
|
|
case 1:
|
|
return 0u;
|
|
case 0:
|
|
goto IL_005c;
|
|
}
|
|
continue;
|
|
IL_005c:
|
|
num = -7933261;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetCompanionStars()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 1600521884 : 1600521887);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1600521885;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0049;
|
|
case 2:
|
|
return 0;
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.Stars;
|
|
}
|
|
continue;
|
|
IL_0049:
|
|
num = 1600521887;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetCompanionSkillPoints()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 624298941 : 624298942);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 624298940;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.SkillPoints;
|
|
case 2:
|
|
return 0;
|
|
case 0:
|
|
goto IL_005c;
|
|
}
|
|
continue;
|
|
IL_005c:
|
|
num = 624298942;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetDefenderLevel()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-1160271461) : (-1160271462));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1160271461;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
goto IL_004c;
|
|
case 1:
|
|
return 0;
|
|
case 0:
|
|
return ptr->Buddy.CompanionInfo.Levels[0];
|
|
}
|
|
continue;
|
|
IL_004c:
|
|
num = -1160271462;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetAttackerLevel()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 35779603 : 35779600);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 35779602;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_004c;
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.Levels[1];
|
|
case 2:
|
|
return 0;
|
|
}
|
|
continue;
|
|
IL_004c:
|
|
num = 35779600;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetHealerLevel()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-1648020324) : (-1648020321));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1648020323;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.Levels[2];
|
|
case 2:
|
|
return 0;
|
|
case 0:
|
|
goto IL_006b;
|
|
}
|
|
continue;
|
|
IL_006b:
|
|
num = -1648020321;
|
|
}
|
|
}
|
|
|
|
public unsafe static (byte Head, byte Chest, byte Feet) GetEquippedBardingIds()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-214194545) : (-214194548));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -214194546;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_004c;
|
|
case 1:
|
|
{
|
|
Span<byte> buddyEquipRowIds = ptr->Buddy.CompanionInfo.BuddyEquipRowIds;
|
|
return (Head: buddyEquipRowIds[0], Chest: buddyEquipRowIds[1], Feet: buddyEquipRowIds[2]);
|
|
}
|
|
case 2:
|
|
return (Head: 0, Chest: 0, Feet: 0);
|
|
}
|
|
continue;
|
|
IL_004c:
|
|
num = -214194548;
|
|
}
|
|
}
|
|
|
|
public unsafe static bool IsBardingUnlocked(uint bardingId)
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr == null) ? 1179942104 : 1179942107);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1179942105;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_004b;
|
|
case 2:
|
|
return ptr->Buddy.CompanionInfo.IsBuddyEquipUnlocked(bardingId);
|
|
case 1:
|
|
return false;
|
|
}
|
|
continue;
|
|
IL_004b:
|
|
num = 1179942107;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetActiveCommand()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 360275929 : 360275930);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 360275928;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 1:
|
|
return ptr->Buddy.CompanionInfo.ActiveCommand;
|
|
case 2:
|
|
return 0;
|
|
case 0:
|
|
goto IL_005c;
|
|
}
|
|
continue;
|
|
IL_005c:
|
|
num = 360275930;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetFavoriteFeed()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 816585553 : 816585552);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 816585553;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
return ptr->Buddy.CompanionInfo.FavoriteFeed;
|
|
case 1:
|
|
return 0;
|
|
case 2:
|
|
goto IL_005e;
|
|
}
|
|
continue;
|
|
IL_005e:
|
|
num = 816585552;
|
|
}
|
|
}
|
|
|
|
public unsafe static bool IsPetSummoned()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 318028987 : 318028984);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 318028985;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
num = ((ptr->Buddy.PetInfo.Pet == null) ? 318028985 : 318028986);
|
|
break;
|
|
case 3:
|
|
return ptr->Buddy.PetInfo.Pet->EntityId != 0;
|
|
case 0:
|
|
return false;
|
|
case 1:
|
|
return false;
|
|
case 4:
|
|
num = 318028984;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetPetOrder()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-105624424) : (-105624421));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -105624422;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0049;
|
|
case 1:
|
|
return 0;
|
|
case 2:
|
|
return ptr->Buddy.PetInfo.Order;
|
|
}
|
|
continue;
|
|
IL_0049:
|
|
num = -105624421;
|
|
}
|
|
}
|
|
|
|
public unsafe static byte GetPetStance()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 25937805 : 25937806);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 25937807;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0049;
|
|
case 2:
|
|
return ptr->Buddy.PetInfo.Stance;
|
|
case 1:
|
|
return 0;
|
|
}
|
|
continue;
|
|
IL_0049:
|
|
num = 25937806;
|
|
}
|
|
}
|
|
|
|
public unsafe static bool IsBattleBuddyPresent()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? (-506116548) : (-506116552));
|
|
int num7 = default(int);
|
|
Span<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember> battleBuddies = default(Span<FFXIVClientStructs.FFXIV.Client.Game.UI.Buddy.BuddyMember>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -506116551;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 3:
|
|
return true;
|
|
case 6:
|
|
{
|
|
int num8 = num7;
|
|
num3 = 1;
|
|
num4 = num8;
|
|
num7 = (num4 | num3) + (num4 & num3);
|
|
num = -506116546;
|
|
break;
|
|
}
|
|
case 0:
|
|
num = ((battleBuddies[num7].EntityId == 0) ? (-506116545) : (-506116550));
|
|
break;
|
|
case 1:
|
|
return false;
|
|
case 2:
|
|
num = -506116552;
|
|
break;
|
|
case 7:
|
|
num = ((num7 < battleBuddies.Length) ? (-506116551) : (-506116547));
|
|
break;
|
|
case 4:
|
|
return false;
|
|
case 5:
|
|
battleBuddies = ptr->Buddy.BattleBuddies;
|
|
num7 = 0;
|
|
num = -506116546;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public unsafe static bool HasDutyHelpers()
|
|
{
|
|
UIState* ptr = UIState.Instance();
|
|
int num = ((ptr != null) ? 132041618 : 132041619);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 132041618;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
goto IL_0049;
|
|
case 1:
|
|
return false;
|
|
case 0:
|
|
return ptr->Buddy.DutyHelperInfo.HasHelpers;
|
|
}
|
|
continue;
|
|
IL_0049:
|
|
num = 132041619;
|
|
}
|
|
}
|
|
}
|