From 163048ac497ede40c4a3a77b9f4b4f7e14882dfa Mon Sep 17 00:00:00 2001 From: Stanley Dimant Date: Mon, 13 Jan 2025 23:43:51 +0100 Subject: [PATCH] fix gpose hanging --- MareSynchronos/Services/CharaData/CharaDataCharacterHandler.cs | 3 ++- MareSynchronos/Services/CharaData/CharaDataNearbyManager.cs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MareSynchronos/Services/CharaData/CharaDataCharacterHandler.cs b/MareSynchronos/Services/CharaData/CharaDataCharacterHandler.cs index ea181e1..5fb87e2 100644 --- a/MareSynchronos/Services/CharaData/CharaDataCharacterHandler.cs +++ b/MareSynchronos/Services/CharaData/CharaDataCharacterHandler.cs @@ -71,7 +71,8 @@ public sealed class CharaDataCharacterHandler : DisposableMediatorSubscriberBase using var handler = await _gameObjectHandlerFactory.Create(ObjectKind.Player, () => _dalamudUtilService.GetGposeCharacterFromObjectTableByName(name, _dalamudUtilService.IsInGpose)?.Address ?? IntPtr.Zero, false) .ConfigureAwait(false); - await _ipcManager.Penumbra.RedrawAsync(Logger, handler, applicationId, CancellationToken.None).ConfigureAwait(false); + if (handler.Address != nint.Zero) + await _ipcManager.Penumbra.RedrawAsync(Logger, handler, applicationId, CancellationToken.None).ConfigureAwait(false); } public async Task RevertHandledChara(string name, bool reapplyPose = true) diff --git a/MareSynchronos/Services/CharaData/CharaDataNearbyManager.cs b/MareSynchronos/Services/CharaData/CharaDataNearbyManager.cs index a5407fa..23e749d 100644 --- a/MareSynchronos/Services/CharaData/CharaDataNearbyManager.cs +++ b/MareSynchronos/Services/CharaData/CharaDataNearbyManager.cs @@ -251,7 +251,7 @@ public sealed class CharaDataNearbyManager : DisposableMediatorSubscriberBase Vector3 cameraPos = new(camera->Position.X, camera->Position.Y, camera->Position.Z); Vector3 lookAt = new(camera->LookAtVector.X, camera->LookAtVector.Y, camera->LookAtVector.Z); - if (_filterEntriesRunningTask?.IsCompleted ?? true) + if (_filterEntriesRunningTask?.IsCompleted ?? true && _dalamudUtilService.IsLoggedIn) _filterEntriesRunningTask = FilterEntriesAsync(cameraPos, lookAt); }