forked from aly/qstbak
muffin v7.5.1
This commit is contained in:
parent
a6481e7b9a
commit
965a736f84
59 changed files with 4112 additions and 5059 deletions
|
|
@ -61,45 +61,30 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
|
||||
public void DrawAlliedSocietyQuests()
|
||||
{
|
||||
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
||||
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Allied Societies");
|
||||
try
|
||||
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Allied Societies");
|
||||
if (!tabItemDisposable)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
}
|
||||
DrawDailyAllowanceHeader();
|
||||
foreach (EAlliedSociety item in from x in Enum.GetValues<EAlliedSociety>()
|
||||
where x != EAlliedSociety.None
|
||||
select x)
|
||||
{
|
||||
List<QuestInfo> list = (from x in _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(item)
|
||||
select (QuestInfo)_questData.GetQuestInfo(x)).ToList();
|
||||
if (list.Count != 0 && DrawAlliedSocietyHeader(item, list))
|
||||
{
|
||||
return;
|
||||
}
|
||||
DrawDailyAllowanceHeader();
|
||||
foreach (EAlliedSociety item in from x in Enum.GetValues<EAlliedSociety>()
|
||||
where x != EAlliedSociety.None
|
||||
select x)
|
||||
{
|
||||
List<QuestInfo> list = (from x in _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(item)
|
||||
select (QuestInfo)_questData.GetQuestInfo(x)).ToList();
|
||||
if (list.Count != 0 && DrawAlliedSocietyHeader(item, list))
|
||||
using (ImRaii.PushIndent())
|
||||
{
|
||||
IndentDisposable val2 = ImRaii.PushIndent(1, true);
|
||||
try
|
||||
{
|
||||
DrawAddToPriorityButtons(item, list);
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
DrawQuestList(item, list);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val2)?.Dispose();
|
||||
}
|
||||
DrawAddToPriorityButtons(item, list);
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
DrawQuestList(item, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TabItemDisposable)(ref val)).Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private unsafe void DrawDailyAllowanceHeader()
|
||||
|
|
@ -286,15 +271,10 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
|
||||
private static void DrawDisabledAddButton()
|
||||
{
|
||||
DisabledDisposable val = ImRaii.Disabled(true);
|
||||
try
|
||||
using (ImRaii.Disabled(disabled: true))
|
||||
{
|
||||
ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Plus, "Add to Priority");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
ImGui.SetTooltip("No quests available to add (may be disabled, already in priority, or not available)");
|
||||
|
|
@ -304,8 +284,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
private void DrawArrSocietyButtons(EAlliedSociety alliedSociety, List<QuestInfo> availableQuests, int dailyLimit, int remainingAllowances)
|
||||
{
|
||||
int num = Math.Min(Math.Min(dailyLimit, remainingAllowances), availableQuests.Count);
|
||||
DisabledDisposable val = ImRaii.Disabled(remainingAllowances == 0);
|
||||
try
|
||||
using (ImRaii.Disabled(remainingAllowances == 0))
|
||||
{
|
||||
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Plus, num switch
|
||||
{
|
||||
|
|
@ -318,10 +297,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
AddQuestsToPriority(alliedSociety, availableQuests.Take(num).ToList());
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
DrawRecommendedButtonTooltip(num, remainingAllowances, dailyLimit, alliedSociety, availableQuests.Count);
|
||||
|
|
@ -342,8 +317,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.BeginTooltip();
|
||||
if (remainingAllowances == 0)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed))
|
||||
{
|
||||
ImU8String text = new ImU8String(0, 1);
|
||||
text.AppendFormatted(SeIconChar.Cross.ToIconString());
|
||||
|
|
@ -351,10 +325,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.SameLine();
|
||||
ImGui.TextUnformatted("No daily allowances remaining");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text2 = new ImU8String(44, 1);
|
||||
text2.AppendLiteral("You've used all ");
|
||||
|
|
@ -364,8 +334,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else if (questsToAddCount == remainingAllowances && questsToAddCount < availableCount)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
|
||||
{
|
||||
ImU8String text3 = new ImU8String(0, 1);
|
||||
text3.AppendFormatted(SeIconChar.QuestSync.ToIconString());
|
||||
|
|
@ -378,10 +347,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text4.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests");
|
||||
ImGui.TextUnformatted(text4);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text5 = new ImU8String(44, 2);
|
||||
text5.AppendLiteral("You can complete ");
|
||||
|
|
@ -395,8 +360,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else if (questsToAddCount == dailyLimit)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
|
||||
{
|
||||
ImU8String text6 = new ImU8String(0, 1);
|
||||
text6.AppendFormatted(SeIconChar.QuestSync.ToIconString());
|
||||
|
|
@ -408,10 +372,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text7.AppendLiteral(" quests");
|
||||
ImGui.TextUnformatted(text7);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text8 = new ImU8String(51, 2);
|
||||
text8.AppendLiteral("This will use ");
|
||||
|
|
@ -425,8 +385,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else if (questsToAddCount == availableCount)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
|
||||
{
|
||||
ImU8String text9 = new ImU8String(0, 1);
|
||||
text9.AppendFormatted(SeIconChar.QuestSync.ToIconString());
|
||||
|
|
@ -441,10 +400,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text10.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests");
|
||||
ImGui.TextUnformatted(text10);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text11 = new ImU8String(37, 2);
|
||||
text11.AppendLiteral("Uses ");
|
||||
|
|
@ -458,8 +413,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudYellow))
|
||||
{
|
||||
ImU8String text12 = new ImU8String(0, 1);
|
||||
text12.AppendFormatted(SeIconChar.BoxedLetterQ.ToIconString());
|
||||
|
|
@ -474,10 +428,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text13.AppendFormatted((questsToAddCount == 1) ? "quest" : "quests");
|
||||
ImGui.TextUnformatted(text13);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text14 = new ImU8String(55, 2);
|
||||
text14.AppendLiteral("Limited by available quests (");
|
||||
|
|
@ -497,8 +447,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.BeginTooltip();
|
||||
if (availableCount > remainingAllowances)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange))
|
||||
{
|
||||
ImU8String text = new ImU8String(0, 1);
|
||||
text.AppendFormatted(SeIconChar.Cross.ToIconString());
|
||||
|
|
@ -506,10 +455,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.SameLine();
|
||||
ImGui.TextUnformatted("Warning: Exceeds remaining allowances");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
ImGui.Spacing();
|
||||
ImU8String text2 = new ImU8String(54, 1);
|
||||
text2.AppendLiteral("This adds all ");
|
||||
|
|
@ -528,8 +473,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else if (availableCount > dailyLimit)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange))
|
||||
{
|
||||
ImU8String text4 = new ImU8String(0, 1);
|
||||
text4.AppendFormatted(SeIconChar.Cross.ToIconString());
|
||||
|
|
@ -537,10 +481,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.SameLine();
|
||||
ImGui.TextUnformatted("Warning: Exceeds daily optimal amount");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
ImGui.Spacing();
|
||||
ImU8String text5 = new ImU8String(32, 1);
|
||||
text5.AppendLiteral("This adds all ");
|
||||
|
|
@ -563,8 +503,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
}
|
||||
else
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
|
||||
{
|
||||
ImU8String text8 = new ImU8String(0, 1);
|
||||
text8.AppendFormatted(SeIconChar.QuestSync.ToIconString());
|
||||
|
|
@ -579,10 +518,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text9.AppendFormatted((availableCount == 1) ? "quest" : "quests");
|
||||
ImGui.TextUnformatted(text9);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
ImGui.Spacing();
|
||||
Vector4 col = ImGuiColors.DalamudGrey3;
|
||||
ImU8String text10 = new ImU8String(27, 2);
|
||||
|
|
@ -626,8 +561,7 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
ImGui.Spacing();
|
||||
if (availableQuests.Count <= remainingAllowances)
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
|
||||
{
|
||||
ImU8String text2 = new ImU8String(0, 1);
|
||||
text2.AppendFormatted(SeIconChar.QuestSync.ToIconString());
|
||||
|
|
@ -642,16 +576,11 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text3.AppendFormatted((remainingAllowances == 1) ? "allowance" : "allowances");
|
||||
ImGui.TextUnformatted(text3);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
ImGui.TextColored(ImGuiColors.DalamudGrey3, "All can be completed today");
|
||||
}
|
||||
else
|
||||
{
|
||||
ColorDisposable val = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange, true);
|
||||
try
|
||||
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudOrange))
|
||||
{
|
||||
ImU8String text4 = new ImU8String(0, 1);
|
||||
text4.AppendFormatted(SeIconChar.Cross.ToIconString());
|
||||
|
|
@ -663,10 +592,6 @@ internal sealed class AlliedSocietyJournalComponent
|
|||
text5.AppendLiteral(")");
|
||||
ImGui.TextUnformatted(text5);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
ImGui.TextColored(ImGuiColors.DalamudGrey3, "Some quests won't be completable until tomorrow");
|
||||
}
|
||||
ImGui.EndTooltip();
|
||||
|
|
|
|||
|
|
@ -62,60 +62,42 @@ internal sealed class DutyJournalComponent
|
|||
|
||||
public void DrawDuties()
|
||||
{
|
||||
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
|
||||
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Duties");
|
||||
try
|
||||
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Duties");
|
||||
if (!tabItemDisposable)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
}
|
||||
if (ImGui.CollapsingHeader("Explanation", ImGuiTreeNodeFlags.DefaultOpen))
|
||||
{
|
||||
ImGui.Text("The list below shows all duties and their unlock status.");
|
||||
ImGui.BulletText("'Unlocked' shows duties you have access to.");
|
||||
ImGui.BulletText("'Completed' shows duties you have finished at least once.");
|
||||
ImGui.BulletText("Click on a duty to see which quest unlocks it.");
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
}
|
||||
DrawFilterControls();
|
||||
if (_filteredCategories.Count > 0)
|
||||
{
|
||||
using (ImRaii.TableDisposable tableDisposable = ImRaii.Table("Duties", 3, ImGuiTableFlags.NoSavedSettings))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ImGui.CollapsingHeader("Explanation", ImGuiTreeNodeFlags.DefaultOpen))
|
||||
{
|
||||
ImGui.Text("The list below shows all duties and their unlock status.");
|
||||
ImGui.BulletText("'Unlocked' shows duties you have access to.");
|
||||
ImGui.BulletText("'Completed' shows duties you have finished at least once.");
|
||||
ImGui.BulletText("Click on a duty to see which quest unlocks it.");
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
}
|
||||
DrawFilterControls();
|
||||
if (_filteredCategories.Count > 0)
|
||||
{
|
||||
TableDisposable val2 = ImRaii.Table((ImU8String)"Duties", 3, ImGuiTableFlags.NoSavedSettings);
|
||||
try
|
||||
if (!tableDisposable)
|
||||
{
|
||||
if (!val2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Unlocked", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (DutyCategory filteredCategory in _filteredCategories)
|
||||
{
|
||||
DrawCategory(filteredCategory);
|
||||
}
|
||||
return;
|
||||
}
|
||||
finally
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Unlocked", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (DutyCategory filteredCategory in _filteredCategories)
|
||||
{
|
||||
((TableDisposable)(ref val2)).Dispose();
|
||||
DrawCategory(filteredCategory);
|
||||
}
|
||||
return;
|
||||
}
|
||||
ImGui.Text("No duties match your search.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TabItemDisposable)(ref val)).Dispose();
|
||||
}
|
||||
ImGui.Text("No duties match your search.");
|
||||
}
|
||||
|
||||
private void DrawFilterControls()
|
||||
|
|
@ -192,78 +174,69 @@ internal sealed class DutyJournalComponent
|
|||
|
||||
private void DrawDutyTooltip(DutyInfo duty)
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
|
||||
TooltipDisposable val = ImRaii.Tooltip();
|
||||
try
|
||||
using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip();
|
||||
if (!tooltipDisposable.Alive)
|
||||
{
|
||||
if (!((TooltipDisposable)(ref val)).Alive)
|
||||
return;
|
||||
}
|
||||
ImGui.TextColored(ImGuiColors.DalamudWhite, duty.Name);
|
||||
Vector4 col = ImGuiColors.DalamudGrey;
|
||||
ImU8String text = new ImU8String(12, 1);
|
||||
text.AppendLiteral("Content ID: ");
|
||||
text.AppendFormatted(duty.ContentFinderConditionId);
|
||||
ImGui.TextColored(in col, text);
|
||||
ImGui.Separator();
|
||||
ImU8String text2 = new ImU8String(16, 1);
|
||||
text2.AppendLiteral("Level Required: ");
|
||||
text2.AppendFormatted(duty.Level);
|
||||
ImGui.Text(text2);
|
||||
if (duty.ItemLevel > 0)
|
||||
{
|
||||
ImU8String text3 = new ImU8String(21, 1);
|
||||
text3.AppendLiteral("Item Level Required: ");
|
||||
text3.AppendFormatted(duty.ItemLevel);
|
||||
ImGui.Text(text3);
|
||||
}
|
||||
ImU8String text4 = new ImU8String(6, 1);
|
||||
text4.AppendLiteral("Type: ");
|
||||
text4.AppendFormatted(duty.ContentTypeName);
|
||||
ImGui.Text(text4);
|
||||
if (duty.IsHighEndDuty)
|
||||
{
|
||||
ImGui.SameLine();
|
||||
ImGui.TextColored(ImGuiColors.DalamudOrange, "(High-End)");
|
||||
}
|
||||
ImGui.Separator();
|
||||
if (duty.IsUnlocked)
|
||||
{
|
||||
ImGui.TextColored(ImGuiColors.ParsedGreen, "Status: Unlocked");
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.TextColored(ImGuiColors.DalamudRed, "Status: Locked");
|
||||
}
|
||||
if (duty.UnlockQuests.Count > 0)
|
||||
{
|
||||
ImGui.Separator();
|
||||
ImGui.Text("Unlock Quest(s):");
|
||||
{
|
||||
foreach (QuestId unlockQuest in duty.UnlockQuests)
|
||||
{
|
||||
if (_questData.TryGetQuestInfo(unlockQuest, out IQuestInfo questInfo))
|
||||
{
|
||||
var (color, icon, _) = _uiUtils.GetQuestStyle(unlockQuest);
|
||||
_uiUtils.ChecklistItem($"{questInfo.Name} ({unlockQuest})", color, icon);
|
||||
}
|
||||
else
|
||||
{
|
||||
_uiUtils.ChecklistItem($"Unknown Quest ({unlockQuest})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
ImGui.TextColored(ImGuiColors.DalamudWhite, duty.Name);
|
||||
Vector4 col = ImGuiColors.DalamudGrey;
|
||||
ImU8String text = new ImU8String(12, 1);
|
||||
text.AppendLiteral("Content ID: ");
|
||||
text.AppendFormatted(duty.ContentFinderConditionId);
|
||||
ImGui.TextColored(in col, text);
|
||||
ImGui.Separator();
|
||||
ImU8String text2 = new ImU8String(16, 1);
|
||||
text2.AppendLiteral("Level Required: ");
|
||||
text2.AppendFormatted(duty.Level);
|
||||
ImGui.Text(text2);
|
||||
if (duty.ItemLevel > 0)
|
||||
{
|
||||
ImU8String text3 = new ImU8String(21, 1);
|
||||
text3.AppendLiteral("Item Level Required: ");
|
||||
text3.AppendFormatted(duty.ItemLevel);
|
||||
ImGui.Text(text3);
|
||||
}
|
||||
ImU8String text4 = new ImU8String(6, 1);
|
||||
text4.AppendLiteral("Type: ");
|
||||
text4.AppendFormatted(duty.ContentTypeName);
|
||||
ImGui.Text(text4);
|
||||
if (duty.IsHighEndDuty)
|
||||
{
|
||||
ImGui.SameLine();
|
||||
ImGui.TextColored(ImGuiColors.DalamudOrange, "(High-End)");
|
||||
}
|
||||
ImGui.Separator();
|
||||
if (duty.IsUnlocked)
|
||||
{
|
||||
ImGui.TextColored(ImGuiColors.ParsedGreen, "Status: Unlocked");
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.TextColored(ImGuiColors.DalamudRed, "Status: Locked");
|
||||
}
|
||||
if (duty.UnlockQuests.Count > 0)
|
||||
{
|
||||
ImGui.Separator();
|
||||
ImGui.Text("Unlock Quest(s):");
|
||||
{
|
||||
foreach (QuestId unlockQuest in duty.UnlockQuests)
|
||||
{
|
||||
if (_questData.TryGetQuestInfo(unlockQuest, out IQuestInfo questInfo))
|
||||
{
|
||||
var (color, icon, _) = _uiUtils.GetQuestStyle(unlockQuest);
|
||||
_uiUtils.ChecklistItem($"{questInfo.Name} ({unlockQuest})", color, icon);
|
||||
}
|
||||
else
|
||||
{
|
||||
_uiUtils.ChecklistItem($"Unknown Quest ({unlockQuest})", ImGuiColors.DalamudGrey, FontAwesomeIcon.Question);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
ImGui.Separator();
|
||||
ImGui.TextColored(ImGuiColors.DalamudGrey, "No unlock quest data available.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TooltipDisposable)(ref val)).Dispose();
|
||||
}
|
||||
ImGui.Separator();
|
||||
ImGui.TextColored(ImGuiColors.DalamudGrey, "No unlock quest data available.");
|
||||
}
|
||||
|
||||
private void DrawDutyStatus(bool? status)
|
||||
|
|
|
|||
|
|
@ -202,54 +202,36 @@ internal sealed class GatheringJournalComponent
|
|||
|
||||
public void DrawGatheringItems()
|
||||
{
|
||||
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
|
||||
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Gathering Points");
|
||||
try
|
||||
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Gathering Points");
|
||||
if (!tabItemDisposable)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
}
|
||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||
if (ImGui.InputTextWithHint(string.Empty, "Search areas, gathering points and items", ref _searchText, 256))
|
||||
{
|
||||
UpdateFilter();
|
||||
}
|
||||
if (_filteredExpansions.Count > 0)
|
||||
{
|
||||
using (ImRaii.TableDisposable tableDisposable = ImRaii.Table("GatheringPoints", 3, ImGuiTableFlags.NoSavedSettings))
|
||||
{
|
||||
return;
|
||||
}
|
||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||
if (ImGui.InputTextWithHint(string.Empty, "Search areas, gathering points and items", ref _searchText, 256))
|
||||
{
|
||||
UpdateFilter();
|
||||
}
|
||||
if (_filteredExpansions.Count > 0)
|
||||
{
|
||||
TableDisposable val2 = ImRaii.Table((ImU8String)"GatheringPoints", 3, ImGuiTableFlags.NoSavedSettings);
|
||||
try
|
||||
if (!tableDisposable)
|
||||
{
|
||||
if (!val2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 100f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Collected", ImGuiTableColumnFlags.WidthFixed, 100f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (FilteredExpansion filteredExpansion in _filteredExpansions)
|
||||
{
|
||||
DrawExpansion(filteredExpansion);
|
||||
}
|
||||
return;
|
||||
}
|
||||
finally
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 100f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Collected", ImGuiTableColumnFlags.WidthFixed, 100f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (FilteredExpansion filteredExpansion in _filteredExpansions)
|
||||
{
|
||||
((TableDisposable)(ref val2)).Dispose();
|
||||
DrawExpansion(filteredExpansion);
|
||||
}
|
||||
return;
|
||||
}
|
||||
ImGui.Text("No area, gathering point or item matches your search text.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TabItemDisposable)(ref val)).Dispose();
|
||||
}
|
||||
ImGui.Text("No area, gathering point or item matches your search text.");
|
||||
}
|
||||
|
||||
private void DrawExpansion(FilteredExpansion expansion)
|
||||
|
|
|
|||
|
|
@ -119,84 +119,66 @@ internal sealed class QuestJournalComponent
|
|||
|
||||
public void DrawQuests()
|
||||
{
|
||||
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_016d: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0173: Unknown result type (might be due to invalid IL or missing references)
|
||||
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Quests");
|
||||
try
|
||||
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Quests");
|
||||
if (!tabItemDisposable)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
}
|
||||
bool hideSeasonalEventsFromJournalProgress = _configuration.General.HideSeasonalEventsFromJournalProgress;
|
||||
if (hideSeasonalEventsFromJournalProgress != _lastHideSeasonalGlobally)
|
||||
{
|
||||
_lastHideSeasonalGlobally = hideSeasonalEventsFromJournalProgress;
|
||||
_logger.LogDebug("Configuration change detected: HideSeasonalEventsFromJournalProgress={Hide} - refreshing journal", hideSeasonalEventsFromJournalProgress);
|
||||
UpdateFilter();
|
||||
}
|
||||
if (ImGui.CollapsingHeader("Explanation", ImGuiTreeNodeFlags.DefaultOpen))
|
||||
{
|
||||
ImGui.Text("The list below contains all quests that appear in your journal.");
|
||||
ImGui.BulletText("'Supported' lists quests that Questionable can do for you");
|
||||
ImGui.BulletText("'Completed' lists quests your current character has completed.");
|
||||
ImGui.BulletText("Not all quests can be completed even if they're listed as available, e.g. starting city quest chains or past seasonal events.");
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
}
|
||||
QuestJournalUtils.ShowFilterContextMenu(this);
|
||||
ImGui.SameLine();
|
||||
_questJournalUtils.AddAllAvailableQuests();
|
||||
ImGui.SameLine();
|
||||
if (ImGuiComponents.IconButton(FontAwesomeIcon.GlobeEurope))
|
||||
{
|
||||
Util.OpenLink("https://wigglymuffin.github.io/FFXIV-Tools/");
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("View All Quest Paths Online");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||
if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref Filter.SearchText, 256))
|
||||
{
|
||||
UpdateFilter();
|
||||
}
|
||||
if (_filteredSections.Count > 0)
|
||||
{
|
||||
using (ImRaii.TableDisposable tableDisposable = ImRaii.Table("Quests", 3, ImGuiTableFlags.NoSavedSettings))
|
||||
{
|
||||
return;
|
||||
}
|
||||
bool hideSeasonalEventsFromJournalProgress = _configuration.General.HideSeasonalEventsFromJournalProgress;
|
||||
if (hideSeasonalEventsFromJournalProgress != _lastHideSeasonalGlobally)
|
||||
{
|
||||
_lastHideSeasonalGlobally = hideSeasonalEventsFromJournalProgress;
|
||||
_logger.LogDebug("Configuration change detected: HideSeasonalEventsFromJournalProgress={Hide} - refreshing journal", hideSeasonalEventsFromJournalProgress);
|
||||
UpdateFilter();
|
||||
}
|
||||
if (ImGui.CollapsingHeader("Explanation", ImGuiTreeNodeFlags.DefaultOpen))
|
||||
{
|
||||
ImGui.Text("The list below contains all quests that appear in your journal.");
|
||||
ImGui.BulletText("'Supported' lists quests that Questionable can do for you");
|
||||
ImGui.BulletText("'Completed' lists quests your current character has completed.");
|
||||
ImGui.BulletText("Not all quests can be completed even if they're listed as available, e.g. starting city quest chains or past seasonal events.");
|
||||
ImGui.Spacing();
|
||||
ImGui.Separator();
|
||||
ImGui.Spacing();
|
||||
}
|
||||
QuestJournalUtils.ShowFilterContextMenu(this);
|
||||
ImGui.SameLine();
|
||||
_questJournalUtils.AddAllAvailableQuests();
|
||||
ImGui.SameLine();
|
||||
if (ImGuiComponents.IconButton(FontAwesomeIcon.GlobeEurope))
|
||||
{
|
||||
Util.OpenLink("https://wigglymuffin.github.io/FFXIV-Tools/");
|
||||
}
|
||||
if (ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip("View All Quest Paths Online");
|
||||
}
|
||||
ImGui.SameLine();
|
||||
ImGui.SetNextItemWidth(ImGui.GetContentRegionAvail().X);
|
||||
if (ImGui.InputTextWithHint(string.Empty, "Search quests and categories", ref Filter.SearchText, 256))
|
||||
{
|
||||
UpdateFilter();
|
||||
}
|
||||
if (_filteredSections.Count > 0)
|
||||
{
|
||||
TableDisposable val2 = ImRaii.Table((ImU8String)"Quests", 3, ImGuiTableFlags.NoSavedSettings);
|
||||
try
|
||||
if (!tableDisposable)
|
||||
{
|
||||
if (!val2)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (FilteredSection filteredSection in _filteredSections)
|
||||
{
|
||||
DrawSection(filteredSection);
|
||||
}
|
||||
return;
|
||||
}
|
||||
finally
|
||||
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.NoHide);
|
||||
ImGui.TableSetupColumn("Supported", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableSetupColumn("Completed", ImGuiTableColumnFlags.WidthFixed, 120f * ImGui.GetIO().FontGlobalScale);
|
||||
ImGui.TableHeadersRow();
|
||||
foreach (FilteredSection filteredSection in _filteredSections)
|
||||
{
|
||||
((TableDisposable)(ref val2)).Dispose();
|
||||
DrawSection(filteredSection);
|
||||
}
|
||||
return;
|
||||
}
|
||||
ImGui.Text("No quest or category matches your search.");
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TabItemDisposable)(ref val)).Dispose();
|
||||
}
|
||||
ImGui.Text("No quest or category matches your search.");
|
||||
}
|
||||
|
||||
private void DrawSection(FilteredSection filter)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
|
|
@ -45,9 +44,6 @@ internal sealed class QuestJournalUtils
|
|||
|
||||
public void ShowContextMenu(IQuestInfo questInfo, Quest? quest, string label)
|
||||
{
|
||||
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
|
||||
if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
|
||||
{
|
||||
ImU8String strId = new ImU8String(12, 1);
|
||||
|
|
@ -55,90 +51,68 @@ internal sealed class QuestJournalUtils
|
|||
strId.AppendFormatted(questInfo.QuestId);
|
||||
ImGui.OpenPopup(strId);
|
||||
}
|
||||
ImU8String imU8String = new ImU8String(12, 1);
|
||||
imU8String.AppendLiteral("##QuestPopup");
|
||||
imU8String.AppendFormatted(questInfo.QuestId);
|
||||
PopupDisposable val = ImRaii.Popup(imU8String);
|
||||
try
|
||||
ImU8String id = new ImU8String(12, 1);
|
||||
id.AppendLiteral("##QuestPopup");
|
||||
id.AppendFormatted(questInfo.QuestId);
|
||||
using ImRaii.PopupDisposable popupDisposable = ImRaii.Popup(id);
|
||||
if (!popupDisposable)
|
||||
{
|
||||
if (!val)
|
||||
return;
|
||||
}
|
||||
using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) || quest == null || quest.Root.Disabled))
|
||||
{
|
||||
if (ImGui.MenuItem("Start as next quest"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
DisabledDisposable val2 = ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) || quest == null || quest.Root.Disabled);
|
||||
try
|
||||
{
|
||||
if (ImGui.MenuItem("Start as next quest"))
|
||||
{
|
||||
_questController.SetNextQuest(quest);
|
||||
_questController.Start(label);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val2)?.Dispose();
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
if (!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))
|
||||
{
|
||||
ImGui.SetTooltip("Quest is not ready to accept");
|
||||
}
|
||||
else if (quest == null)
|
||||
{
|
||||
ImGui.SetTooltip("Quest has no path available");
|
||||
}
|
||||
else if (quest.Root.Disabled)
|
||||
{
|
||||
ImGui.SetTooltip("Quest path is disabled");
|
||||
}
|
||||
}
|
||||
List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo);
|
||||
val2 = ImRaii.Disabled(incompletePrerequisiteQuests.Count == 0);
|
||||
try
|
||||
{
|
||||
if (ImGui.MenuItem(incompletePrerequisiteQuests.Count switch
|
||||
{
|
||||
0 => "Add quest and requirements to priority",
|
||||
1 => "Add 1 quest to priority",
|
||||
_ => $"Add {incompletePrerequisiteQuests.Count} quests to priority",
|
||||
}))
|
||||
{
|
||||
AddRequiredQuestsToPriority(questInfo, incompletePrerequisiteQuests);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val2)?.Dispose();
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
if (incompletePrerequisiteQuests.Count == 0)
|
||||
{
|
||||
ImGui.SetTooltip("No quests to add (quest may be complete, disabled, locked with no unlock path, or already in priority)");
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.SetTooltip((incompletePrerequisiteQuests.Count == 1) ? "Add this quest to the priority list" : $"Add this quest and {incompletePrerequisiteQuests.Count - 1} required {((incompletePrerequisiteQuests.Count - 1 == 1) ? "quest" : "quests")} to the priority list in completion order");
|
||||
}
|
||||
}
|
||||
bool flag = _commandManager.Commands.ContainsKey("/questinfo");
|
||||
val2 = ImRaii.Disabled(!(questInfo.QuestId is QuestId) || !flag);
|
||||
try
|
||||
{
|
||||
if (ImGui.MenuItem("View in Quest Map"))
|
||||
{
|
||||
_commandManager.ProcessCommand($"/questinfo {questInfo.QuestId}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val2)?.Dispose();
|
||||
_questController.SetNextQuest(quest);
|
||||
_questController.Start(label);
|
||||
}
|
||||
}
|
||||
finally
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
((PopupDisposable)(ref val)).Dispose();
|
||||
if (!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))
|
||||
{
|
||||
ImGui.SetTooltip("Quest is not ready to accept");
|
||||
}
|
||||
else if (quest == null)
|
||||
{
|
||||
ImGui.SetTooltip("Quest has no path available");
|
||||
}
|
||||
else if (quest.Root.Disabled)
|
||||
{
|
||||
ImGui.SetTooltip("Quest path is disabled");
|
||||
}
|
||||
}
|
||||
List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo);
|
||||
using (ImRaii.Disabled(incompletePrerequisiteQuests.Count == 0))
|
||||
{
|
||||
if (ImGui.MenuItem(incompletePrerequisiteQuests.Count switch
|
||||
{
|
||||
0 => "Add quest and requirements to priority",
|
||||
1 => "Add 1 quest to priority",
|
||||
_ => $"Add {incompletePrerequisiteQuests.Count} quests to priority",
|
||||
}))
|
||||
{
|
||||
AddRequiredQuestsToPriority(questInfo, incompletePrerequisiteQuests);
|
||||
}
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
if (incompletePrerequisiteQuests.Count == 0)
|
||||
{
|
||||
ImGui.SetTooltip("No quests to add (quest may be complete, disabled, locked with no unlock path, or already in priority)");
|
||||
}
|
||||
else
|
||||
{
|
||||
ImGui.SetTooltip((incompletePrerequisiteQuests.Count == 1) ? "Add this quest to the priority list" : $"Add this quest and {incompletePrerequisiteQuests.Count - 1} required {((incompletePrerequisiteQuests.Count - 1 == 1) ? "quest" : "quests")} to the priority list in completion order");
|
||||
}
|
||||
}
|
||||
bool flag = _commandManager.Commands.ContainsKey("/questinfo");
|
||||
using (ImRaii.Disabled(!(questInfo.QuestId is QuestId) || !flag))
|
||||
{
|
||||
if (ImGui.MenuItem("View in Quest Map"))
|
||||
{
|
||||
_commandManager.ProcessCommand($"/questinfo {questInfo.QuestId}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -259,9 +233,6 @@ internal sealed class QuestJournalUtils
|
|||
|
||||
internal static void ShowFilterContextMenu(QuestJournalComponent journalUi)
|
||||
{
|
||||
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
|
||||
if (ImGuiComponents.IconButton(FontAwesomeIcon.Filter))
|
||||
{
|
||||
ImGui.OpenPopup("QuestFilters");
|
||||
|
|
@ -270,40 +241,32 @@ internal sealed class QuestJournalUtils
|
|||
{
|
||||
ImGui.SetTooltip("Filter Options");
|
||||
}
|
||||
PopupDisposable val = ImRaii.Popup((ImU8String)"QuestFilters");
|
||||
try
|
||||
using ImRaii.PopupDisposable popupDisposable = ImRaii.Popup("QuestFilters");
|
||||
if (!(bool)popupDisposable)
|
||||
{
|
||||
if (!PopupDisposable.op_Implicit(val))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((0u | (ImGui.Checkbox("Available Only", ref journalUi.Filter.AvailableOnly) ? 1u : 0u) | (ImGui.Checkbox("Hide Without Quest Paths", ref journalUi.Filter.HideNoPaths) ? 1u : 0u) | (ImGui.Checkbox("Hide Unobtainable", ref journalUi.Filter.HideUnobtainable) ? 1u : 0u)) != 0)
|
||||
return;
|
||||
}
|
||||
if ((0u | (ImGui.Checkbox("Available Only", ref journalUi.Filter.AvailableOnly) ? 1u : 0u) | (ImGui.Checkbox("Hide Without Quest Paths", ref journalUi.Filter.HideNoPaths) ? 1u : 0u) | (ImGui.Checkbox("Hide Unobtainable", ref journalUi.Filter.HideUnobtainable) ? 1u : 0u)) != 0)
|
||||
{
|
||||
journalUi.UpdateFilter();
|
||||
}
|
||||
if (journalUi.Filter.AdvancedFiltersActive)
|
||||
{
|
||||
ImGui.Separator();
|
||||
if (ImGui.Button("Clear Filters"))
|
||||
{
|
||||
journalUi.Filter.AvailableOnly = false;
|
||||
journalUi.Filter.HideNoPaths = false;
|
||||
journalUi.Filter.HideUnobtainable = false;
|
||||
journalUi.UpdateFilter();
|
||||
}
|
||||
if (journalUi.Filter.AdvancedFiltersActive)
|
||||
{
|
||||
ImGui.Separator();
|
||||
if (ImGui.Button("Clear Filters"))
|
||||
{
|
||||
journalUi.Filter.AvailableOnly = false;
|
||||
journalUi.Filter.HideNoPaths = false;
|
||||
journalUi.Filter.HideUnobtainable = false;
|
||||
journalUi.UpdateFilter();
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((PopupDisposable)(ref val)).Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void AddAllAvailableQuests()
|
||||
{
|
||||
int num = _questRegistry.AllQuests.Count((Quest quest) => !quest.Root.Disabled && !_questFunctions.IsQuestRemoved(quest.Id) && _questFunctions.IsReadyToAcceptQuest(quest.Id) && !_questFunctions.IsQuestComplete(quest.Id) && !_questFunctions.IsQuestAccepted(quest.Id) && !quest.Info.IsRepeatable && quest.Info.AlliedSociety == EAlliedSociety.None && !(quest.Info is QuestInfo { MoogleDeliveryLevel: >0 }) && !_questController.ManualPriorityQuests.Any((Quest q) => q.Id.Equals(quest.Id)));
|
||||
DisabledDisposable val = ImRaii.Disabled(num == 0);
|
||||
try
|
||||
using (ImRaii.Disabled(num == 0))
|
||||
{
|
||||
if (ImGuiComponents.IconButton(FontAwesomeIcon.ListOl))
|
||||
{
|
||||
|
|
@ -312,10 +275,6 @@ internal sealed class QuestJournalUtils
|
|||
_chatGui.Print($"Added {num2} {value} to priority queue.", "Questionable", 576);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val)?.Dispose();
|
||||
}
|
||||
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
|
||||
{
|
||||
object obj;
|
||||
|
|
|
|||
|
|
@ -35,34 +35,22 @@ internal sealed class QuestRewardComponent
|
|||
|
||||
public void DrawItemRewards()
|
||||
{
|
||||
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
|
||||
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Item Rewards");
|
||||
try
|
||||
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Item Rewards");
|
||||
if (!(!tabItemDisposable))
|
||||
{
|
||||
if (!(!val))
|
||||
{
|
||||
ImGui.Checkbox("Show rewards from seasonal event quests", ref _showEventRewards);
|
||||
ImGui.Spacing();
|
||||
ImGui.BulletText("Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board).");
|
||||
DrawGroup("Mounts", EItemRewardType.Mount);
|
||||
DrawGroup("Minions", EItemRewardType.Minion);
|
||||
DrawGroup("Orchestrion Rolls", EItemRewardType.OrchestrionRoll);
|
||||
DrawGroup("Triple Triad Cards", EItemRewardType.TripleTriadCard);
|
||||
DrawGroup("Fashion Accessories", EItemRewardType.FashionAccessory);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TabItemDisposable)(ref val)).Dispose();
|
||||
ImGui.Checkbox("Show rewards from seasonal event quests", ref _showEventRewards);
|
||||
ImGui.Spacing();
|
||||
ImGui.BulletText("Only untradeable items are listed (e.g. the Wind-up Airship can be sold on the market board).");
|
||||
DrawGroup("Mounts", EItemRewardType.Mount);
|
||||
DrawGroup("Minions", EItemRewardType.Minion);
|
||||
DrawGroup("Orchestrion Rolls", EItemRewardType.OrchestrionRoll);
|
||||
DrawGroup("Triple Triad Cards", EItemRewardType.TripleTriadCard);
|
||||
DrawGroup("Fashion Accessories", EItemRewardType.FashionAccessory);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawGroup(string label, EItemRewardType type)
|
||||
{
|
||||
//IL_0175: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_017a: Unknown result type (might be due to invalid IL or missing references)
|
||||
ImU8String label2 = new ImU8String(9, 2);
|
||||
label2.AppendFormatted(label);
|
||||
label2.AppendLiteral("###Reward");
|
||||
|
|
@ -94,30 +82,18 @@ internal sealed class QuestRewardComponent
|
|||
{
|
||||
continue;
|
||||
}
|
||||
TooltipDisposable val = ImRaii.Tooltip();
|
||||
try
|
||||
using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip();
|
||||
if (tooltipDisposable.Alive)
|
||||
{
|
||||
if (((TooltipDisposable)(ref val)).Alive)
|
||||
ImU8String text2 = new ImU8String(15, 1);
|
||||
text2.AppendLiteral("Obtained from: ");
|
||||
text2.AppendFormatted(questInfo.Name);
|
||||
ImGui.Text(text2);
|
||||
using (ImRaii.PushIndent())
|
||||
{
|
||||
ImU8String text2 = new ImU8String(15, 1);
|
||||
text2.AppendLiteral("Obtained from: ");
|
||||
text2.AppendFormatted(questInfo.Name);
|
||||
ImGui.Text(text2);
|
||||
IndentDisposable val2 = ImRaii.PushIndent(1, true);
|
||||
try
|
||||
{
|
||||
_questTooltipComponent.DrawInner(questInfo, showItemRewards: false);
|
||||
}
|
||||
finally
|
||||
{
|
||||
((IDisposable)val2)?.Dispose();
|
||||
}
|
||||
_questTooltipComponent.DrawInner(questInfo, showItemRewards: false);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
((TooltipDisposable)(ref val)).Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue