From b42e7e236cce85fec6840674a14c14b182b8ef35 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Sun, 26 Feb 2023 14:47:59 +0100 Subject: [PATCH] ignore hat/weapon state changes --- .../Managers/CacheCreationService.cs | 1 + MareSynchronos/MareSynchronos.csproj | 2 +- MareSynchronos/Models/GameObjectHandler.cs | 33 +++---------------- 3 files changed, 6 insertions(+), 30 deletions(-) diff --git a/MareSynchronos/Managers/CacheCreationService.cs b/MareSynchronos/Managers/CacheCreationService.cs index d5bbf34..fe23e6e 100644 --- a/MareSynchronos/Managers/CacheCreationService.cs +++ b/MareSynchronos/Managers/CacheCreationService.cs @@ -5,6 +5,7 @@ using MareSynchronos.Mediator; using MareSynchronos.Models; using MareSynchronos.Utils; using Microsoft.Extensions.Logging; +using System.Collections; namespace MareSynchronos.Managers; diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index 10c6ff4..b82c3c5 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ - 0.7.38 + 0.7.39 https://github.com/Penumbra-Sync/client diff --git a/MareSynchronos/Models/GameObjectHandler.cs b/MareSynchronos/Models/GameObjectHandler.cs index c1811f0..1539243 100644 --- a/MareSynchronos/Models/GameObjectHandler.cs +++ b/MareSynchronos/Models/GameObjectHandler.cs @@ -165,11 +165,11 @@ public class GameObjectHandler : MediatorSubscriberBase } } - var customizeDiff = CompareAndUpdateCustomizeData(chara->CustomizeData, out bool doNotSendUpdate); + var customizeDiff = CompareAndUpdateCustomizeData(chara->CustomizeData); if (addrDiff || equipDiff || customizeDiff || drawObjDiff || nameChange) { - if (_isOwnedObject && !doNotSendUpdate) + if (_isOwnedObject) { _logger.LogTrace("[{this}] Changed", this); @@ -203,11 +203,10 @@ public class GameObjectHandler : MediatorSubscriberBase _clearCts = null; } - private unsafe bool CompareAndUpdateCustomizeData(byte* customizeData, out bool doNotSendUpdate) + private unsafe bool CompareAndUpdateCustomizeData(byte* customizeData) { bool hasChanges = false; - doNotSendUpdate = false; - + for (int i = 0; i < CustomizeData.Length; i++) { var data = Marshal.ReadByte((IntPtr)customizeData, i); @@ -218,30 +217,6 @@ public class GameObjectHandler : MediatorSubscriberBase } } - var newHatState = Marshal.ReadByte((IntPtr)customizeData + 30, 0); - var newWeaponOrVisorState = Marshal.ReadByte((IntPtr)customizeData + 31, 0); - if (newHatState != HatState) - { - if (HatState != null && !hasChanges) - { - _logger.LogDebug("[{this}] Not Sending Update, only Hat changed", this); - doNotSendUpdate = true; - } - HatState = newHatState; - } - - newWeaponOrVisorState &= 0b1101; // ignore drawing weapon - - if (newWeaponOrVisorState != VisorWeaponState) - { - if (VisorWeaponState != null && !hasChanges) - { - _logger.LogDebug("[{this}] Not Sending Update, only Visor/Weapon changed", this); - doNotSendUpdate = true; - } - VisorWeaponState = newWeaponOrVisorState; - } - return hasChanges; }