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();
174 void MoveCloserAndStop(
uint32 id,
Unit* target,
float distance);
183 void MoveJumpTo(
float angle,
float speedXY,
float speedZ);
187 void MoveCirclePath(
float x,
float y,
float z,
float radius,
bool clockwise,
uint8 stepCount,
190 void MoveSmoothPath(
uint32 pointId,
Position const* pathPoints,
size_t pathSize,
bool walk =
false,
bool fly =
false);
192 void MoveAlongSplineChain(
uint32 pointId,
uint16 dbChainId,
bool walk);
193 void MoveAlongSplineChain(
uint32 pointId, std::vector<SplineChainLink>
const& chain,
bool walk);
195 void MoveFall(
uint32 id = 0);
196 void MoveSeekAssistance(
float x,
float y,
float z);
197 void MoveSeekAssistanceDistract(
uint32 timer);
199 void MoveDistract(
uint32 time,
float orientation);
203 Optional<bool> followPathBackwardsFromEndToStart = {},
bool generatePath =
true);
207 Optional<bool> followPathBackwardsFromEndToStart = {},
bool generatePath =
true);
219 void MoveFormation(
Unit* leader,
float range,
float angle,
uint32 point1,
uint32 point2);
223 void CalculateJumpSpeeds(
float dist,
UnitMoveType moveType,
float speedMultiplier,
float minHeight,
float maxHeight,
float& speedXY,
float& speedZ)
const;
234 void ResolveDelayedActions();
235 void Remove(MotionMasterContainer::iterator iterator,
bool active,
bool movementInform);
236 void Pop(
bool active,
bool movementInform);
237 void DirectInitialize();
239 void DirectClearDefault();
244 void DeleteDefault(
bool active,
bool movementInform);
247 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
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 Size(ContainerUnorderedMap< TypeList< H, T >, KEY_TYPE > const &elements, std::size_t *size, SPECIFIC_TYPE *obj)
void Update(VignetteData &vignette, WorldObject const *owner)
void Remove(VignetteData &vignette, WorldObject const *owner)
bool operator()(MovementGenerator const *a, MovementGenerator const *b) const
void operator()(MovementGenerator *a)