aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Item/Item.cpp7
-rw-r--r--src/server/game/Entities/Item/Item.h2
-rw-r--r--src/server/game/Entities/Object/Object.cpp8
-rw-r--r--src/server/game/Entities/Object/Object.h4
4 files changed, 12 insertions, 9 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index a0777ebf470..fc529f1a075 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -1051,10 +1051,15 @@ void Item::BuildUpdate(UpdateDataMapType& data_map)
ClearUpdateMask(false);
}
-void Item::AddToObjectUpdate()
+bool Item::AddToObjectUpdate()
{
if (Player* owner = GetOwner())
+ {
owner->GetMap()->AddUpdateObject(this);
+ return true;
+ }
+
+ return false;
}
void Item::RemoveFromObjectUpdate()
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index 971bb93df3a..c69cde17a96 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -200,7 +200,7 @@ class TC_GAME_API Item : public Object
void BuildUpdate(UpdateDataMapType&) override;
- void AddToObjectUpdate() override;
+ bool AddToObjectUpdate() override;
void RemoveFromObjectUpdate() override;
uint32 GetScriptId() const { return GetTemplate()->ScriptId; }
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 687bdfa79bd..712b7131eca 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -498,10 +498,7 @@ void Object::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* targe
void Object::AddToObjectUpdateIfNeeded()
{
if (m_inWorld && !m_objectUpdated)
- {
- AddToObjectUpdate();
- m_objectUpdated = true;
- }
+ m_objectUpdated = AddToObjectUpdate();
}
void Object::ClearUpdateMask(bool remove)
@@ -3490,9 +3487,10 @@ void WorldObject::BuildUpdate(UpdateDataMapType& data_map)
ClearUpdateMask(false);
}
-void WorldObject::AddToObjectUpdate()
+bool WorldObject::AddToObjectUpdate()
{
GetMap()->AddUpdateObject(this);
+ return true;
}
void WorldObject::RemoveFromObjectUpdate()
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index ed3ad4fc7bb..edccf3c7651 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -219,7 +219,7 @@ class TC_GAME_API Object
uint16 _fieldNotifyFlags;
- virtual void AddToObjectUpdate() = 0;
+ virtual bool AddToObjectUpdate() = 0;
virtual void RemoveFromObjectUpdate() = 0;
void AddToObjectUpdateIfNeeded();
@@ -478,7 +478,7 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
void BuildUpdate(UpdateDataMapType&) override;
- void AddToObjectUpdate() override;
+ bool AddToObjectUpdate() override;
void RemoveFromObjectUpdate() override;
//relocation and visibility system functions