mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-18 22:19:54 -04:00
Core: Updated to 11.1.0
This commit is contained in:
@@ -247,11 +247,16 @@ void Object::BuildEntityFragments(ByteBuffer* data, std::span<WowCS::EntityFragm
|
||||
*data << WorldPackets::As<uint8>(WowCS::EntityFragment::End);
|
||||
}
|
||||
|
||||
void Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer* data, EnumFlag<UF::UpdateFieldFlag> flags)
|
||||
void Object::BuildEntityFragmentsForValuesUpdateForPlayerWithMask(ByteBuffer* data, EnumFlag<UF::UpdateFieldFlag> flags) const
|
||||
{
|
||||
uint8 contentsChangedMask = WowCS::CGObjectChangedMask;
|
||||
for (WowCS::EntityFragment updateableFragmentId : m_entityFragments.GetUpdateableIds())
|
||||
if (WowCS::IsIndirectFragment(updateableFragmentId))
|
||||
contentsChangedMask |= m_entityFragments.GetUpdateMaskFor(updateableFragmentId) >> 1; // set the "fragment exists" bit
|
||||
|
||||
*data << uint8(flags.HasFlag(UF::UpdateFieldFlag::Owner));
|
||||
*data << uint8(false); // m_entityFragments.IdsChanged
|
||||
*data << uint8(WowCS::CGObjectUpdateMask);
|
||||
*data << uint8(contentsChangedMask);
|
||||
}
|
||||
|
||||
void Object::BuildDestroyUpdateBlock(UpdateData* data) const
|
||||
@@ -329,6 +334,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
|
||||
bool HasSpline = unit->IsSplineEnabled();
|
||||
bool HasInertia = unit->m_movementInfo.inertia.has_value();
|
||||
bool HasAdvFlying = unit->m_movementInfo.advFlying.has_value();
|
||||
bool HasDriveStatus = unit->m_movementInfo.driveStatus.has_value();
|
||||
bool HasStandingOnGameObjectGUID = unit->m_movementInfo.standingOnGameObjectGUID.has_value();
|
||||
|
||||
*data << GetGUID(); // MoverGUID
|
||||
@@ -360,6 +366,8 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
|
||||
data->WriteBit(false); // RemoteTimeValid
|
||||
data->WriteBit(HasInertia); // HasInertia
|
||||
data->WriteBit(HasAdvFlying); // HasAdvFlying
|
||||
data->WriteBit(HasDriveStatus); // HasDriveStatus
|
||||
data->FlushBits();
|
||||
|
||||
if (!unit->m_movementInfo.transport.guid.IsEmpty())
|
||||
*data << unit->m_movementInfo.transport;
|
||||
@@ -393,6 +401,14 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
|
||||
}
|
||||
}
|
||||
|
||||
if (HasDriveStatus)
|
||||
{
|
||||
data->WriteBit(unit->m_movementInfo.driveStatus->accelerating);
|
||||
data->WriteBit(unit->m_movementInfo.driveStatus->drifting);
|
||||
*data << float(unit->m_movementInfo.driveStatus->speed);
|
||||
*data << float(unit->m_movementInfo.driveStatus->movementAngle);
|
||||
}
|
||||
|
||||
*data << float(unit->GetSpeed(MOVE_WALK));
|
||||
*data << float(unit->GetSpeed(MOVE_RUN));
|
||||
*data << float(unit->GetSpeed(MOVE_RUN_BACK));
|
||||
@@ -838,7 +854,6 @@ void Object::ClearUpdateMask(bool remove)
|
||||
{
|
||||
m_values.ClearChangesMask(&Object::m_objectData);
|
||||
m_entityFragments.IdsChanged = false;
|
||||
m_entityFragments.ContentsChangedMask = WowCS::CGObjectActiveMask;
|
||||
|
||||
if (m_objectUpdated)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user