aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-27 18:33:47 +0100
committerShauren <shauren.trinity@gmail.com>2024-10-27 19:05:35 +0100
commitee54ade3975748bf373162b2397328852dec6701 (patch)
tree64f4b5a1e9a28a5407f1963fdc440e6170ea59fc /src/server/game/Entities/Object
parenta771f210a62bf3660b20219aefe67a01bc4cf905 (diff)
Core/Objects: More minor refactors for SMSG_UPDATE_OBJECT building - move getting and writing field flags to shared function
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp9
-rw-r--r--src/server/game/Entities/Object/Object.h6
2 files changed, 9 insertions, 6 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 90a33683a5e..37b9d11c79d 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -178,9 +178,11 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
BuildMovementUpdate(&buf, flags, target);
+ UF::UpdateFieldFlag fieldFlags = GetUpdateFieldFlagsFor(target);
std::size_t sizePos = buf.wpos();
buf << uint32(0);
- BuildValuesCreate(&buf, target);
+ buf << uint8(fieldFlags);
+ BuildValuesCreate(&buf, fieldFlags, target);
buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4);
data->AddUpdateBlock();
@@ -204,9 +206,10 @@ void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player const* tar
{
ByteBuffer& buf = PrepareValuesUpdateBuffer(data);
+ EnumFlag<UF::UpdateFieldFlag> fieldFlags = GetUpdateFieldFlagsFor(target);
std::size_t sizePos = buf.wpos();
buf << uint32(0);
- BuildValuesUpdate(&buf, target);
+ BuildValuesUpdate(&buf, fieldFlags, target);
buf.put<uint32>(sizePos, buf.wpos() - sizePos - 4);
data->AddUpdateBlock();
@@ -264,7 +267,7 @@ void Object::SendOutOfRangeForPlayer(Player* target) const
target->SendDirectMessage(&packet);
}
-void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player* target) const
+void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const
{
std::vector<uint32> const* PauseTimes = nullptr;
if (GameObject const* go = ToGameObject())
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index f8becf42063..a16a975ed41 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -390,10 +390,10 @@ class TC_GAME_API Object
}
}
- void BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player* target) const;
+ void BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Player const* target) const;
virtual UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const* target) const;
- virtual void BuildValuesCreate(ByteBuffer* data, Player const* target) const = 0;
- virtual void BuildValuesUpdate(ByteBuffer* data, Player const* target) const = 0;
+ virtual void BuildValuesCreate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const = 0;
+ virtual void BuildValuesUpdate(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const = 0;
public:
virtual void BuildValuesUpdateWithFlag(ByteBuffer* data, UF::UpdateFieldFlag flags, Player const* target) const;