fix redraw after gpose

This commit is contained in:
rootdarkarchon
2023-03-27 12:04:45 +02:00
parent 98d552fa40
commit 0f623510b5
3 changed files with 5 additions and 6 deletions

View File

@@ -47,10 +47,9 @@ public class OnlinePlayerManager : DisposableMediatorSubscriberBase
if (!_dalamudUtil.IsPlayerPresent || !_apiController.IsConnected) return; if (!_dalamudUtil.IsPlayerPresent || !_apiController.IsConnected) return;
var playerCharacters = _dalamudUtil.GetPlayerCharacters(); var playerCharacters = _dalamudUtil.GetPlayerCharacters();
var newVisiblePlayers = new List<UserData>();
var chars = _pairManager.FindAllPairs(playerCharacters); var chars = _pairManager.FindAllPairs(playerCharacters);
newVisiblePlayers.AddRange(from pChar in chars.Where(p => p.Pair != null && p.Pair.InitializePair(p.Character.Name.ToString())) var newVisiblePlayers = (from pChar in chars.Where(p => p.Pair != null && p.Pair.InitializePair(p.Character.Name.ToString()))
select pChar.Pair.UserData); select pChar.Pair.UserData).ToList();
if (newVisiblePlayers.Any()) if (newVisiblePlayers.Any())
{ {

View File

@@ -395,7 +395,7 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
{ {
foreach (var pair in _allClientPairs.Select(k => k.Value)) foreach (var pair in _allClientPairs.Select(k => k.Value))
{ {
pair.ApplyLastReceivedData(); pair.ApplyLastReceivedData(true);
} }
} }

View File

@@ -109,7 +109,7 @@ public class DalamudUtilService : IHostedService
{ {
var mgr = CharacterManager.Instance(); var mgr = CharacterManager.Instance();
playerPointer ??= PlayerPointer; playerPointer ??= PlayerPointer;
if(playerPointer == IntPtr.Zero) return IntPtr.Zero; if (playerPointer == IntPtr.Zero) return IntPtr.Zero;
return (IntPtr)mgr->LookupPetByOwnerObject((BattleChara*)playerPointer); return (IntPtr)mgr->LookupPetByOwnerObject((BattleChara*)playerPointer);
} }
@@ -183,7 +183,7 @@ public class DalamudUtilService : IHostedService
public async Task WaitWhileCharacterIsDrawing(ILogger logger, GameObjectHandler handler, Guid redrawId, int timeOut = 5000, CancellationToken? ct = null) public async Task WaitWhileCharacterIsDrawing(ILogger logger, GameObjectHandler handler, Guid redrawId, int timeOut = 5000, CancellationToken? ct = null)
{ {
if (!_clientState.IsLoggedIn || handler.Address == IntPtr.Zero) return; if (!_clientState.IsLoggedIn || handler.CurrentAddress == IntPtr.Zero) return;
logger.LogTrace("[{redrawId}] Starting wait for {handler} to draw", redrawId, handler); logger.LogTrace("[{redrawId}] Starting wait for {handler} to draw", redrawId, handler);