22#include "G3DPosition.hpp"
28 _range(range), _angle(angle), _point1(point1), _point2(point2), _lastLeaderSplineID(0), _hasPredictedDestination(false)
67 if (!owner || !target)
102 if (
Creature* leader = formation->GetLeader())
104 uint8 currentWaypoint = leader->GetCurrentWaypointInfo().first;
142 float relativeAngle = 0.f;
156 float velocity = 0.f;
165 float travelDist = velocity * 1.65f;
175 float velocityMod = std::min<float>(distance / travelDist, 1.5f);
178 velocity *= velocityMod;
193 init.
MoveTo(PositionToVector3(dest));
#define ASSERT_NOTNULL(pointer)
@ MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING
@ MOVEMENTGENERATOR_FLAG_DEACTIVATED
@ MOVEMENTGENERATOR_FLAG_FINALIZED
@ MOVEMENTGENERATOR_FLAG_TRANSITORY
@ MOVEMENTGENERATOR_FLAG_INTERRUPTED
@ MOVEMENTGENERATOR_FLAG_INFORM_ENABLED
@ MOVEMENTGENERATOR_FLAG_INITIALIZED
@ UNIT_STATE_FOLLOW_FORMATION
@ UNIT_STATE_FOLLOW_FORMATION_MOVE
virtual void MovementInform(uint32, uint32)
void SetHomePosition(float x, float y, float z, float o)
CreatureGroup * GetFormation()
bool IsMovementPreventedByCasting() const override
void AddFlag(uint16 const flag)
bool HasFlag(uint16 const flag) const
void RemoveFlag(uint16 const flag)
void MoveTo(Vector3 const &destination, bool generatePath=true, bool forceDestination=false)
void SetVelocity(float velocity)
static Creature * ToCreature(Object *o)
void ClearUnitState(uint32 f)
float GetSpeed(UnitMoveType mtype) const
void AddUnitState(uint32 f)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
std::unique_ptr< Movement::MoveSpline > movespline
void MovePositionToFirstCollision(Position &pos, float dist, float angle)
float GetRelativeAngle(float x, float y) const
float GetExactDist(float x, float y, float z) const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const