feat(Core/Optimization): Optimize build of units update object by leveraging cache (#18637)

* feat(Core/Optimization): Optimize build of units update object by leveraging cache.

* Remove whitespaces.

* Add alternative hooks to handle transmog and other similar things.

* Fix build on some compilers.

* Fix codestyle

* Fix build again.

* Take into account updateType.
This commit is contained in:
Anton Popovichenko
2024-04-05 08:03:11 +02:00
committed by GitHub
parent 94df67b1c2
commit 1f640c9872
15 changed files with 302 additions and 156 deletions

View File

@@ -186,7 +186,7 @@ void Object::BuildMovementUpdateBlock(UpdateData* data, uint32 flags) const
data->AddUpdateBlock(buf);
}
void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) const
void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target)
{
if (!target)
return;
@@ -254,7 +254,7 @@ void Object::SendUpdateToPlayer(Player* player)
player->GetSession()->SendPacket(&packet);
}
void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player* target) const
void Object::BuildValuesUpdateBlockForPlayer(UpdateData* data, Player* target)
{
ByteBuffer buf(500);
@@ -494,7 +494,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint16 flags) const
}
}
void Object::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target) const
void Object::BuildValuesUpdate(uint8 updateType, ByteBuffer* data, Player* target)
{
if (!target)
return;
@@ -542,7 +542,7 @@ void Object::ClearUpdateMask(bool remove)
}
}
void Object::BuildFieldsUpdate(Player* player, UpdateDataMapType& data_map) const
void Object::BuildFieldsUpdate(Player* player, UpdateDataMapType& data_map)
{
UpdateDataMapType::iterator iter = data_map.find(player);