muffin v7.5.1

This commit is contained in:
alydev 2026-05-01 08:59:48 +10:00
parent a6481e7b9a
commit 965a736f84
59 changed files with 4112 additions and 5059 deletions

View file

@ -289,576 +289,431 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
public override void DrawTab()
{
//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_0135: Unknown result type (might be due to invalid IL or missing references)
//IL_013a: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
TabItemDisposable val = ImRaii.TabItem((ImU8String)"Quest Battles###QuestBattles");
try
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem("Quest Battles###QuestBattles");
if (!tabItemDisposable)
{
if (!val)
return;
}
bool v = base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod;
if (ImGui.Checkbox("Run quest battles with BossMod", ref v))
{
base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod = v;
Save();
}
using (ImRaii.PushIndent(ImGui.GetFrameHeight() + ImGui.GetStyle().ItemInnerSpacing.X))
{
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed))
{
return;
}
bool v = base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod;
if (ImGui.Checkbox("Run quest battles with BossMod", ref v))
{
base.Configuration.SinglePlayerDuties.RunSoloInstancesWithBossMod = v;
Save();
}
IndentDisposable val2 = ImRaii.PushIndent(ImGui.GetFrameHeight() + ImGui.GetStyle().ItemInnerSpacing.X, true, true);
try
{
ColorDisposable val3 = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed, true);
try
{
ImGui.TextUnformatted("Work in Progress:");
ImGui.BulletText("Will always use BossMod for combat (ignoring the configured combat module).");
ImGui.BulletText("Only a small subset of quest battles have been tested - most of which are in the MSQ.");
ImGui.BulletText("When retrying a failed battle, it will always start at 'Normal' difficulty.");
ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the missing combat module configuration, it is unlikely to be compatible.");
}
finally
{
((IDisposable)val3)?.Dispose();
}
}
finally
{
((IDisposable)val2)?.Dispose();
}
ImGui.Separator();
DisabledDisposable val4 = ImRaii.Disabled(!v);
try
{
ImGui.Text("Questionable includes a default list of quest battles that work if BossMod is installed.");
ImGui.Text("The included list of quest battles can change with each update.");
ImGui.Separator();
ImGui.Text("You can override the settings for each individual quest battle:");
TabBarDisposable val5 = ImRaii.TabBar((ImU8String)"QuestionableConfigTabs");
try
{
if (TabBarDisposable.op_Implicit(val5))
{
DrawMainScenarioConfigTable();
DrawJobQuestConfigTable();
DrawRoleQuestConfigTable();
DrawOtherQuestConfigTable();
}
DrawEnableAllButton();
ImGui.SameLine();
DrawClipboardButtons();
ImGui.SameLine();
DrawResetButton();
}
finally
{
((TabBarDisposable)(ref val5)).Dispose();
}
}
finally
{
((IDisposable)val4)?.Dispose();
ImGui.TextUnformatted("Work in Progress:");
ImGui.BulletText("Will always use BossMod for combat (ignoring the configured combat module).");
ImGui.BulletText("Only a small subset of quest battles have been tested - most of which are in the MSQ.");
ImGui.BulletText("When retrying a failed battle, it will always start at 'Normal' difficulty.");
ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the missing combat module configuration, it is unlikely to be compatible.");
}
}
finally
ImGui.Separator();
using (ImRaii.Disabled(!v))
{
((TabItemDisposable)(ref val)).Dispose();
ImGui.Text("Questionable includes a default list of quest battles that work if BossMod is installed.");
ImGui.Text("The included list of quest battles can change with each update.");
ImGui.Separator();
ImGui.Text("You can override the settings for each individual quest battle:");
using ImRaii.TabBarDisposable tabBarDisposable = ImRaii.TabBar("QuestionableConfigTabs");
if ((bool)tabBarDisposable)
{
DrawMainScenarioConfigTable();
DrawJobQuestConfigTable();
DrawRoleQuestConfigTable();
DrawOtherQuestConfigTable();
}
DrawEnableAllButton();
ImGui.SameLine();
DrawClipboardButtons();
ImGui.SameLine();
DrawResetButton();
}
}
private void DrawMainScenarioConfigTable()
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
(int enabledCount, int totalCount) mainScenarioQuestCounts = GetMainScenarioQuestCounts();
int item = mainScenarioQuestCounts.enabledCount;
int item2 = mainScenarioQuestCounts.totalCount;
ImU8String imU8String = new ImU8String(30, 2);
imU8String.AppendLiteral("Main Scenario Quests (");
imU8String.AppendFormatted(item);
imU8String.AppendLiteral("/");
imU8String.AppendFormatted(item2);
imU8String.AppendLiteral(")###MSQ");
TabItemDisposable val = ImRaii.TabItem(imU8String);
try
ImU8String label = new ImU8String(30, 2);
label.AppendLiteral("Main Scenario Quests (");
label.AppendFormatted(item);
label.AppendLiteral("/");
label.AppendFormatted(item2);
label.AppendLiteral(")###MSQ");
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem(label);
if (!tabItemDisposable)
{
if (!val)
{
return;
}
ChildDisposable val2 = BeginChildArea();
try
{
if (!val2)
{
return;
}
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Limsa]);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"Limsa Lominsa ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)}) ({item3}/{item4})";
string key = "Limsa";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable("LimsaLominsa", _startingCityBattles[EAetheryteLocation.Limsa]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
(int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Gridania]);
int item5 = questBattleCounts2.enabledCount;
int item6 = questBattleCounts2.totalCount;
string obj2 = $"Gridania ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)}) ({item5}/{item6})";
string key2 = "Gridania";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj2))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = true;
Save();
}
DrawQuestTable("Gridania", _startingCityBattles[EAetheryteLocation.Gridania]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = false;
Save();
}
(int enabledCount, int totalCount) questBattleCounts3 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Uldah]);
int item7 = questBattleCounts3.enabledCount;
int item8 = questBattleCounts3.totalCount;
string obj3 = $"Ul'dah ({ConfigComponent.FormatLevel(4)} - {ConfigComponent.FormatLevel(14)}) ({item7}/{item8})";
string key3 = "Uldah";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj3))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key3] = true;
Save();
}
DrawQuestTable("Uldah", _startingCityBattles[EAetheryteLocation.Uldah]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key3] = false;
Save();
}
EExpansionVersion[] values = Enum.GetValues<EExpansionVersion>();
for (int i = 0; i < values.Length; i++)
{
EExpansionVersion eExpansionVersion = values[i];
if (!_mainScenarioBattles.TryGetValue(eExpansionVersion, out List<SinglePlayerDutyInfo> value))
{
continue;
}
(int enabledCount, int totalCount) questBattleCounts4 = GetQuestBattleCounts(value);
int item9 = questBattleCounts4.enabledCount;
int item10 = questBattleCounts4.totalCount;
string obj4 = $"{eExpansionVersion.ToFriendlyString()} ({item9}/{item10})";
string key4 = eExpansionVersion.ToString();
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj4))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key4] = true;
Save();
}
DrawQuestTable($"Duties{eExpansionVersion}", value);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key4] = false;
Save();
}
}
}
finally
{
((ChildDisposable)(ref val2)).Dispose();
}
return;
}
finally
using ImRaii.ChildDisposable childDisposable = BeginChildArea();
if (!childDisposable)
{
((TabItemDisposable)(ref val)).Dispose();
return;
}
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Limsa]);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"Limsa Lominsa ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)}) ({item3}/{item4})";
string key = "Limsa";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable("LimsaLominsa", _startingCityBattles[EAetheryteLocation.Limsa]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
(int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Gridania]);
int item5 = questBattleCounts2.enabledCount;
int item6 = questBattleCounts2.totalCount;
string obj2 = $"Gridania ({ConfigComponent.FormatLevel(5)} - {ConfigComponent.FormatLevel(14)}) ({item5}/{item6})";
string key2 = "Gridania";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj2))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = true;
Save();
}
DrawQuestTable("Gridania", _startingCityBattles[EAetheryteLocation.Gridania]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = false;
Save();
}
(int enabledCount, int totalCount) questBattleCounts3 = GetQuestBattleCounts(_startingCityBattles[EAetheryteLocation.Uldah]);
int item7 = questBattleCounts3.enabledCount;
int item8 = questBattleCounts3.totalCount;
string obj3 = $"Ul'dah ({ConfigComponent.FormatLevel(4)} - {ConfigComponent.FormatLevel(14)}) ({item7}/{item8})";
string key3 = "Uldah";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj3))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key3] = true;
Save();
}
DrawQuestTable("Uldah", _startingCityBattles[EAetheryteLocation.Uldah]);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key3, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key3] = false;
Save();
}
EExpansionVersion[] values = Enum.GetValues<EExpansionVersion>();
for (int i = 0; i < values.Length; i++)
{
EExpansionVersion eExpansionVersion = values[i];
if (!_mainScenarioBattles.TryGetValue(eExpansionVersion, out List<SinglePlayerDutyInfo> value))
{
continue;
}
(int enabledCount, int totalCount) questBattleCounts4 = GetQuestBattleCounts(value);
int item9 = questBattleCounts4.enabledCount;
int item10 = questBattleCounts4.totalCount;
string obj4 = $"{eExpansionVersion.ToFriendlyString()} ({item9}/{item10})";
string key4 = eExpansionVersion.ToString();
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj4))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key4] = true;
Save();
}
DrawQuestTable($"Duties{eExpansionVersion}", value);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key4, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key4] = false;
Save();
}
}
}
private void DrawJobQuestConfigTable()
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
(int enabledCount, int totalCount) jobQuestCounts = GetJobQuestCounts();
int item = jobQuestCounts.enabledCount;
int item2 = jobQuestCounts.totalCount;
ImU8String imU8String = new ImU8String(32, 2);
imU8String.AppendLiteral("Class/Job Quests (");
imU8String.AppendFormatted(item);
imU8String.AppendLiteral("/");
imU8String.AppendFormatted(item2);
imU8String.AppendLiteral(")###JobQuests");
TabItemDisposable val = ImRaii.TabItem(imU8String);
try
ImU8String label = new ImU8String(32, 2);
label.AppendLiteral("Class/Job Quests (");
label.AppendFormatted(item);
label.AppendLiteral("/");
label.AppendFormatted(item2);
label.AppendLiteral(")###JobQuests");
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem(label);
if (!tabItemDisposable)
{
if (!val)
{
return;
}
ChildDisposable val2 = BeginChildArea();
try
{
if (!val2)
{
return;
}
int num = 0;
foreach (var (eClassJob, num2) in _classJobUtils.SortedClassJobs)
{
if (eClassJob.IsCrafter() || eClassJob.IsGatherer() || !_jobQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value))
{
continue;
}
if (num2 != num)
{
num = num2;
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
}
string text = eClassJob.ToFriendlyString();
if (eClassJob.IsClass())
{
text = text + " / " + eClassJob.AsJob().ToFriendlyString();
}
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"{text} ({item3}/{item4})";
string key = eClassJob.ToString();
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable($"JobQuests{eClassJob}", value);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
}
finally
{
((ChildDisposable)(ref val2)).Dispose();
}
return;
}
finally
using ImRaii.ChildDisposable childDisposable = BeginChildArea();
if (!childDisposable)
{
((TabItemDisposable)(ref val)).Dispose();
return;
}
int num = 0;
foreach (var (eClassJob, num2) in _classJobUtils.SortedClassJobs)
{
if (eClassJob.IsCrafter() || eClassJob.IsGatherer() || !_jobQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value))
{
continue;
}
if (num2 != num)
{
num = num2;
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
}
string text = eClassJob.ToFriendlyString();
if (eClassJob.IsClass())
{
text = text + " / " + eClassJob.AsJob().ToFriendlyString();
}
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"{text} ({item3}/{item4})";
string key = eClassJob.ToString();
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable($"JobQuests{eClassJob}", value);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
}
private void DrawRoleQuestConfigTable()
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
(int enabledCount, int totalCount) roleQuestCounts = GetRoleQuestCounts();
int item = roleQuestCounts.enabledCount;
int item2 = roleQuestCounts.totalCount;
ImU8String imU8String = new ImU8String(28, 2);
imU8String.AppendLiteral("Role Quests (");
imU8String.AppendFormatted(item);
imU8String.AppendLiteral("/");
imU8String.AppendFormatted(item2);
imU8String.AppendLiteral(")###RoleQuests");
TabItemDisposable val = ImRaii.TabItem(imU8String);
try
ImU8String label = new ImU8String(28, 2);
label.AppendLiteral("Role Quests (");
label.AppendFormatted(item);
label.AppendLiteral("/");
label.AppendFormatted(item2);
label.AppendLiteral(")###RoleQuests");
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem(label);
if (!tabItemDisposable)
{
if (!val)
return;
}
using ImRaii.ChildDisposable childDisposable = BeginChildArea();
if (!childDisposable)
{
return;
}
foreach (var (eClassJob, value) in RoleQuestCategories)
{
if (!_roleQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value2))
{
return;
continue;
}
ChildDisposable val2 = BeginChildArea();
try
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value2);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"{value} ({item3}/{item4})";
string key = $"Role_{eClassJob}";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!val2)
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
return;
}
foreach (var (eClassJob, value) in RoleQuestCategories)
{
if (!_roleQuestBattles.TryGetValue(eClassJob, out List<SinglePlayerDutyInfo> value2))
{
continue;
}
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(value2);
int item3 = questBattleCounts.enabledCount;
int item4 = questBattleCounts.totalCount;
string obj = $"{value} ({item3}/{item4})";
string key = $"Role_{eClassJob}";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable($"RoleQuests{eClassJob}", value2);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
(int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_otherRoleQuestBattles);
int item5 = questBattleCounts2.enabledCount;
int item6 = questBattleCounts2.totalCount;
string obj2 = $"General Role Quests ({item5}/{item6})";
string key2 = "Role_General";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj2))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = true;
Save();
}
DrawQuestTable("RoleQuestsGeneral", _otherRoleQuestBattles);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = false;
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable($"RoleQuests{eClassJob}", value2);
}
finally
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
((ChildDisposable)(ref val2)).Dispose();
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
finally
(int enabledCount, int totalCount) questBattleCounts2 = GetQuestBattleCounts(_otherRoleQuestBattles);
int item5 = questBattleCounts2.enabledCount;
int item6 = questBattleCounts2.totalCount;
string obj2 = $"General Role Quests ({item5}/{item6})";
string key2 = "Role_General";
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj2))
{
((TabItemDisposable)(ref val)).Dispose();
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = true;
Save();
}
DrawQuestTable("RoleQuestsGeneral", _otherRoleQuestBattles);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key2, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key2] = false;
Save();
}
}
private void DrawOtherQuestConfigTable()
{
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_006b: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
(int enabledCount, int totalCount) otherQuestCounts = GetOtherQuestCounts();
int item = otherQuestCounts.enabledCount;
int item2 = otherQuestCounts.totalCount;
ImU8String imU8String = new ImU8String(29, 2);
imU8String.AppendLiteral("Other Quests (");
imU8String.AppendFormatted(item);
imU8String.AppendLiteral("/");
imU8String.AppendFormatted(item2);
imU8String.AppendLiteral(")###MiscQuests");
TabItemDisposable val = ImRaii.TabItem(imU8String);
try
ImU8String label = new ImU8String(29, 2);
label.AppendLiteral("Other Quests (");
label.AppendFormatted(item);
label.AppendLiteral("/");
label.AppendFormatted(item2);
label.AppendLiteral(")###MiscQuests");
using ImRaii.TabItemDisposable tabItemDisposable = ImRaii.TabItem(label);
if (!tabItemDisposable)
{
if (!val)
{
return;
}
ChildDisposable val2 = BeginChildArea();
try
{
if (!val2)
{
return;
}
foreach (var otherQuestBattle in _otherQuestBattles)
{
string item3 = otherQuestBattle.Label;
List<SinglePlayerDutyInfo> item4 = otherQuestBattle.Item2;
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(item4);
int item5 = questBattleCounts.enabledCount;
int item6 = questBattleCounts.totalCount;
string obj = $"{item3} ({item5}/{item6})";
string key = "Other_" + item3;
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable("Other" + item3, item4);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
}
finally
{
((ChildDisposable)(ref val2)).Dispose();
}
return;
}
finally
using ImRaii.ChildDisposable childDisposable = BeginChildArea();
if (!childDisposable)
{
((TabItemDisposable)(ref val)).Dispose();
return;
}
foreach (var otherQuestBattle in _otherQuestBattles)
{
string item3 = otherQuestBattle.Label;
List<SinglePlayerDutyInfo> item4 = otherQuestBattle.Item2;
(int enabledCount, int totalCount) questBattleCounts = GetQuestBattleCounts(item4);
int item5 = questBattleCounts.enabledCount;
int item6 = questBattleCounts.totalCount;
string obj = $"{item3} ({item5}/{item6})";
string key = "Other_" + item3;
ImGui.SetNextItemOpen(base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false), ImGuiCond.Always);
if (ImGui.CollapsingHeader(obj))
{
if (!base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = true;
Save();
}
DrawQuestTable("Other" + item3, item4);
}
else if (base.Configuration.SinglePlayerDuties.HeaderStates.GetValueOrDefault(key, defaultValue: false))
{
base.Configuration.SinglePlayerDuties.HeaderStates[key] = false;
Save();
}
}
}
private void DrawQuestTable(string label, IReadOnlyList<SinglePlayerDutyInfo> dutyInfos)
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
TableDisposable val = ImRaii.Table((ImU8String)label, 2, ImGuiTableFlags.SizingFixedFit);
try
using ImRaii.TableDisposable tableDisposable = ImRaii.Table(label, 2, ImGuiTableFlags.SizingFixedFit);
if (!(bool)tableDisposable)
{
if (!TableDisposable.op_Implicit(val))
{
return;
}
ImGui.TableSetupColumn("Quest", ImGuiTableColumnFlags.WidthStretch);
ImGui.TableSetupColumn("Options", ImGuiTableColumnFlags.WidthFixed, 200f);
foreach (SinglePlayerDutyInfo dutyInfo in dutyInfos)
{
ImGui.TableNextRow();
string[] array = (dutyInfo.EnabledByDefault ? SupportedCfcOptions : UnsupportedCfcOptions);
int currentItem = 0;
if (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId))
{
currentItem = 1;
}
if (base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId))
{
currentItem = 2;
}
if (ImGui.TableNextColumn())
{
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted(dutyInfo.Name);
if (ImGui.IsItemHovered() && base.Configuration.Advanced.AdditionalStatusInformation)
{
TooltipDisposable val2 = ImRaii.Tooltip();
try
{
if (((TooltipDisposable)(ref val2)).Alive)
{
ImGui.TextUnformatted(dutyInfo.Name);
ImGui.Separator();
ImU8String text = new ImU8String(13, 1);
text.AppendLiteral("TerritoryId: ");
text.AppendFormatted(dutyInfo.TerritoryId);
ImGui.BulletText(text);
ImU8String text2 = new ImU8String(26, 1);
text2.AppendLiteral("ContentFinderConditionId: ");
text2.AppendFormatted(dutyInfo.ContentFinderConditionId);
ImGui.BulletText(text2);
}
}
finally
{
((TooltipDisposable)(ref val2)).Dispose();
}
}
if (!dutyInfo.Enabled)
{
ImGuiComponents.HelpMarker("Questionable doesn't include support for this quest.", FontAwesomeIcon.Times, (Vector4?)ImGuiColors.DalamudRed);
}
else if (dutyInfo.Notes.Count > 0)
{
ConfigComponent.DrawNotes(dutyInfo.EnabledByDefault, dutyInfo.Notes);
}
}
if (!ImGui.TableNextColumn())
{
continue;
}
ImU8String imU8String = new ImU8String(6, 1);
imU8String.AppendLiteral("##Duty");
imU8String.AppendFormatted(dutyInfo.ContentFinderConditionId);
IdDisposable val3 = ImRaii.PushId(imU8String, true);
try
{
DisabledDisposable val4 = ImRaii.Disabled(!dutyInfo.Enabled);
try
{
ImGui.SetNextItemWidth(200f);
if (ImGui.Combo((ImU8String)string.Empty, ref currentItem, (ReadOnlySpan<string>)array, array.Length))
{
base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId);
base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId);
switch (currentItem)
{
case 1:
base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId);
break;
case 2:
base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId);
break;
}
Save();
}
}
finally
{
((IDisposable)val4)?.Dispose();
}
}
finally
{
((IDisposable)val3)?.Dispose();
}
}
return;
}
finally
ImGui.TableSetupColumn("Quest", ImGuiTableColumnFlags.WidthStretch);
ImGui.TableSetupColumn("Options", ImGuiTableColumnFlags.WidthFixed, 200f);
foreach (SinglePlayerDutyInfo dutyInfo in dutyInfos)
{
((TableDisposable)(ref val)).Dispose();
ImGui.TableNextRow();
string[] array = (dutyInfo.EnabledByDefault ? SupportedCfcOptions : UnsupportedCfcOptions);
int currentItem = 0;
if (base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId))
{
currentItem = 1;
}
if (base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Contains(dutyInfo.ContentFinderConditionId))
{
currentItem = 2;
}
if (ImGui.TableNextColumn())
{
ImGui.AlignTextToFramePadding();
ImGui.TextUnformatted(dutyInfo.Name);
if (ImGui.IsItemHovered() && base.Configuration.Advanced.AdditionalStatusInformation)
{
using ImRaii.TooltipDisposable tooltipDisposable = ImRaii.Tooltip();
if (tooltipDisposable.Alive)
{
ImGui.TextUnformatted(dutyInfo.Name);
ImGui.Separator();
ImU8String text = new ImU8String(13, 1);
text.AppendLiteral("TerritoryId: ");
text.AppendFormatted(dutyInfo.TerritoryId);
ImGui.BulletText(text);
ImU8String text2 = new ImU8String(26, 1);
text2.AppendLiteral("ContentFinderConditionId: ");
text2.AppendFormatted(dutyInfo.ContentFinderConditionId);
ImGui.BulletText(text2);
}
}
if (!dutyInfo.Enabled)
{
ImGuiComponents.HelpMarker("Questionable doesn't include support for this quest.", FontAwesomeIcon.Times, ImGuiColors.DalamudRed);
}
else if (dutyInfo.Notes.Count > 0)
{
ConfigComponent.DrawNotes(dutyInfo.EnabledByDefault, dutyInfo.Notes);
}
}
if (!ImGui.TableNextColumn())
{
continue;
}
ImU8String id = new ImU8String(6, 1);
id.AppendLiteral("##Duty");
id.AppendFormatted(dutyInfo.ContentFinderConditionId);
using (ImRaii.PushId(id))
{
using (ImRaii.Disabled(!dutyInfo.Enabled))
{
ImGui.SetNextItemWidth(200f);
if (ImGui.Combo((ImU8String)string.Empty, ref currentItem, (ReadOnlySpan<string>)array, array.Length))
{
base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId);
base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Remove(dutyInfo.ContentFinderConditionId);
switch (currentItem)
{
case 1:
base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId);
break;
case 2:
base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Add(dutyInfo.ContentFinderConditionId);
break;
}
Save();
}
}
}
}
}
private static ChildDisposable BeginChildArea()
private static ImRaii.ChildDisposable BeginChildArea()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
return ImRaii.Child((ImU8String)"DutyConfiguration", new Vector2(725f, 400f), true);
return ImRaii.Child("DutyConfiguration", new Vector2(725f, 400f), border: true);
}
private void DrawEnableAllButton()
@ -881,8 +736,7 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
private void DrawClipboardButtons()
{
DisabledDisposable val = ImRaii.Disabled(base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Count + base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Count == 0);
try
using (ImRaii.Disabled(base.Configuration.SinglePlayerDuties.WhitelistedSinglePlayerDutyCfcIds.Count + base.Configuration.SinglePlayerDuties.BlacklistedSinglePlayerDutyCfcIds.Count == 0))
{
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Copy, "Export to clipboard"))
{
@ -891,14 +745,9 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
ImGui.SetClipboardText("qst:single:" + Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Join(";", first.Concat(second)))));
}
}
finally
{
((IDisposable)val)?.Dispose();
}
ImGui.SameLine();
string text = ImGui.GetClipboardText().Trim();
val = ImRaii.Disabled(string.IsNullOrEmpty(text) || !text.StartsWith("qst:single:", StringComparison.InvariantCulture));
try
using (ImRaii.Disabled(string.IsNullOrEmpty(text) || !text.StartsWith("qst:single:", StringComparison.InvariantCulture)))
{
if (!ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Paste, "Import from Clipboard"))
{
@ -922,16 +771,11 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
}
Save();
}
finally
{
((IDisposable)val)?.Dispose();
}
}
private void DrawResetButton()
{
DisabledDisposable val = ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl));
try
using (ImRaii.Disabled(!ImGui.IsKeyDown(ImGuiKey.ModCtrl)))
{
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Undo, "Reset to default"))
{
@ -940,10 +784,6 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
Save();
}
}
finally
{
((IDisposable)val)?.Dispose();
}
if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled))
{
ImGui.SetTooltip("Hold CTRL to enable this button.");