aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 15a4728a362..30a096493c6 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -25209,6 +25209,12 @@ void Player::UpdateForQuestWorldObjects()
{
if (GameObject* obj = ObjectAccessor::GetGameObject(*this, *itr))
{
+ UF::ObjectData::Base objMask;
+ UF::GameObjectData::Base goMask;
+
+ if (m_questObjectiveStatus.find({ QUEST_OBJECTIVE_GAMEOBJECT, int32(obj->GetEntry()) }) != m_questObjectiveStatus.end())
+ objMask.MarkChanged(&UF::ObjectData::DynamicFlags);
+
switch (obj->GetGoType())
{
case GAMEOBJECT_TYPE_QUESTGIVER:
@@ -25216,16 +25222,14 @@ void Player::UpdateForQuestWorldObjects()
case GAMEOBJECT_TYPE_GOOBER:
case GAMEOBJECT_TYPE_GENERIC:
if (sObjectMgr->IsGameObjectForQuests(obj->GetEntry()))
- {
- UF::ObjectData::Base objMask;
- UF::GameObjectData::Base goMask;
objMask.MarkChanged(&UF::ObjectData::DynamicFlags);
- obj->BuildValuesUpdateForPlayerWithMask(&udata, objMask.GetChangesMask(), goMask.GetChangesMask(), this);
- }
break;
default:
break;
}
+
+ if (objMask.GetChangesMask().IsAnySet() || goMask.GetChangesMask().IsAnySet())
+ obj->BuildValuesUpdateForPlayerWithMask(&udata, objMask.GetChangesMask(), goMask.GetChangesMask(), this);
}
}
else if (itr->IsCreatureOrVehicle())