From 32960df381d534b1a708d7e92858a1dc5a020612 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 26 Oct 2022 00:53:12 -0400 Subject: [PATCH] Core/GameObjects: Add missing dynamic flag updates for chests Port From (https://github.com/TrinityCore/TrinityCore/commit/c672e27f27eda49230d87ec460539429251fefdc) --- Source/Game/Entities/GameObject/GameObject.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 5ef8947db..1a82dd6f6 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -518,7 +518,7 @@ namespace Game.Entities m_personalLoot.Clear(); m_unique_users.Clear(); m_usetimes = 0; - AddToObjectUpdateIfNeeded(); + UpdateDynamicFlagsForNearbyPlayers(); break; default: m_lootState = LootState.Ready; // for other GOis same switched without delay to GO_READY @@ -749,7 +749,7 @@ namespace Game.Entities m_personalLoot.Clear(); m_unique_users.Clear(); m_usetimes = 0; - AddToObjectUpdateIfNeeded(); + UpdateDynamicFlagsForNearbyPlayers(); } break; case GameObjectTypes.Trap: @@ -847,7 +847,7 @@ namespace Game.Entities // Start restock timer when the chest is fully looted m_restockTime = GameTime.GetGameTime() + GetGoInfo().Chest.chestRestockTime; SetLootState(LootState.NotReady); - AddToObjectUpdateIfNeeded(); + UpdateDynamicFlagsForNearbyPlayers(); } else SetLootState(LootState.Ready); @@ -3655,10 +3655,8 @@ namespace Game.Entities void UpdateDynamicFlagsForNearbyPlayers() { - ValuesUpdateForPlayerWithMaskSender sender = new(this); - sender.ObjectMask.MarkChanged(m_objectData.DynamicFlags); - MessageDistDeliverer deliverer = new(this, sender, GetVisibilityRange()); - Cell.VisitWorldObjects(this, deliverer, GetVisibilityRange()); + m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags); + AddToObjectUpdateIfNeeded(); } void HandleCustomTypeCommand(GameObjectTypeBase.CustomCommand command)