aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-10-24 19:42:12 +0200
committerShauren <shauren.trinity@gmail.com>2022-10-24 19:42:12 +0200
commitc672e27f27eda49230d87ec460539429251fefdc (patch)
tree2172dddf8e9d3b84ab752eaaae7bbaed2c4a9ed4 /src
parent9957b9b942f43d0eb112da15ac21cf27f85be801 (diff)
Core/GameObjects: Add missing dynamic flag updates for chests
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp14
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h2
2 files changed, 7 insertions, 9 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 03871de2908..caa65afa59e 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -995,7 +995,7 @@ void GameObject::Update(uint32 diff)
m_personalLoot.clear();
m_unique_users.clear();
m_usetimes = 0;
- AddToObjectUpdateIfNeeded();
+ UpdateDynamicFlagsForNearbyPlayers();
break;
default:
m_lootState = GO_READY; // for other GOis same switched without delay to GO_READY
@@ -1227,7 +1227,7 @@ void GameObject::Update(uint32 diff)
m_personalLoot.clear();
m_unique_users.clear();
m_usetimes = 0;
- AddToObjectUpdateIfNeeded();
+ UpdateDynamicFlagsForNearbyPlayers();
}
break;
case GAMEOBJECT_TYPE_TRAP:
@@ -1314,7 +1314,7 @@ void GameObject::Update(uint32 diff)
// Start restock timer when the chest is fully looted
m_restockTime = GameTime::GetGameTime() + GetGOInfo()->chest.chestRestockTime;
SetLootState(GO_NOT_READY);
- AddToObjectUpdateIfNeeded();
+ UpdateDynamicFlagsForNearbyPlayers();
}
else
SetLootState(GO_READY);
@@ -3902,12 +3902,10 @@ private:
GameObject* _owner;
};
-void GameObject::UpdateDynamicFlagsForNearbyPlayers() const
+void GameObject::UpdateDynamicFlagsForNearbyPlayers()
{
- ValuesUpdateForPlayerWithMaskSender sender(this);
- sender.ObjectMask.MarkChanged(&UF::ObjectData::DynamicFlags);
- Trinity::MessageDistDeliverer<ValuesUpdateForPlayerWithMaskSender> deliverer(this, sender, GetVisibilityRange());
- Cell::VisitWorldObjects(this, deliverer, GetVisibilityRange());
+ m_values.ModifyValue(&Object::m_objectData).ModifyValue(&UF::ObjectData::DynamicFlags);
+ AddToObjectUpdateIfNeeded();
}
void GameObject::HandleCustomTypeCommand(GameObjectTypeBase::CustomCommand const& command) const
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 1e9d0fc3b0a..6800d3c9aed 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -389,7 +389,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
std::string GetDebugInfo() const override;
- void UpdateDynamicFlagsForNearbyPlayers() const;
+ void UpdateDynamicFlagsForNearbyPlayers();
void HandleCustomTypeCommand(GameObjectTypeBase::CustomCommand const& command) const;