31#include <unordered_map>
46 struct SpellEffectExtraData;
121 void InitializeDefault();
126 std::vector<MovementGeneratorInformation> GetMovementGeneratorsInformation()
const;
154 void PropagateSpeedChange();
155 bool GetDestination(
float &x,
float &y,
float &z);
159 void MoveTargetedHome();
183 void MoveCloserAndStop(
uint32 id,
Unit* target,
float distance);
197 void MoveJump(
uint32 id,
Position const& pos, std::variant<std::monostate, float, Milliseconds> speedOrTime = {},
202 void MoveCirclePath(
float x,
float y,
float z,
float radius,
bool clockwise,
uint8 stepCount,
207 void MoveAlongSplineChain(
uint32 pointId,
uint16 dbChainId,
bool walk);
208 void MoveAlongSplineChain(
uint32 pointId, std::vector<SplineChainLink>
const& chain,
bool walk);
210 void MoveFall(
uint32 id = 0,
212 void MoveSeekAssistance(
float x,
float y,
float z);
213 void MoveSeekAssistanceDistract(
uint32 timer);
216 void MoveDistract(
uint32 time,
float orientation);
242 void MoveFormation(
Unit* leader,
float range,
float angle,
uint32 point1,
uint32 point2);
255 void ResolveDelayedActions();
256 void Remove(MotionMasterContainer::iterator iterator,
bool active,
bool movementInform);
257 void Pop(
bool active,
bool movementInform);
258 void DirectInitialize();
260 void DirectClearDefault();
265 void DeleteDefault(
bool active,
bool movementInform);
268 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::variant< std::monostate, Position, Unit const *, float > MovementFacingTarget
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
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)