using Dalamud.Bindings.ImGui; using Dalamud.Interface.Colors; using Dalamud.Interface.Components; using Dalamud.Interface.Utility.Raii; using Dalamud.Plugin; namespace Questionable.Windows.ConfigComponents; internal sealed class DebugConfigComponent : ConfigComponent { public DebugConfigComponent(IDalamudPluginInterface pluginInterface, Configuration configuration) : base(pluginInterface, configuration) { } public override void DrawTab() { using ImRaii.IEndObject endObject = ImRaii.TabItem("Advanced###Debug"); if (!endObject) { return; } ImGui.TextColored(ImGuiColors.DalamudRed, "Enabling any option here may cause unexpected behavior. Use at your own risk."); ImGui.Separator(); bool v = base.Configuration.Advanced.DebugOverlay; if (ImGui.Checkbox("Enable debug overlay", ref v)) { base.Configuration.Advanced.DebugOverlay = v; Save(); } using (ImRaii.Disabled(!v)) { using (ImRaii.PushIndent()) { bool v2 = base.Configuration.Advanced.CombatDataOverlay; if (ImGui.Checkbox("Enable combat data overlay", ref v2)) { base.Configuration.Advanced.CombatDataOverlay = v2; Save(); } } } bool v3 = base.Configuration.Advanced.NeverFly; if (ImGui.Checkbox("Disable flying (even if unlocked for the zone)", ref v3)) { base.Configuration.Advanced.NeverFly = v3; Save(); } bool v4 = base.Configuration.Advanced.AdditionalStatusInformation; if (ImGui.Checkbox("Draw additional status information", ref v4)) { base.Configuration.Advanced.AdditionalStatusInformation = v4; Save(); } ImGui.Separator(); ImGui.Text("AutoDuty Settings"); using (ImRaii.PushIndent()) { ImGui.AlignTextToFramePadding(); bool v5 = base.Configuration.Advanced.DisableAutoDutyBareMode; if (ImGui.Checkbox("Use Pre-Loop/Loop/Post-Loop settings", ref v5)) { base.Configuration.Advanced.DisableAutoDutyBareMode = v5; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("Typically, the loop settings for AutoDuty are disabled when running dungeons with Questionable, since they can cause issues (or even shut down your PC)."); } ImGui.Separator(); ImGui.Text("Quest/Interaction Skips"); using (ImRaii.PushIndent()) { bool v6 = base.Configuration.Advanced.SkipAetherCurrents; if (ImGui.Checkbox("Don't pick up aether currents/aether current quests", ref v6)) { base.Configuration.Advanced.SkipAetherCurrents = v6; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("If not done during the MSQ by Questionable, you have to manually pick up any missed aether currents/quests. There is no way to automatically pick up all missing aether currents."); bool v7 = base.Configuration.Advanced.SkipClassJobQuests; if (ImGui.Checkbox("Don't pick up class/job/role quests", ref v7)) { base.Configuration.Advanced.SkipClassJobQuests = v7; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("Class and job skills for A Realm Reborn, Heavensward and (for the Lv70 skills) Stormblood are locked behind quests. Not recommended if you plan on queueing for instances with duty finder/party finder."); bool v8 = base.Configuration.Advanced.SkipARealmRebornHardModePrimals; if (ImGui.Checkbox("Don't pick up ARR hard mode primal quests", ref v8)) { base.Configuration.Advanced.SkipARealmRebornHardModePrimals = v8; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("Hard mode Ifrit/Garuda/Titan are required for the Patch 2.5 quest 'Good Intentions' and to start Heavensward."); bool v9 = base.Configuration.Advanced.SkipCrystalTowerRaids; if (ImGui.Checkbox("Don't pick up Crystal Tower quests", ref v9)) { base.Configuration.Advanced.SkipCrystalTowerRaids = v9; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("Crystal Tower raids are required for the Patch 2.55 quest 'A Time to Every Purpose' and to start Heavensward."); bool v10 = base.Configuration.Advanced.PreventQuestCompletion; if (ImGui.Checkbox("Prevent quest completion", ref v10)) { base.Configuration.Advanced.PreventQuestCompletion = v10; Save(); } ImGui.SameLine(); ImGuiComponents.HelpMarker("When enabled, Questionable will not attempt to turn-in and complete quests. This will do everything automatically except the final turn-in step."); } } }