Core/GameObjects: Add missing dynamic flag updates for chests

Port From (https://github.com/TrinityCore/TrinityCore/commit/c672e27f27eda49230d87ec460539429251fefdc)
This commit is contained in:
hondacrx
2022-10-26 00:53:12 -04:00
parent 0b3dce3843
commit 32960df381
@@ -518,7 +518,7 @@ namespace Game.Entities
m_personalLoot.Clear(); m_personalLoot.Clear();
m_unique_users.Clear(); m_unique_users.Clear();
m_usetimes = 0; m_usetimes = 0;
AddToObjectUpdateIfNeeded(); UpdateDynamicFlagsForNearbyPlayers();
break; break;
default: default:
m_lootState = LootState.Ready; // for other GOis same switched without delay to GO_READY 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_personalLoot.Clear();
m_unique_users.Clear(); m_unique_users.Clear();
m_usetimes = 0; m_usetimes = 0;
AddToObjectUpdateIfNeeded(); UpdateDynamicFlagsForNearbyPlayers();
} }
break; break;
case GameObjectTypes.Trap: case GameObjectTypes.Trap:
@@ -847,7 +847,7 @@ namespace Game.Entities
// Start restock timer when the chest is fully looted // Start restock timer when the chest is fully looted
m_restockTime = GameTime.GetGameTime() + GetGoInfo().Chest.chestRestockTime; m_restockTime = GameTime.GetGameTime() + GetGoInfo().Chest.chestRestockTime;
SetLootState(LootState.NotReady); SetLootState(LootState.NotReady);
AddToObjectUpdateIfNeeded(); UpdateDynamicFlagsForNearbyPlayers();
} }
else else
SetLootState(LootState.Ready); SetLootState(LootState.Ready);
@@ -3655,10 +3655,8 @@ namespace Game.Entities
void UpdateDynamicFlagsForNearbyPlayers() void UpdateDynamicFlagsForNearbyPlayers()
{ {
ValuesUpdateForPlayerWithMaskSender sender = new(this); m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags);
sender.ObjectMask.MarkChanged(m_objectData.DynamicFlags); AddToObjectUpdateIfNeeded();
MessageDistDeliverer<ValuesUpdateForPlayerWithMaskSender> deliverer = new(this, sender, GetVisibilityRange());
Cell.VisitWorldObjects(this, deliverer, GetVisibilityRange());
} }
void HandleCustomTypeCommand(GameObjectTypeBase.CustomCommand command) void HandleCustomTypeCommand(GameObjectTypeBase.CustomCommand command)