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.");