diff --git a/Source/Framework/Constants/Movement/MovementConst.cs b/Source/Framework/Constants/Movement/MovementConst.cs index 061757860..c261619fe 100644 --- a/Source/Framework/Constants/Movement/MovementConst.cs +++ b/Source/Framework/Constants/Movement/MovementConst.cs @@ -136,4 +136,10 @@ namespace Framework.Constants Mount = 1, Force = 2 } + + public enum MovementForceType + { + SingleDirectional = 0, // always in a single direction + Gravity = 1 // pushes/pulls away from a single point + } } diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 547fdecf0..449884deb 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -3509,7 +3509,7 @@ namespace Game.Entities public Vector3 Direction; public uint TransportID; public float Magnitude; - public byte Type; + public MovementForceType Type; public int Unused910; public void Read(WorldPacket data) @@ -3519,7 +3519,7 @@ namespace Game.Entities Direction = data.ReadVector3(); TransportID = data.ReadUInt32(); Magnitude = data.ReadFloat(); - Type = data.ReadBits(2); + Type = (MovementForceType)data.ReadBits(2); bool has910 = data.HasBit(); if (has910) Unused910 = data.ReadInt32(); diff --git a/Source/Game/Entities/Unit/Unit.Movement.cs b/Source/Game/Entities/Unit/Unit.Movement.cs index aa5c81b0b..70adc3033 100644 --- a/Source/Game/Entities/Unit/Unit.Movement.cs +++ b/Source/Game/Entities/Unit/Unit.Movement.cs @@ -1481,7 +1481,7 @@ namespace Game.Entities public MovementForces GetMovementForces() { return _movementForces; } - void ApplyMovementForce(ObjectGuid id, Vector3 origin, float magnitude, byte type, Vector3 direction, ObjectGuid transportGuid = default) + void ApplyMovementForce(ObjectGuid id, Vector3 origin, float magnitude, MovementForceType type, Vector3 direction, ObjectGuid transportGuid = default) { if (_movementForces == null) _movementForces = new MovementForces(); diff --git a/Source/Game/Networking/Packets/MovementPackets.cs b/Source/Game/Networking/Packets/MovementPackets.cs index 361996da6..416bda84f 100644 --- a/Source/Game/Networking/Packets/MovementPackets.cs +++ b/Source/Game/Networking/Packets/MovementPackets.cs @@ -292,7 +292,7 @@ namespace Game.Networking.Packets { data.WritePackedGuid(movementForce.ID); data.WriteVector3(movementForce.Origin); - if (movementForce.Type == 1 && objectPosition != null) // gravity + if (movementForce.Type == MovementForceType.Gravity && objectPosition != null) // gravity { Vector3 direction = Vector3.Zero; if (movementForce.Magnitude != 0.0f) @@ -322,7 +322,7 @@ namespace Game.Networking.Packets data.WriteUInt32(movementForce.TransportID); data.WriteFloat(movementForce.Magnitude); - data.WriteBits(movementForce.Type, 2); + data.WriteBits((byte)movementForce.Type, 2); data.WriteBit(movementForce.Unused910 != 0); data.FlushBits();