271 lines
15 KiB
C#
271 lines
15 KiB
C#
using System;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using Dalamud.Bindings.ImGui;
|
|
using Dalamud.Interface;
|
|
using Dalamud.Interface.Colors;
|
|
using Dalamud.Interface.ManagedFontAtlas;
|
|
using Dalamud.Plugin;
|
|
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
|
using Questionable.Controller;
|
|
using Questionable.Functions;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Windows;
|
|
|
|
internal sealed class UiUtils
|
|
{
|
|
private readonly QuestFunctions _questFunctions;
|
|
|
|
private readonly QuestRegistry _questRegistry;
|
|
|
|
private readonly IDalamudPluginInterface _pluginInterface;
|
|
|
|
public UiUtils(QuestFunctions questFunctions, QuestRegistry questRegistry, IDalamudPluginInterface pluginInterface)
|
|
{
|
|
_questFunctions = questFunctions;
|
|
_questRegistry = questRegistry;
|
|
_pluginInterface = pluginInterface;
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public (Vector4 Color, FontAwesomeIcon Icon, string Status) GetQuestStyle(ElementId elementId)
|
|
{
|
|
int num = ((!_questFunctions.IsQuestAccepted(elementId)) ? (-1441801408) : (-1441801406));
|
|
QuestId questId = default(QuestId);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1441801390;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 8:
|
|
num = ((!_questFunctions.IsQuestComplete(questId)) ? (-1441801384) : (-1441801407));
|
|
break;
|
|
case 19:
|
|
return (Color: UiThemeUtils.StatusAvailableComplete, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(871452467));
|
|
case 18:
|
|
questId = elementId as QuestId;
|
|
num = (((object)questId == null) ? (-1441801402) : (-1441801380));
|
|
break;
|
|
case 21:
|
|
num = (_questRegistry.IsKnownQuest(elementId) ? (-1441801386) : (-1441801385));
|
|
break;
|
|
case 3:
|
|
num = (_questFunctions.IsReadyToAcceptQuest(questId) ? (-1441801382) : (-1441801379));
|
|
break;
|
|
case 5:
|
|
return (Color: UiThemeUtils.StatusLocked, Icon: FontAwesomeIcon.Times, Status: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1267300956));
|
|
case 1:
|
|
return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-833431314));
|
|
case 13:
|
|
num = ((!_questFunctions.IsReadyToAcceptQuest(elementId)) ? (-1441801385) : (-1441801401));
|
|
break;
|
|
case 10:
|
|
return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1067102916));
|
|
case 14:
|
|
num = ((!_questFunctions.IsDailyAlliedSocietyQuestAndAvailableToday(questId)) ? (-1441801402) : (-1441801390));
|
|
break;
|
|
case 20:
|
|
num = ((!_questFunctions.IsQuestAcceptedOrComplete(elementId)) ? (-1441801388) : (-1441801378));
|
|
break;
|
|
case 7:
|
|
return (Color: UiThemeUtils.StatusUnobtainable, Icon: FontAwesomeIcon.Minus, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(576385889));
|
|
case 16:
|
|
return (Color: UiThemeUtils.StatusActive, Icon: FontAwesomeIcon.PersonWalkingArrowRight, Status: global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1970753606));
|
|
case 6:
|
|
num = ((!_questFunctions.IsQuestUnobtainable(elementId)) ? (-1441801392) : (-1441801387));
|
|
break;
|
|
case 15:
|
|
return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: 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<string>(1552042899));
|
|
case 0:
|
|
num = ((!_questFunctions.IsQuestBlacklisted(questId)) ? (-1441801391) : (-1441801381));
|
|
break;
|
|
case 9:
|
|
return (Color: UiThemeUtils.StatusBlacklisted, Icon: FontAwesomeIcon.Ban, Status: global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1976852282));
|
|
case 11:
|
|
num = -1441801406;
|
|
break;
|
|
case 17:
|
|
num = (_questFunctions.IsQuestLocked(elementId) ? (-1441801385) : (-1441801377));
|
|
break;
|
|
case 2:
|
|
num = ((!_questFunctions.IsQuestBlacklisted(elementId)) ? (-1441801405) : (-1441801389));
|
|
break;
|
|
case 4:
|
|
return (Color: UiThemeUtils.StatusAvailable, Icon: FontAwesomeIcon.Running, Status: global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1166519045));
|
|
case 12:
|
|
return (Color: UiThemeUtils.StatusComplete, Icon: FontAwesomeIcon.Check, Status: 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<string>(1552042899));
|
|
}
|
|
}
|
|
}
|
|
|
|
public static (Vector4 color, FontAwesomeIcon icon) GetInstanceStyle(ushort instanceId)
|
|
{
|
|
int num = ((!UIState.IsInstanceContentCompleted(instanceId)) ? (-627417922) : (-627417921));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -627417923;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 3:
|
|
num = ((!UIState.IsInstanceContentUnlocked(instanceId)) ? (-627417924) : (-627417927));
|
|
break;
|
|
case 2:
|
|
return (color: UiThemeUtils.StatusComplete, icon: FontAwesomeIcon.Check);
|
|
case 0:
|
|
num = -627417921;
|
|
break;
|
|
case 1:
|
|
return (color: UiThemeUtils.StatusLocked, icon: FontAwesomeIcon.Times);
|
|
case 4:
|
|
return (color: UiThemeUtils.StatusActive, icon: FontAwesomeIcon.Running);
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool ChecklistItem(string text, Vector4 color, FontAwesomeIcon icon, float extraPadding = 0f, bool asBadge = false)
|
|
{
|
|
int num = ((!asBadge) ? (-1166254314) : (-1166254313));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1166254314;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
num = -1166254313;
|
|
break;
|
|
case 2:
|
|
_206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(_202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E() + extraPadding);
|
|
num = -1166254318;
|
|
break;
|
|
case 1:
|
|
UiThemeUtils.StatusBadge(text, color, icon);
|
|
return _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E();
|
|
case 0:
|
|
num = ((!(extraPadding > 0f)) ? (-1166254318) : (-1166254316));
|
|
break;
|
|
case 4:
|
|
{
|
|
IDisposable disposable = _200C_206E_202B_202B_200B_206D_200B_200F_200C_200B_206D_206D_202C_206E_202C_200C_206C_200E_200E_202A_206A_206D_206A_206B_202C_202A_200E_206B_202E_202E_200F_200F_200F_202A_206D_206B_202D_202E_206E_200C_202E(_206B_202B_206A_200F_202B_200F_200C_200B_206A_202B_200B_206F_200C_200F_202C_206E_200C_206F_202C_200D_202D_206A_200D_202D_200E_202D_206F_202B_200F_200F_202E_200C_200B_206A_206A_200E_206C_200E_206D_206F_202E(_202A_206C_206E_202C_206F_206F_206D_206A_206B_200F_206D_206A_206B_200C_202A_206A_200E_206F_200D_206B_206E_200B_206F_206F_200C_202A_206E_202C_200E_206A_206D_206E_206D_202B_202C_206C_202C_202C_206C_206B_202E(_pluginInterface)));
|
|
try
|
|
{
|
|
_206B_206A_206D_200F_202C_202C_200D_206B_206E_202B_202B_206B_200B_206C_202B_202A_200D_206B_206C_202B_206C_200B_200B_202D_206F_200E_206D_202D_206B_202B_202D_202B_202E_202E_206D_206D_206E_206C_206C_202E(ref color, (ImU8String)_200F_200E_202A_206B_206A_206B_200B_200F_206B_206E_200B_206A_206D_206B_202B_206A_206B_206B_206F_206A_202C_202B_200C_206A_200F_206C_206B_202C_202A_202A_202B_206F_200F_202D_200F_200E_206C_206E_202A_200D_202E(icon));
|
|
}
|
|
finally
|
|
{
|
|
num = ((disposable == null) ? 669978987 : 669978984);
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
num3 = 669978985;
|
|
num4 = num5;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = 669978984;
|
|
break;
|
|
case 1:
|
|
_206F_200C_200B_202D_202B_200D_200C_206A_202C_200B_202C_206C_202A_200F_200E_206D_206D_206D_202E_200F_202C_206A_206B_202E_202D_206C_202C_206C_202D_200C_202E_200E_202D_206C_206B_202C_206E_206C_206D_206D_202E(disposable);
|
|
num = 669978987;
|
|
break;
|
|
case 2:
|
|
goto end_IL_00e6;
|
|
}
|
|
continue;
|
|
end_IL_00e6:
|
|
break;
|
|
}
|
|
}
|
|
bool num6 = _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E();
|
|
_202E_200E_206F_200C_206F_200B_206C_200F_206F_206C_206C_200F_206B_200C_200C_206B_206B_206E_206E_206F_200E_206C_200C_206A_206E_206B_202E_202B_206F_200F_200F_200C_202D_206E_206F_200B_200D_206F_200C_202E_202E();
|
|
if (extraPadding > 0f)
|
|
{
|
|
_206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(_202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E() + extraPadding);
|
|
}
|
|
_206A_200F_206F_202B_202A_206E_200D_202E_202B_200E_200B_206F_206C_200D_206E_206F_200C_206F_200B_202E_206F_202E_206A_206C_200E_200D_202D_200E_202A_206A_200C_202D_200E_202C_206B_200E_206A_206D_200D_200E_202E((ImU8String)text);
|
|
return num6 | _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool ChecklistItem(string text, bool complete, Vector4? colorOverride = null)
|
|
{
|
|
return ChecklistItem(text, colorOverride ?? (complete ? _200C_206E_202D_202E_200B_202D_200F_206B_206C_202A_200F_202A_202E_206B_206E_200D_200F_202B_202B_202A_206F_200C_206D_202E_200E_202C_206D_206F_202B_200C_202B_206D_200C_200D_202C_200E_206E_200B_206D_206A_202E() : _202A_200B_200B_202A_206A_206F_200D_200E_202D_202E_206A_200F_200E_206E_202B_206D_202C_206B_206F_200E_206D_206F_202A_202C_206D_206F_206E_200F_200E_206F_200C_202C_206B_202D_206E_202E_202E_202D_202B_202E_202E()), complete ? FontAwesomeIcon.Check : FontAwesomeIcon.Times);
|
|
}
|
|
|
|
static bool _202B_200D_206D_202D_202E_206F_200C_202D_206E_206A_202A_200B_202A_202E_206C_200F_206B_202D_202A_206D_206D_206C_200E_206D_202A_200C_202B_200D_202C_206A_200E_202D_202D_202A_202C_206A_202B_206C_202D_200F_202E()
|
|
{
|
|
return ImGui.IsItemHovered();
|
|
}
|
|
|
|
static float _202B_200B_202E_206C_200E_202B_202C_200E_200E_202E_200D_202C_206D_200B_206C_202D_200C_206C_206A_206D_200C_202B_206F_206F_202D_200C_206D_206E_202B_200F_200C_206E_202C_202D_200D_206E_200C_206D_206A_200E_202E()
|
|
{
|
|
return ImGui.GetCursorPosX();
|
|
}
|
|
|
|
static void _206F_200D_200F_200B_200F_200C_206C_206A_202E_206F_206D_200E_202B_202B_202B_200C_206A_206A_200C_200C_200C_200D_202D_200B_206F_202E_206F_202D_206F_200C_206A_202A_202D_200B_202D_202E_206C_202D_206C_200D_202E(float P_0)
|
|
{
|
|
ImGui.SetCursorPosX(P_0);
|
|
}
|
|
|
|
static IUiBuilder _202A_206C_206E_202C_206F_206F_206D_206A_206B_200F_206D_206A_206B_200C_202A_206A_200E_206F_200D_206B_206E_200B_206F_206F_200C_202A_206E_202C_200E_206A_206D_206E_206D_202B_202C_206C_202C_202C_206C_206B_202E(IDalamudPluginInterface P_0)
|
|
{
|
|
return P_0.UiBuilder;
|
|
}
|
|
|
|
static IFontHandle _206B_202B_206A_200F_202B_200F_200C_200B_206A_202B_200B_206F_200C_200F_202C_206E_200C_206F_202C_200D_202D_206A_200D_202D_200E_202D_206F_202B_200F_200F_202E_200C_200B_206A_206A_200E_206C_200E_206D_206F_202E(IUiBuilder P_0)
|
|
{
|
|
return P_0.IconFontFixedWidthHandle;
|
|
}
|
|
|
|
static IDisposable _200C_206E_202B_202B_200B_206D_200B_200F_200C_200B_206D_206D_202C_206E_202C_200C_206C_200E_200E_202A_206A_206D_206A_206B_202C_202A_200E_206B_202E_202E_200F_200F_200F_202A_206D_206B_202D_202E_206E_200C_202E(IFontHandle P_0)
|
|
{
|
|
return P_0.Push();
|
|
}
|
|
|
|
static string _200F_200E_202A_206B_206A_206B_200B_200F_206B_206E_200B_206A_206D_206B_202B_206A_206B_206B_206F_206A_202C_202B_200C_206A_200F_206C_206B_202C_202A_202A_202B_206F_200F_202D_200F_200E_206C_206E_202A_200D_202E(FontAwesomeIcon P_0)
|
|
{
|
|
return P_0.ToIconString();
|
|
}
|
|
|
|
static void _206B_206A_206D_200F_202C_202C_200D_206B_206E_202B_202B_206B_200B_206C_202B_202A_200D_206B_206C_202B_206C_200B_200B_202D_206F_200E_206D_202D_206B_202B_202D_202B_202E_202E_206D_206D_206E_206C_206C_202E(ref Vector4 P_0, ImU8String P_1)
|
|
{
|
|
ImGui.TextColored(in P_0, P_1);
|
|
}
|
|
|
|
static void _206F_200C_200B_202D_202B_200D_200C_206A_202C_200B_202C_206C_202A_200F_200E_206D_206D_206D_202E_200F_202C_206A_206B_202E_202D_206C_202C_206C_202D_200C_202E_200E_202D_206C_206B_202C_206E_206C_206D_206D_202E(IDisposable P_0)
|
|
{
|
|
P_0.Dispose();
|
|
}
|
|
|
|
static void _202E_200E_206F_200C_206F_200B_206C_200F_206F_206C_206C_200F_206B_200C_200C_206B_206B_206E_206E_206F_200E_206C_200C_206A_206E_206B_202E_202B_206F_200F_200F_200C_202D_206E_206F_200B_200D_206F_200C_202E_202E()
|
|
{
|
|
ImGui.SameLine();
|
|
}
|
|
|
|
static void _206A_200F_206F_202B_202A_206E_200D_202E_202B_200E_200B_206F_206C_200D_206E_206F_200C_206F_200B_202E_206F_202E_206A_206C_200E_200D_202D_200E_202A_206A_200C_202D_200E_202C_206B_200E_206A_206D_200D_200E_202E(ImU8String P_0)
|
|
{
|
|
ImGui.TextUnformatted(P_0);
|
|
}
|
|
|
|
static Vector4 _202A_200B_200B_202A_206A_206F_200D_200E_202D_202E_206A_200F_200E_206E_202B_206D_202C_206B_206F_200E_206D_206F_202A_202C_206D_206F_206E_200F_200E_206F_200C_202C_206B_202D_206E_202E_202E_202D_202B_202E_202E()
|
|
{
|
|
return ImGuiColors.DalamudRed;
|
|
}
|
|
|
|
static Vector4 _200C_206E_202D_202E_200B_202D_200F_206B_206C_202A_200F_202A_202E_206B_206E_200D_200F_202B_202B_202A_206F_200C_206D_202E_200E_202C_206D_206F_202B_200C_202B_206D_200C_200D_202C_200E_206E_200B_206D_206A_202E()
|
|
{
|
|
return ImGuiColors.ParsedGreen;
|
|
}
|
|
}
|