31#include <unordered_map>
45 struct SpellEffectExtraData;
120 void InitializeDefault();
125 std::vector<MovementGeneratorInformation> GetMovementGeneratorsInformation()
const;
153 void PropagateSpeedChange();
154 bool GetDestination(
float &x,
float &y,
float &z);
158 void MoveTargetedHome();
175 void MoveCloserAndStop(
uint32 id,
Unit* target,
float distance);
184 void MoveJumpTo(
float angle,
float speedXY,
float speedZ);
188 void MoveCirclePath(
float x,
float y,
float z,
float radius,
bool clockwise,
uint8 stepCount);
189 void MoveSmoothPath(
uint32 pointId,
Position const* pathPoints,
size_t pathSize,
bool walk =
false,
bool fly =
false);
191 void MoveAlongSplineChain(
uint32 pointId,
uint16 dbChainId,
bool walk);
192 void MoveAlongSplineChain(
uint32 pointId, std::vector<SplineChainLink>
const& chain,
bool walk);
194 void MoveFall(
uint32 id = 0);
195 void MoveSeekAssistance(
float x,
float y,
float z);
196 void MoveSeekAssistanceDistract(
uint32 timer);
198 void MoveDistract(
uint32 time,
float orientation);
202 bool followPathBackwardsFromEndToStart =
false,
bool generatePath =
true);
206 bool followPathBackwardsFromEndToStart =
false,
bool generatePath =
true);
208 void MoveFormation(
Unit* leader,
float range,
float angle,
uint32 point1,
uint32 point2);
212 void CalculateJumpSpeeds(
float dist,
UnitMoveType moveType,
float speedMultiplier,
float minHeight,
float maxHeight,
float& speedXY,
float& speedZ)
const;
223 void ResolveDelayedActions();
224 void Remove(MotionMasterContainer::iterator iterator,
bool active,
bool movementInform);
225 void Pop(
bool active,
bool movementInform);
226 void DirectInitialize();
228 void DirectClearDefault();
233 void DeleteDefault(
bool active,
bool movementInform);
236 void ClearBaseUnitStates();
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
static bool EmptyValidator()
MotionMasterDelayedActionType
@ MOTIONMASTER_DELAYED_ADD
@ MOTIONMASTER_DELAYED_REMOVE
@ MOTIONMASTER_DELAYED_REMOVE_TYPE
@ MOTIONMASTER_DELAYED_INITIALIZE
@ MOTIONMASTER_DELAYED_CLEAR_PRIORITY
@ MOTIONMASTER_DELAYED_CLEAR
@ MOTIONMASTER_DELAYED_CLEAR_SLOT
@ MOTIONMASTER_DELAYED_CLEAR_MODE
@ MOTIONMASTER_FLAG_DELAYED
@ MOTIONMASTER_FLAG_INITIALIZING
@ MOTIONMASTER_FLAG_UPDATE
@ MOTIONMASTER_FLAG_INITIALIZATION_PENDING
@ MOTIONMASTER_FLAG_STATIC_INITIALIZATION_PENDING
MovementGeneratorPriority
MovementWalkRunSpeedSelectionMode
std::optional< T > Optional
Optional helper class to wrap optional values within.
DelayedAction(DelayedActionDefine &&action, DelayedActionValidator &&validator, MotionMasterDelayedActionType type)
DelayedAction(DelayedActionDefine &&action, MotionMasterDelayedActionType type)
DelayedActionValidator Validator
DelayedActionDefine Action
bool HasFlag(uint8 const flag) const
void MoveChase(Unit *target, float dist)
std::multiset< MovementGenerator *, MovementGeneratorComparator > MotionMasterContainer
void MoveChase(Unit *target, float dist, float angle)
std::unique_ptr< MovementGenerator, MovementGeneratorDeleter > MovementGeneratorPointer
void AddFlag(uint8 const flag)
MotionMasterUnitStatesContainer _baseUnitStatesMap
void RemoveFlag(uint8 const flag)
std::function< void()> DelayedActionDefine
std::unordered_multimap< uint32, MovementGenerator const * > MotionMasterUnitStatesContainer
std::deque< DelayedAction > _delayedActions
MovementGeneratorPointer _defaultGenerator
std::function< bool()> DelayedActionValidator
MotionMasterContainer _generators
bool operator()(MovementGenerator const *a, MovementGenerator const *b) const
void operator()(MovementGenerator *a)