aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2023-11-16 07:55:07 +0100
committerOvahlord <dreadkiller@gmx.de>2023-11-16 07:55:07 +0100
commit0626473f8b3710161a75196c1d25e2a5e4efa1c2 (patch)
tree0246b96e6ad2f6773ff2b1c79614e32f56abcdac /src
parenta3ade798993c04ee92cabdcca42deacbee427e9c (diff)
Core/Packets: fixed SM SMSG_UPDATE_OBJECT packet structure
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Object.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 2130605f1d6..0f1ede2fec5 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -726,9 +726,11 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
bool HasSceneInstanceIDs = !player->GetSceneMgr().GetSceneTemplateByInstanceMap().empty();
bool HasRuneState = ToUnit()->GetPowerIndex(POWER_RUNES) != MAX_POWERS;
+ bool HasActionButtons = player->IsLoading();
data->WriteBit(HasSceneInstanceIDs);
data->WriteBit(HasRuneState);
+ data->WriteBit(HasActionButtons);
data->FlushBits();
if (HasSceneInstanceIDs)
{
@@ -747,6 +749,18 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
for (uint32 i = 0; i < maxRunes; ++i)
*data << uint8((baseCd - float(player->GetRuneCooldown(i))) / baseCd * 255);
}
+ if (HasActionButtons)
+ {
+ ActionButtonList const& actionButtonList = player->GetActionButtons();
+ for (uint8 i = 0; i < MAX_ACTION_BUTTONS; ++i)
+ {
+ auto itr = actionButtonList.find(i);
+ if (itr != actionButtonList.end() && itr->second.uState != ACTIONBUTTON_DELETED)
+ *data << uint32(itr->second.GetAction());
+ else
+ *data << uint32(0);
+ }
+ }
}
if (flags.Conversation)