diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-10-27 18:33:47 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-10-27 19:05:35 +0100 |
| commit | ee54ade3975748bf373162b2397328852dec6701 (patch) | |
| tree | 64f4b5a1e9a28a5407f1963fdc440e6170ea59fc /src/server/game/Entities/Object | |
| parent | a771f210a62bf3660b20219aefe67a01bc4cf905 (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.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 6 |
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; |
