From 3decdd55e9faa9243766c9041aab53672bcbd868 Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Fri, 9 Sep 2022 14:21:20 +0200 Subject: [PATCH] stop processing framework queue while in gpose --- MareSynchronos/Managers/CachedPlayer.cs | 10 -------- .../Managers/OnlinePlayerManager.cs | 24 ------------------- MareSynchronos/Managers/PlayerManager.cs | 2 -- MareSynchronos/Utils/DalamudUtil.cs | 2 +- 4 files changed, 1 insertion(+), 37 deletions(-) diff --git a/MareSynchronos/Managers/CachedPlayer.cs b/MareSynchronos/Managers/CachedPlayer.cs index 75db5ce..063d05f 100644 --- a/MareSynchronos/Managers/CachedPlayer.cs +++ b/MareSynchronos/Managers/CachedPlayer.cs @@ -163,16 +163,6 @@ public class CachedPlayer ApplyBaseData(moddedPaths); } - if (_dalamudUtil.IsInGpose) - { - Logger.Verbose("Player is in GPose, waiting"); - while (_dalamudUtil.IsInGpose) - { - await Task.Delay(TimeSpan.FromSeconds(0.5)); - downloadToken.ThrowIfCancellationRequested(); - } - } - foreach (var kind in objectKind) { ApplyCustomizationData(kind); diff --git a/MareSynchronos/Managers/OnlinePlayerManager.cs b/MareSynchronos/Managers/OnlinePlayerManager.cs index 484af77..d2671f8 100644 --- a/MareSynchronos/Managers/OnlinePlayerManager.cs +++ b/MareSynchronos/Managers/OnlinePlayerManager.cs @@ -198,30 +198,6 @@ public class OnlinePlayerManager : IDisposable return; } - if (_dalamudUtil.IsInGpose) - { - _playerTokenDisposal.TryGetValue(cachedPlayer, out var cancellationTokenSource); - cancellationTokenSource?.Cancel(); - cachedPlayer.IsVisible = false; - _playerTokenDisposal[cachedPlayer] = new CancellationTokenSource(); - cancellationTokenSource = _playerTokenDisposal[cachedPlayer]; - var token = cancellationTokenSource.Token; - Task.Run(async () => - { - Logger.Verbose("Cannot dispose Player, in GPose"); - while (_dalamudUtil.IsInGpose) - { - await Task.Delay(TimeSpan.FromSeconds(0.5)); - if (token.IsCancellationRequested) return; - } - - cachedPlayer.DisposePlayer(); - _onlineCachedPlayers.TryRemove(characterHash, out _); - }, token); - - return; - } - cachedPlayer.DisposePlayer(); _onlineCachedPlayers.TryRemove(characterHash, out _); } diff --git a/MareSynchronos/Managers/PlayerManager.cs b/MareSynchronos/Managers/PlayerManager.cs index d14e8c6..ad37f3f 100644 --- a/MareSynchronos/Managers/PlayerManager.cs +++ b/MareSynchronos/Managers/PlayerManager.cs @@ -165,8 +165,6 @@ namespace MareSynchronos.Managers private void OnPlayerOrAttachedObjectsChanged() { - if (_dalamudUtil.IsInGpose) return; - var unprocessedObjects = playerRelatedObjects.Where(c => c.HasUnprocessedUpdate).ToList(); foreach (var unprocessedObject in unprocessedObjects) { diff --git a/MareSynchronos/Utils/DalamudUtil.cs b/MareSynchronos/Utils/DalamudUtil.cs index 362d116..24409a7 100644 --- a/MareSynchronos/Utils/DalamudUtil.cs +++ b/MareSynchronos/Utils/DalamudUtil.cs @@ -66,7 +66,7 @@ namespace MareSynchronos.Utils private void FrameworkOnUpdate(Framework framework) { - if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51]) + if (_condition[ConditionFlag.BetweenAreas] || _condition[ConditionFlag.BetweenAreas51] || IsInGpose) { return; }