diff options
Diffstat (limited to 'src/game/FleeingMovementGenerator.h')
-rw-r--r-- | src/game/FleeingMovementGenerator.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game/FleeingMovementGenerator.h b/src/game/FleeingMovementGenerator.h index 98a2058ad1d..0bc4bdb9757 100644 --- a/src/game/FleeingMovementGenerator.h +++ b/src/game/FleeingMovementGenerator.h @@ -17,31 +17,39 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef TRINITY_FLEEINGMOVEMENTGENERATOR_H #define TRINITY_FLEEINGMOVEMENTGENERATOR_H + #include "MovementGenerator.h" #include "DestinationHolder.h" #include "Traveller.h" + template<class T> class TRINITY_DLL_SPEC FleeingMovementGenerator : public MovementGeneratorMedium< T, FleeingMovementGenerator<T> > { public: FleeingMovementGenerator(uint64 fright) : i_frightGUID(fright), i_nextCheckTime(0) {} + void Initialize(T &); void Finalize(T &); void Reset(T &); bool Update(T &, const uint32 &); bool GetDestination(float &x, float &y, float &z) const; + MovementGeneratorType GetMovementGeneratorType() { return FLEEING_MOTION_TYPE; } + private: void _setTargetLocation(T &owner); bool _getPoint(T &owner, float &x, float &y, float &z); bool _setMoveData(T &owner); void _Init(T &); + bool is_water_ok :1; bool is_land_ok :1; bool i_only_forward:1; + float i_caster_x; float i_caster_y; float i_caster_z; @@ -50,8 +58,10 @@ class TRINITY_DLL_SPEC FleeingMovementGenerator float i_cur_angle; uint64 i_frightGUID; TimeTracker i_nextCheckTime; + DestinationHolder< Traveller<T> > i_destinationHolder; }; + class MANGOS_DLL_SPEC TimedFleeingMovementGenerator : public FleeingMovementGenerator<Creature> { @@ -59,11 +69,14 @@ class MANGOS_DLL_SPEC TimedFleeingMovementGenerator TimedFleeingMovementGenerator(uint64 fright, uint32 time) : FleeingMovementGenerator<Creature>(fright), i_totalFleeTime(time) {} + MovementGeneratorType GetMovementGeneratorType() { return TIMED_FLEEING_MOTION_TYPE; } bool Update(Unit &, const uint32 &); void Finalize(Unit &); + private: TimeTracker i_totalFleeTime; }; + #endif |