327 lines
13 KiB
C#
327 lines
13 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using Dalamud.Bindings.ImGui;
|
|
using Dalamud.Interface;
|
|
using Dalamud.Interface.Colors;
|
|
using Dalamud.Interface.Utility.Raii;
|
|
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
|
using FFXIVClientStructs.FFXIV.Common.Math;
|
|
using Questionable.Data;
|
|
using Questionable.Functions;
|
|
using Questionable.Model.Questing;
|
|
|
|
namespace Questionable.Windows.QuestComponents;
|
|
|
|
internal sealed class ARealmRebornComponent
|
|
{
|
|
private static readonly QuestId ATimeForEveryPurpose = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)425);
|
|
|
|
private static readonly QuestId TheUltimateWeapon = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)524);
|
|
|
|
private static readonly QuestId GoodIntentions = _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E((ushort)363);
|
|
|
|
private static readonly ushort[] RequiredPrimalInstances;
|
|
|
|
private readonly QuestFunctions _questFunctions;
|
|
|
|
private readonly QuestData _questData;
|
|
|
|
private readonly TerritoryData _territoryData;
|
|
|
|
private readonly UiUtils _uiUtils;
|
|
|
|
private readonly Configuration _configuration;
|
|
|
|
public bool ShouldDraw
|
|
{
|
|
get
|
|
{
|
|
int num = (_questFunctions.IsQuestAcceptedOrComplete(ATimeForEveryPurpose) ? 392545045 : 392545044);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 392545045;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
goto IL_0052;
|
|
case 1:
|
|
return _questFunctions.IsQuestComplete(TheUltimateWeapon);
|
|
case 0:
|
|
return false;
|
|
}
|
|
continue;
|
|
IL_0052:
|
|
num = 392545044;
|
|
}
|
|
}
|
|
}
|
|
|
|
public ARealmRebornComponent(QuestFunctions questFunctions, QuestData questData, TerritoryData territoryData, UiUtils uiUtils, Configuration configuration)
|
|
{
|
|
_questFunctions = questFunctions;
|
|
_questData = questData;
|
|
_territoryData = territoryData;
|
|
_uiUtils = uiUtils;
|
|
_configuration = configuration;
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public void Draw()
|
|
{
|
|
var (contentStartPos, availableWidth, drawList) = UiThemeUtils.BeginCard();
|
|
UiThemeUtils.SectionHeader(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>(-1261156168));
|
|
int num = (_questFunctions.IsQuestAcceptedOrComplete(GoodIntentions) ? 534954263 : 534954260);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 534954261;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
DrawAllianceRaids();
|
|
UiThemeUtils.EndCard(contentStartPos, availableWidth, drawList);
|
|
return;
|
|
case 1:
|
|
DrawPrimals();
|
|
num = 534954263;
|
|
break;
|
|
case 0:
|
|
num = 534954260;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private void DrawPrimals()
|
|
{
|
|
bool flag = UIState.IsInstanceContentCompleted(RequiredPrimalInstances.Last());
|
|
bool flag2 = _uiUtils.ChecklistItem(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>(-1581570553), flag, _configuration.Advanced.SkipARealmRebornHardModePrimals ? new System.Numerics.Vector4?(_202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E()) : ((System.Numerics.Vector4?)null));
|
|
int num = (flag ? (-1664397724) : (-1664397721));
|
|
ushort[] requiredPrimalInstances = default(ushort[]);
|
|
int num8 = default(int);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1664397722;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -1664397721;
|
|
break;
|
|
case 2:
|
|
return;
|
|
case 1:
|
|
num = (flag2 ? (-1664397723) : (-1664397724));
|
|
break;
|
|
case 3:
|
|
{
|
|
using ImRaii.TooltipDisposable tooltipDisposable = _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E();
|
|
num = (tooltipDisposable.Alive ? (-863151473) : (-863151478));
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
num3 = -863151474;
|
|
num4 = num5;
|
|
int num6 = num4 + num3;
|
|
int num7 = num4 & num3;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 5:
|
|
num = -863151478;
|
|
break;
|
|
case 2:
|
|
{
|
|
ushort instanceId = requiredPrimalInstances[num8];
|
|
(System.Numerics.Vector4 color, FontAwesomeIcon icon) instanceStyle = UiUtils.GetInstanceStyle(instanceId);
|
|
FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = instanceStyle.color;
|
|
FontAwesomeIcon item = instanceStyle.icon;
|
|
_uiUtils.ChecklistItem(_territoryData.GetInstanceName(instanceId) ?? 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>(-1923490088), vector, item, _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E().FramePadding.X);
|
|
int num9 = num8;
|
|
num3 = 1;
|
|
num4 = num9;
|
|
num8 = (num4 | num3) + (num4 & num3);
|
|
num = -863151475;
|
|
break;
|
|
}
|
|
case 3:
|
|
num = ((num8 < requiredPrimalInstances.Length) ? (-863151476) : (-863151474));
|
|
break;
|
|
case 1:
|
|
requiredPrimalInstances = RequiredPrimalInstances;
|
|
num8 = 0;
|
|
num = -863151475;
|
|
break;
|
|
case 4:
|
|
return;
|
|
case 0:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
private void DrawAllianceRaids()
|
|
{
|
|
QuestFunctions questFunctions = _questFunctions;
|
|
IReadOnlyList<QuestId> crystalTowerQuests = QuestData.CrystalTowerQuests;
|
|
bool flag = questFunctions.IsQuestComplete(crystalTowerQuests[crystalTowerQuests.Count - 1]);
|
|
bool flag2 = _uiUtils.ChecklistItem(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>(442894650), flag, _configuration.Advanced.SkipCrystalTowerRaids ? new System.Numerics.Vector4?(_202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E()) : ((System.Numerics.Vector4?)null));
|
|
int num = (flag ? 406928079 : 406928076);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 406928077;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
num = 406928076;
|
|
break;
|
|
case 2:
|
|
return;
|
|
case 1:
|
|
num = (flag2 ? 406928077 : 406928079);
|
|
break;
|
|
case 0:
|
|
{
|
|
using ImRaii.TooltipDisposable tooltipDisposable = _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E();
|
|
num = (tooltipDisposable.Alive ? 533911175 : 533911174);
|
|
while (true)
|
|
{
|
|
int num5 = num;
|
|
num3 = 533911175;
|
|
num4 = num5;
|
|
int num6 = num4 + num3;
|
|
int num7 = num4 & num3;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 2:
|
|
goto IL_0133;
|
|
case 1:
|
|
return;
|
|
case 0:
|
|
{
|
|
IEnumerator<QuestId> enumerator = QuestData.CrystalTowerQuests.GetEnumerator();
|
|
try
|
|
{
|
|
num = -1056949056;
|
|
while (true)
|
|
{
|
|
int num8 = num;
|
|
num3 = -1056949054;
|
|
num4 = num8;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -1056949056;
|
|
break;
|
|
case 3:
|
|
{
|
|
QuestId current = enumerator.Current;
|
|
(System.Numerics.Vector4 Color, FontAwesomeIcon Icon, string Status) questStyle = _uiUtils.GetQuestStyle(current);
|
|
FFXIVClientStructs.FFXIV.Common.Math.Vector4 vector = questStyle.Color;
|
|
FontAwesomeIcon item = questStyle.Icon;
|
|
_uiUtils.ChecklistItem(_questData.GetQuestInfo(current).Name, vector, item, _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E().FramePadding.X);
|
|
num = -1056949056;
|
|
break;
|
|
}
|
|
case 2:
|
|
num = (_200D_202A_206E_206D_200C_206A_206D_206C_206B_200C_200C_206C_200E_200C_200E_206D_206E_206E_206E_200C_200D_200D_206E_200C_206C_200D_206D_200E_202B_200B_202D_200B_202E_206A_206F_202D_206C_200C_202D_200C_202E((IEnumerator)enumerator) ? (-1056949055) : (-1056949053));
|
|
break;
|
|
case 1:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
num = ((enumerator == null) ? (-208595158) : (-208595159));
|
|
while (true)
|
|
{
|
|
int num9 = num;
|
|
num3 = -208595160;
|
|
num4 = num9;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -208595159;
|
|
break;
|
|
case 2:
|
|
goto end_IL_025d;
|
|
case 1:
|
|
_200F_202A_200E_200D_202B_206F_202E_200C_206C_206D_200D_206B_202A_202D_202B_202C_202D_200B_206C_202E_206B_202B_202B_202C_202A_202A_200D_206F_202E_206B_202D_200D_202B_200C_202A_206C_200D_200B_200D_200C_202E((IDisposable)enumerator);
|
|
num = -208595158;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_025d:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
continue;
|
|
IL_0133:
|
|
num = 533911174;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static ARealmRebornComponent()
|
|
{
|
|
ushort[] array = new ushort[3];
|
|
_200D_206A_200B_206B_206E_200F_202E_202B_206B_206C_206C_202E_206E_206B_206B_206C_202D_206C_200C_200E_206C_202A_200E_202E_200B_206D_206F_202C_206E_206C_206B_200F_202E_200F_202D_206B_200B_206F_206B_200C_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
|
|
RequiredPrimalInstances = array;
|
|
}
|
|
|
|
static System.Numerics.Vector4 _202E_202A_206C_200E_206E_200D_202C_202C_200E_202E_206F_202E_202D_200B_206C_206B_200F_202D_200E_206C_200B_202B_206B_200D_202E_200F_200F_202D_206C_206F_202D_206B_206A_200B_206B_200E_202D_202D_200F_202E_202E()
|
|
{
|
|
return ImGuiColors.DalamudGrey;
|
|
}
|
|
|
|
static ImRaii.TooltipDisposable _206D_200F_200C_206C_202B_200F_200E_200B_206F_200C_202C_200E_200E_200F_202D_202E_202C_200C_202B_202B_206C_200D_206E_206C_202A_206A_202E_200B_200F_206D_206A_206C_206D_202A_202A_200C_202D_206E_206E_202A_202E()
|
|
{
|
|
return ImRaii.Tooltip();
|
|
}
|
|
|
|
static ImGuiStylePtr _202E_206F_202D_202E_200C_202C_206F_200C_202D_206B_200C_202E_202C_200E_206F_200D_202C_206D_206A_202D_202C_206A_202A_202E_200D_202D_202A_202A_206E_206F_202B_206A_200D_202C_206B_206A_206D_206E_202C_206C_202E()
|
|
{
|
|
return ImGui.GetStyle();
|
|
}
|
|
|
|
static bool _200D_202A_206E_206D_200C_206A_206D_206C_206B_200C_200C_206C_200E_200C_200E_206D_206E_206E_206E_200C_200D_200D_206E_200C_206C_200D_206D_200E_202B_200B_202D_200B_202E_206A_206F_202D_206C_200C_202D_200C_202E(IEnumerator P_0)
|
|
{
|
|
return P_0.MoveNext();
|
|
}
|
|
|
|
static void _200F_202A_200E_200D_202B_206F_202E_200C_206C_206D_200D_206B_202A_202D_202B_202C_202D_200B_206C_202E_206B_202B_202B_202C_202A_202A_200D_206F_202E_206B_202D_200D_202B_200C_202A_206C_200D_200B_200D_200C_202E(IDisposable P_0)
|
|
{
|
|
P_0.Dispose();
|
|
}
|
|
|
|
static QuestId _206E_200C_202E_200D_200F_202D_202B_200D_206A_206E_206D_202C_200D_202C_206A_206E_200E_202D_200E_200C_200E_200F_202E_200B_200C_206E_206A_200D_202E_200D_200D_200D_200B_202C_206E_202B_202E_202D_200D_200F_202E(ushort P_0)
|
|
{
|
|
return new QuestId(P_0);
|
|
}
|
|
|
|
static void _200D_206A_200B_206B_206E_200F_202E_202B_206B_206C_206C_202E_206E_206B_206B_206C_202D_206C_200C_200E_206C_202A_200E_202E_200B_206D_206F_202C_206E_206C_206B_200F_202E_200F_202D_206B_200B_206F_206B_200C_202E(Array P_0, RuntimeFieldHandle P_1)
|
|
{
|
|
RuntimeHelpers.InitializeArray(P_0, P_1);
|
|
}
|
|
}
|