diff options
Diffstat (limited to 'src/game/MotionMaster.h')
-rw-r--r-- | src/game/MotionMaster.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/game/MotionMaster.h b/src/game/MotionMaster.h index d68a94b7a1f..864c58b3b7b 100644 --- a/src/game/MotionMaster.h +++ b/src/game/MotionMaster.h @@ -63,6 +63,9 @@ enum MMCleanFlag MMCF_RESET = 2 // Flag if need top()->Reset() }; +// assume it is 25 yard per 0.6 second +#define SPEED_CHARGE 42.0f + class TRINITY_DLL_SPEC MotionMaster //: private std::stack<MovementGenerator *> { private: @@ -92,6 +95,7 @@ class TRINITY_DLL_SPEC MotionMaster //: private std::stack<MovementGenerator *> ~MotionMaster(); void Initialize(); + void InitDefault(); int size() const { return i_top + 1; } _Ty top() const { return Impl[i_top]; } @@ -131,12 +135,14 @@ class TRINITY_DLL_SPEC MotionMaster //: private std::stack<MovementGenerator *> void MoveIdle(MovementSlot slot = MOTION_SLOT_ACTIVE); void MoveTargetedHome(); void MoveRandom(float spawndist = 0.0f); - void MoveFollow(Unit* target, float dist, float angle); + void MoveFollow(Unit* target, float dist, float angle, MovementSlot slot = MOTION_SLOT_ACTIVE); void MoveChase(Unit* target, float dist = 0.0f, float angle = 0.0f); void MoveConfused(); void MoveFleeing(Unit* enemy); void MovePoint(uint32 id, float x,float y,float z); - void MoveCharge(float x, float y, float z); + void MoveCharge(float x, float y, float z, float speed = SPEED_CHARGE); + void MoveJumpFrom(float srcX, float srcY, float speedXY, float speedZ); + void MoveJump(float x, float y, float z, float speedXY, float speedZ); void MoveTaxiFlight(uint32 path, uint32 pathnode); void MoveDistract(uint32 time); void MovePath(uint32 path_id, bool repeatable); |