diff --git a/Glamourer.Api b/Glamourer.Api
index 7e8505c..59a7ab5 160000
--- a/Glamourer.Api
+++ b/Glamourer.Api
@@ -1 +1 @@
-Subproject commit 7e8505cd6f8dbc5bcf41b72e16785d62b4d218f3
+Subproject commit 59a7ab5fa9941eb754757b62e4cb189e455e9514
diff --git a/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs b/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs
index 6b45ac7..74ab455 100644
--- a/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs
+++ b/MareSynchronos/MareConfiguration/Configurations/PlayerPerformanceConfig.cs
@@ -8,9 +8,10 @@ public class PlayerPerformanceConfig : IMareConfiguration
public bool AutoPausePlayersExceedingThresholds { get; set; } = true;
public bool NotifyAutoPauseDirectPairs { get; set; } = true;
public bool NotifyAutoPauseGroupPairs { get; set; } = true;
+ public bool ShowSelfAnalysisWarnings { get; set; } = true;
public int VRAMSizeAutoPauseThresholdMiB { get; set; } = 500;
public int TrisAutoPauseThresholdThousands { get; set; } = 400;
public bool IgnoreDirectPairs { get; set; } = true;
public TextureShrinkMode TextureShrinkMode { get; set; } = TextureShrinkMode.Default;
public bool TextureShrinkDeleteOriginal { get; set; } = false;
-}
\ No newline at end of file
+}
diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj
index d71724f..d403e3f 100644
--- a/MareSynchronos/MareSynchronos.csproj
+++ b/MareSynchronos/MareSynchronos.csproj
@@ -3,7 +3,7 @@
UmbraSync
UmbraSync
- 0.1.9.5
+ 0.1.9.6
diff --git a/MareSynchronos/Services/CharacterAnalyzer.cs b/MareSynchronos/Services/CharacterAnalyzer.cs
index 9f4ca7a..0c7ba07 100644
--- a/MareSynchronos/Services/CharacterAnalyzer.cs
+++ b/MareSynchronos/Services/CharacterAnalyzer.cs
@@ -3,6 +3,7 @@ using Lumina.Data.Files;
using MareSynchronos.API.Data;
using MareSynchronos.API.Data.Enum;
using MareSynchronos.FileCache;
+using MareSynchronos.MareConfiguration;
using MareSynchronos.MareConfiguration.Models;
using MareSynchronos.Services.Mediator;
using MareSynchronos.UI;
@@ -15,6 +16,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase
{
private readonly FileCacheManager _fileCacheManager;
private readonly XivDataAnalyzer _xivDataAnalyzer;
+ private readonly PlayerPerformanceConfigService _playerPerformanceConfigService;
private CancellationTokenSource? _analysisCts;
private CancellationTokenSource _baseAnalysisCts = new();
private string _lastDataHash = string.Empty;
@@ -29,7 +31,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase
private bool _sizeWarningShown;
private bool _triangleWarningShown;
- public CharacterAnalyzer(ILogger logger, MareMediator mediator, FileCacheManager fileCacheManager, XivDataAnalyzer modelAnalyzer)
+ public CharacterAnalyzer(ILogger logger, MareMediator mediator, FileCacheManager fileCacheManager, XivDataAnalyzer modelAnalyzer, PlayerPerformanceConfigService playerPerformanceConfigService)
: base(logger, mediator)
{
Mediator.Subscribe(this, (msg) =>
@@ -40,6 +42,7 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase
});
_fileCacheManager = fileCacheManager;
_xivDataAnalyzer = modelAnalyzer;
+ _playerPerformanceConfigService = playerPerformanceConfigService;
}
public int CurrentFile { get; internal set; }
@@ -315,6 +318,12 @@ public sealed class CharacterAnalyzer : DisposableMediatorSubscriberBase
return;
}
+ if (!_playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings)
+ {
+ ResetThresholdFlagsIfNeeded(summary);
+ return;
+ }
+
bool sizeExceeded = summary.TotalCompressedSize >= NotificationSizeThreshold;
bool trianglesExceeded = summary.TotalTriangles >= NotificationTriangleThreshold;
List exceededReasons = new();
diff --git a/MareSynchronos/UI/ChangelogUi.cs b/MareSynchronos/UI/ChangelogUi.cs
index d111f94..6583a48 100644
--- a/MareSynchronos/UI/ChangelogUi.cs
+++ b/MareSynchronos/UI/ChangelogUi.cs
@@ -169,6 +169,10 @@ public sealed class ChangelogUi : WindowMediatorSubscriberBase
{
return new List
{
+ new(new Version(0, 1, 9, 6), "0.1.9.6", new List
+ {
+ new("Possibilité de désactiver l'alerte self-analysis (Settings => Performance)."),
+ }),
new(new Version(0, 1, 9, 5), "0.1.9.5", new List
{
new("Fix l'affichage de la bulle dans la liste du groupe."),
diff --git a/MareSynchronos/UI/SettingsUi.cs b/MareSynchronos/UI/SettingsUi.cs
index c0015cf..b492b16 100644
--- a/MareSynchronos/UI/SettingsUi.cs
+++ b/MareSynchronos/UI/SettingsUi.cs
@@ -1328,6 +1328,14 @@ public class SettingsUi : WindowMediatorSubscriberBase
_uiShared.BigText("Global Configuration");
+ bool showSelfAnalysisWarnings = _playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings;
+ if (ImGui.Checkbox("Display self-analysis warnings", ref showSelfAnalysisWarnings))
+ {
+ _playerPerformanceConfigService.Current.ShowSelfAnalysisWarnings = showSelfAnalysisWarnings;
+ _playerPerformanceConfigService.Save();
+ }
+ _uiShared.DrawHelpText("Disable to suppress UmbraSync chat warnings when your character exceeds the self-analysis thresholds.");
+
bool alwaysShrinkTextures = _playerPerformanceConfigService.Current.TextureShrinkMode == TextureShrinkMode.Always;
bool deleteOriginalTextures = _playerPerformanceConfigService.Current.TextureShrinkDeleteOriginal;
diff --git a/Penumbra.Api b/Penumbra.Api
index 97fe622..c23ee05 160000
--- a/Penumbra.Api
+++ b/Penumbra.Api
@@ -1 +1 @@
-Subproject commit 97fe622e4ec0a5469a26aba8a8c3933fa8ef7fd6
+Subproject commit c23ee05c1e9fa103eaa52e6aa7e855ef568ee669