muffin v7.5.1
This commit is contained in:
parent
a6481e7b9a
commit
965a736f84
59 changed files with 4112 additions and 5059 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue