aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-12-04 21:18:46 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-04 21:18:46 +0100
commit6e5f35a14ce0b894d95434f27fab8f7d0ba6dedc (patch)
treeb10be23cedfa671b987d3dc5340b031ecc6723d1 /src
parenteb834272cb0c0a1b1bb102bcee1b2a18b27f862d (diff)
Core/Quests: Allow more objects to update their dynamicflags in Player::UpdateForQuestWorldObjects
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())