Core: Updated to 11.1.0

Port From (https://github.com/TrinityCore/TrinityCore/commit/23624ed75abc8cbb77bb2e24a08e0836e4c41db5)
This commit is contained in:
Hondacrx
2025-06-16 14:47:31 -04:00
parent b6bccbad44
commit 7fd54e6175
65 changed files with 4240 additions and 3968 deletions
+48 -2
View File
@@ -249,9 +249,14 @@ namespace Game.Entities
public void BuildEntityFragmentsForValuesUpdateForPlayerWithMask(WorldPacket data, UpdateFieldFlag flags)
{
byte contentsChangedMask = EntityDefinitionsConst.CGObjectChangedMask;
foreach (var updateableFragmentId in m_entityFragments.GetUpdateableIds())
if (EntityFragmentsHolder.IsIndirectFragment(updateableFragmentId))
contentsChangedMask |= (byte)(m_entityFragments.GetUpdateMaskFor(updateableFragmentId) >> 1); // set the "fragment exists" bit
data.WriteUInt8((byte)(flags.HasFlag(UpdateFieldFlag.Owner) ? 1 : 0));
data.WriteUInt8(0); // m_entityFragments.IdsChanged
data.WriteUInt8(EntityDefinitionsConst.CGObjectUpdateMask);
data.WriteUInt8(contentsChangedMask);
}
public void BuildDestroyUpdateBlock(UpdateData data)
@@ -319,6 +324,7 @@ namespace Game.Entities
bool HasSpline = unit.IsSplineEnabled();
bool HasInertia = unit.m_movementInfo.inertia.HasValue;
bool HasAdvFlying = unit.m_movementInfo.advFlying.HasValue;
bool HasDriveStatus = unit.m_movementInfo.driveStatus.HasValue;
bool HasStandingOnGameObjectGUID = unit.m_movementInfo.standingOnGameObjectGUID.HasValue;
data.WritePackedGuid(GetGUID()); // MoverGUID
@@ -349,6 +355,9 @@ namespace Game.Entities
data.WriteBit(false); // HeightChangeFailed
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())
MovementExtensions.WriteTransportInfo(data, unit.m_movementInfo.transport);
@@ -382,6 +391,14 @@ namespace Game.Entities
}
}
if (HasDriveStatus)
{
data.WriteBit(unit.m_movementInfo.driveStatus.Value.accelerating);
data.WriteBit(unit.m_movementInfo.driveStatus.Value.drifting);
data.WriteFloat(unit.m_movementInfo.driveStatus.Value.speed);
data.WriteFloat(unit.m_movementInfo.driveStatus.Value.movementAngle);
}
data.WriteFloat(unit.GetSpeed(UnitMoveType.Walk));
data.WriteFloat(unit.GetSpeed(UnitMoveType.Run));
data.WriteFloat(unit.GetSpeed(UnitMoveType.RunBack));
@@ -841,7 +858,6 @@ namespace Game.Entities
{
m_values.ClearChangesMask(m_objectData);
m_entityFragments.IdsChanged = false;
m_entityFragments.ContentsChangedMask = EntityDefinitionsConst.CGObjectActiveMask;
if (m_objectUpdated)
{
@@ -3963,6 +3979,7 @@ namespace Game.Entities
public JumpInfo jump;
public float stepUpStartElevation { get; set; }
public AdvFlying? advFlying;
public Drive? driveStatus;
public ObjectGuid? standingOnGameObjectGUID;
public MovementInfo()
@@ -4027,12 +4044,14 @@ namespace Game.Entities
public uint prevTime;
public uint vehicleId;
}
public struct Inertia
{
public int id;
public Position force;
public uint lifetime;
}
public struct JumpInfo
{
public void Reset()
@@ -4047,12 +4066,21 @@ namespace Game.Entities
public float cosAngle;
public float xyspeed;
}
// advflying
public struct AdvFlying
{
public float forwardVelocity;
public float upVelocity;
}
public struct Drive
{
public float speed;
public float movementAngle;
public bool accelerating;
public bool drifting;
}
}
public class MovementForce
@@ -4064,6 +4092,9 @@ namespace Game.Entities
public float Magnitude;
public MovementForceType Type;
public int MovementForceID;
public int Unknown1110_1;
public int Unused1110;
public uint Flags;
public void Read(WorldPacket data)
{
@@ -4073,6 +4104,9 @@ namespace Game.Entities
TransportID = data.ReadUInt32();
Magnitude = data.ReadFloat();
MovementForceID = data.ReadInt32();
Unknown1110_1 = data.ReadInt32();
Unused1110 = data.ReadInt32();
Flags = data.ReadUInt32();
Type = (MovementForceType)data.ReadBits<byte>(2);
}
@@ -4264,7 +4298,13 @@ namespace Game.Entities
{
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
if ((EntityFragment)updateData._blockBit == EntityFragment.CGObject)
{
_changesMask.Reset(updateData.Bit);
if (!_changesMask.IsAnySet())
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
}
else
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
updateData.ClearChangesMask();
}
@@ -4273,7 +4313,13 @@ namespace Game.Entities
{
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
if ((EntityFragment)updateData._blockBit == EntityFragment.CGObject)
{
_changesMask.Reset(updateData.Bit);
if (!_changesMask.IsAnySet())
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
}
else
_owner.m_entityFragments.ContentsChangedMask &= (byte)~_owner.m_entityFragments.GetUpdateMaskFor((EntityFragment)updateData._blockBit);
if (typeof(IHasChangesMask).IsAssignableFrom(typeof(U)))
((IHasChangesMask)updateField._value).ClearChangesMask();