364{
368 {
369 return;
370 }
371
374
376 {
379 if (member ==
m_leader || !member->
IsAlive() || member->
GetVictim() || !pFormationInfo.
HasGroupFlag(std::underlying_type_t<GroupAIFlags>(GroupAIFlags::GROUP_AI_FLAG_FOLLOW_LEADER)))
380 {
381 continue;
382 }
383
384
386 {
387 continue;
388 }
389
390
392 if (
static_cast<float>(M_PI) - std::fabs(std::fabs(
m_leader->
GetOrientation() - pathAngle) -
static_cast<float>(M_PI)) >
static_cast<float>(M_PI)* 0.5f)
393 {
394
395
396
397
399 }
400
401 float const followDist = pFormationInfo.
follow_dist;
402
403 float dx = x + std::cos(followAngle + pathAngle) * followDist;
404 float dy = y + std::sin(followAngle + pathAngle) * followDist;
405 float dz = z;
406
410
412
414 {
416 }
418 {
420 }
421
422
423
426
427 if (speedRate > 0.01f)
428 {
432 }
433 }
434}
@ MOVEMENTFLAG_WALKING
Definition: Unit.h:560
@ UNIT_STATE_NOT_MOVE
Definition: Unit.h:371
UnitMoveType
Definition: Unit.h:377
void NormalizeMapCoord(float &c)
Definition: GridDefines.h:208
UnitMoveType SelectSpeedType(uint32 moveFlags)
Definition: MoveSplineInit.cpp:29
void SetHomePosition(float x, float y, float z, float o)
Definition: Creature.h:328
Definition: CreatureGroups.h:51
float follow_dist
Definition: CreatureGroups.h:63
float follow_angle
Definition: CreatureGroups.h:64
bool HasGroupFlag(uint16 flag) const
Definition: CreatureGroups.h:69
void UpdateGroundPositionZ(float x, float y, float &z) const
Definition: Object.cpp:1530
float GetExactDist(float x, float y, float z) const
Definition: Position.h:178
static float NormalizeOrientation(float o)
Definition: Position.h:233
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
uint32 GetUnitMovementFlags() const
Definition: Unit.h:2287
void SetUnitMovementFlags(uint32 f)
Definition: Unit.h:2288
void AddUnitMovementFlag(uint32 f)
Definition: Unit.h:2284
float GetSpeedRate(UnitMoveType mtype) const
Definition: Unit.h:2260
void SetSpeedRate(UnitMoveType mtype, float rate)
Definition: Unit.h:2262
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1410
void RemoveUnitMovementFlag(uint32 f)
Definition: Unit.h:2285
bool IsWalking() const
Definition: Unit.h:2391
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition: MotionMaster.h:210