From ab828b2cb63c5881f988b07946bf0bef7550e963 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 7 Dec 2021 17:07:38 -0500 Subject: [PATCH] Core/Quests: Allow more objects to update their dynamicflags in Player::UpdateForQuestWorldObjects Port From (https://github.com/TrinityCore/TrinityCore/commit/6e5f35a14ce0b894d95434f27fab8f7d0ba6dedc) --- Source/Game/Entities/Player/Player.Quest.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 523f9ec07..c46f3e368 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -2915,6 +2915,12 @@ namespace Game.Entities GameObject obj = ObjectAccessor.GetGameObject(this, guid); if (obj != null) { + ObjectFieldData objMask = new(); + GameObjectFieldData goMask = new(); + + if (m_questObjectiveStatus.ContainsKey((QuestObjectiveType.GameObject, (int)obj.GetEntry()))) + objMask.MarkChanged(obj.m_objectData.DynamicFlags); + switch (obj.GetGoType()) { case GameObjectTypes.QuestGiver: @@ -2922,16 +2928,14 @@ namespace Game.Entities case GameObjectTypes.Goober: case GameObjectTypes.Generic: if (Global.ObjectMgr.IsGameObjectForQuests(obj.GetEntry())) - { - ObjectFieldData objMask = new(); - GameObjectFieldData goMask = new(); objMask.MarkChanged(obj.m_objectData.DynamicFlags); - obj.BuildValuesUpdateForPlayerWithMask(udata, objMask._changesMask, goMask._changesMask, this); - } break; default: break; } + + if (objMask.GetUpdateMask().IsAnySet() || goMask.GetUpdateMask().IsAnySet()) + obj.BuildValuesUpdateForPlayerWithMask(udata, objMask.GetUpdateMask(), goMask.GetUpdateMask(), this); } } else if (guid.IsCreatureOrVehicle())