Fix code that doesn't work on all languages
authorLiza Carvelli <liza@carvel.li>
Sat, 5 Apr 2025 17:43:11 +0000 (19:43 +0200)
committerLiza Carvelli <liza@carvel.li>
Sat, 5 Apr 2025 17:43:11 +0000 (19:43 +0200)
LLib
Questionable/Controller/GameUi/InteractionUiController.cs
Questionable/Controller/MiniTaskController.cs
Questionable/Functions/ExcelFunctions.cs

diff --git a/LLib b/LLib
index cbefdaf..7293429 160000 (submodule)
--- a/LLib
+++ b/LLib
@@ -1 +1 @@
-Subproject commit cbefdaffc21ab091586645a369e8f5779049c49c
+Subproject commit 72934290c0049ffce6378e8128afbe546985d0be
index afb17b1..ef939db 100644 (file)
@@ -773,8 +773,8 @@ internal sealed class InteractionUiController : IDisposable
             .Where(x => x.RowId > 0 && x.TerritoryType.RowId == targetTerritoryId);
         foreach (var entry in warps)
         {
-            string excelName = entry.Name.ToString();
-            string excelQuestion = entry.Question.ToString();
+            string excelName = entry.Name.WithCertainMacroCodeReplacements();
+            string excelQuestion = entry.Question.WithCertainMacroCodeReplacements();
 
             if (!string.IsNullOrEmpty(excelQuestion) && GameFunctions.GameStringEquals(excelQuestion, actualPrompt))
             {
index a62a5e6..99d4927 100644 (file)
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Text.RegularExpressions;
 using Dalamud.Game.ClientState.Conditions;
 using Dalamud.Game.Text.SeStringHandling;
 using Dalamud.Plugin.Services;
@@ -27,7 +28,7 @@ internal abstract class MiniTaskController<T> : IDisposable
     private readonly InterruptHandler _interruptHandler;
     private readonly ILogger<T> _logger;
 
-    private readonly string _actionCanceledText;
+    private readonly Regex _actionCanceledText;
     private readonly string _eventCanceledText;
     private readonly string _cantExecuteDueToStatusText;
 
@@ -41,7 +42,7 @@ internal abstract class MiniTaskController<T> : IDisposable
         _condition = condition;
 
         _eventCanceledText = dataManager.GetString<LogMessage>(1318, x => x.Text)!;
-        _actionCanceledText = dataManager.GetString<LogMessage>(1314, x => x.Text)!;
+        _actionCanceledText = dataManager.GetRegex<LogMessage>(1314, x => x.Text)!;
         _cantExecuteDueToStatusText = dataManager.GetString<LogMessage>(7728, x => x.Text)!;
         _interruptHandler.Interrupted += HandleInterruption;
     }
@@ -220,7 +221,7 @@ internal abstract class MiniTaskController<T> : IDisposable
 
         if (!isHandled)
         {
-            if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) &&
+            if (_actionCanceledText.IsMatch(message.TextValue) &&
                 !_condition[ConditionFlag.InFlight] &&
                 _taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true)
                 InterruptQueueWithCombat();
index 48a9d10..88c6118 100644 (file)
@@ -30,7 +30,7 @@ internal sealed class ExcelFunctions
         if (isRegex)
             return new StringOrRegex(seString.ToRegex());
         else
-            return new StringOrRegex(seString?.ToDalamudString().ToString());
+            return new StringOrRegex(seString?.WithCertainMacroCodeReplacements());
     }
 
     public ReadOnlySeString? GetRawDialogueText(Quest? currentQuest, string? excelSheetName, string key)