diff --git a/Directory.Build.targets b/Directory.Build.targets index 939fb575..590411dd 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,5 +1,5 @@ - 3.8 + 3.9 diff --git a/Questionable/Configuration.cs b/Questionable/Configuration.cs index 3ea014cb..f2a25164 100644 --- a/Questionable/Configuration.cs +++ b/Questionable/Configuration.cs @@ -20,6 +20,7 @@ internal sealed class Configuration : IPluginConfiguration public bool UseEscToCancelQuesting { get; set; } = true; public bool ShowIncompleteSeasonalEvents { get; set; } = true; public bool AutomaticallyCompleteSnipeTasks { get; set; } + public bool ConfigureTextAdvance { get; set; } = true; } internal sealed class AdvancedConfiguration diff --git a/Questionable/External/TextAdvanceIpc.cs b/Questionable/External/TextAdvanceIpc.cs index bb771b02..dd4fa395 100644 --- a/Questionable/External/TextAdvanceIpc.cs +++ b/Questionable/External/TextAdvanceIpc.cs @@ -6,6 +6,7 @@ using Questionable.Controller; using Questionable.Data; using Questionable.Model.Common; using System; +using System.Diagnostics.CodeAnalysis; namespace Questionable.External; @@ -13,6 +14,7 @@ internal sealed class TextAdvanceIpc : IDisposable { private bool _isExternalControlActivated; private readonly QuestController _questController; + private readonly Configuration _configuration; private readonly IFramework _framework; private readonly ICallGateSubscriber _isInExternalControl; private readonly ICallGateSubscriber _enableExternalControl; @@ -20,10 +22,11 @@ internal sealed class TextAdvanceIpc : IDisposable private readonly string _pluginName; private readonly ExternalTerritoryConfig _externalTerritoryConfig = new(); - public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController) + public TextAdvanceIpc(IDalamudPluginInterface pluginInterface, IFramework framework, QuestController questController, Configuration configuration) { _framework = framework; _questController = questController; + _configuration = configuration; _isInExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.IsInExternalControl"); _enableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.EnableExternalControl"); _disableExternalControl = pluginInterface.GetIpcSubscriber("TextAdvance.DisableExternalControl"); @@ -40,9 +43,9 @@ internal sealed class TextAdvanceIpc : IDisposable } } - public void OnUpdate(IFramework framework) + private void OnUpdate(IFramework framework) { - if(_questController.IsRunning) + if(_configuration.General.ConfigureTextAdvance && _questController.IsRunning) { if(!_isInExternalControl.InvokeFunc()) { @@ -64,8 +67,10 @@ internal sealed class TextAdvanceIpc : IDisposable } } - public class ExternalTerritoryConfig + [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] + public sealed class ExternalTerritoryConfig { +#pragma warning disable CS0414 // Field is assigned but its value is never used public bool? EnableQuestAccept = true; public bool? EnableQuestComplete = true; public bool? EnableRewardPick = true; @@ -75,5 +80,6 @@ internal sealed class TextAdvanceIpc : IDisposable public bool? EnableTalkSkip = true; public bool? EnableRequestFill = true; public bool? EnableAutoInteract = false; +#pragma warning restore CS0414 // Field is assigned but its value is never used } } diff --git a/Questionable/Windows/ConfigWindow.cs b/Questionable/Windows/ConfigWindow.cs index 0b278c04..0416943f 100644 --- a/Questionable/Windows/ConfigWindow.cs +++ b/Questionable/Windows/ConfigWindow.cs @@ -90,6 +90,13 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig Save(); } + bool configureTextAdvance = _configuration.General.ConfigureTextAdvance; + if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", ref configureTextAdvance)) + { + _configuration.General.ConfigureTextAdvance = configureTextAdvance; + Save(); + } + if (ImGui.CollapsingHeader("Cheats")) { ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead.");