diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-12-04 21:18:46 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-04 21:18:46 +0100 |
commit | 6e5f35a14ce0b894d95434f27fab8f7d0ba6dedc (patch) | |
tree | b10be23cedfa671b987d3dc5340b031ecc6723d1 /src | |
parent | eb834272cb0c0a1b1bb102bcee1b2a18b27f862d (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.cpp | 14 |
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()) |