aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-12-08 19:02:02 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-08 19:02:02 +0100
commite2de5000acba888e2ae3177893f6063340902ffd (patch)
tree071f4e65cb5b2aae229ab1ed281122da0031759f /src/server/game/Entities
parent8341082ac4bc91f639920fe0c011ddca978da050 (diff)
Core/Movement: Defined movement force type enum
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Object/MovementInfo.h8
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Entities/Unit/Unit.h2
3 files changed, 9 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/MovementInfo.h b/src/server/game/Entities/Object/MovementInfo.h
index 7dcc695721e..97d10d86105 100644
--- a/src/server/game/Entities/Object/MovementInfo.h
+++ b/src/server/game/Entities/Object/MovementInfo.h
@@ -110,6 +110,12 @@ struct MovementInfo
void OutDebug();
};
+enum class MovementForceType : uint8
+{
+ SingleDirectional = 0, // always in a single direction
+ Gravity = 1 // pushes/pulls away from a single point
+};
+
struct MovementForce
{
ObjectGuid ID;
@@ -117,7 +123,7 @@ struct MovementForce
TaggedPosition<Position::XYZ> Direction;
uint32 TransportID = 0;
float Magnitude = 0.0f;
- uint8 Type = 0;
+ MovementForceType Type = MovementForceType::SingleDirectional;
int32 Unused910 = 0;
};
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 296f5a445a1..c4a62aecb66 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -12731,7 +12731,7 @@ void Unit::SendSetVehicleRecId(uint32 vehicleId)
SendMessageToSet(setVehicleRec.Write(), true);
}
-void Unit::ApplyMovementForce(ObjectGuid id, Position origin, float magnitude, uint8 type, Position direction /*= {}*/, ObjectGuid transportGuid /*= ObjectGuid::Empty*/)
+void Unit::ApplyMovementForce(ObjectGuid id, Position origin, float magnitude, MovementForceType type, Position direction /*= {}*/, ObjectGuid transportGuid /*= ObjectGuid::Empty*/)
{
if (!_movementForces)
_movementForces = std::make_unique<MovementForces>();
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 4bd10311718..1229461f673 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1219,7 +1219,7 @@ class TC_GAME_API Unit : public WorldObject
void SendSetVehicleRecId(uint32 vehicleId);
MovementForces const* GetMovementForces() const { return _movementForces.get(); }
- void ApplyMovementForce(ObjectGuid id, Position origin, float magnitude, uint8 type, Position direction = {}, ObjectGuid transportGuid = ObjectGuid::Empty);
+ void ApplyMovementForce(ObjectGuid id, Position origin, float magnitude, MovementForceType type, Position direction = {}, ObjectGuid transportGuid = ObjectGuid::Empty);
void RemoveMovementForce(ObjectGuid id);
bool SetIgnoreMovementForces(bool ignore);
void UpdateMovementForcesModMagnitude();