diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp index 25e37ab16..64a093669 100644 --- a/src/game/TargetedMovementGenerator.cpp +++ b/src/game/TargetedMovementGenerator.cpp @@ -28,8 +28,8 @@ #include //-----------------------------------------------// -template -void TargetedMovementGeneratorMedium::_setTargetLocation(T &owner) +template +void TargetedMovementGeneratorMedium::_setTargetLocation(T &owner) { if (!i_target.isValid() || !i_target->IsInWorld()) return; @@ -77,26 +77,33 @@ void TargetedMovementGeneratorMedium::_setTargetLocation(T &owner) } template<> -void TargetedMovementGeneratorMedium::UpdateFinalDistance(float fDistance) +void TargetedMovementGeneratorMedium >::UpdateFinalDistance(float fDistance) { // nothing to do for Player } template<> -void TargetedMovementGeneratorMedium::UpdateFinalDistance(float fDistance) +void TargetedMovementGeneratorMedium >::UpdateFinalDistance(float fDistance) +{ + // nothing to do for Player +} + +template<> +void TargetedMovementGeneratorMedium >::UpdateFinalDistance(float fDistance) { i_offset = fDistance; i_recalculateTravel = true; } -template -Unit* TargetedMovementGeneratorMedium::GetTarget() const +template<> +void TargetedMovementGeneratorMedium >::UpdateFinalDistance(float fDistance) { - return i_target.getTarget(); + i_offset = fDistance; + i_recalculateTravel = true; } -template -bool TargetedMovementGeneratorMedium::Update(T &owner, const uint32 & time_diff) +template +bool TargetedMovementGeneratorMedium::Update(T &owner, const uint32 & time_diff) { if (!i_target.isValid() || !i_target->IsInWorld()) return false; @@ -236,10 +243,14 @@ void FollowMovementGenerator::Reset(T &owner) } //-----------------------------------------------// -template Unit* TargetedMovementGeneratorMedium::GetTarget() const; -template Unit* TargetedMovementGeneratorMedium::GetTarget() const; -template bool TargetedMovementGeneratorMedium::Update(Player &, const uint32 &); -template bool TargetedMovementGeneratorMedium::Update(Creature &, const uint32 &); +template void TargetedMovementGeneratorMedium >::_setTargetLocation(Player &); +template void TargetedMovementGeneratorMedium >::_setTargetLocation(Player &); +template void TargetedMovementGeneratorMedium >::_setTargetLocation(Creature &); +template void TargetedMovementGeneratorMedium >::_setTargetLocation(Creature &); +template bool TargetedMovementGeneratorMedium >::Update(Player &, const uint32 &); +template bool TargetedMovementGeneratorMedium >::Update(Player &, const uint32 &); +template bool TargetedMovementGeneratorMedium >::Update(Creature &, const uint32 &); +template bool TargetedMovementGeneratorMedium >::Update(Creature &, const uint32 &); template void ChaseMovementGenerator::Finalize(Player &); template void ChaseMovementGenerator::Finalize(Creature &); diff --git a/src/game/TargetedMovementGenerator.h b/src/game/TargetedMovementGenerator.h index 89e8f905d..531cd878e 100644 --- a/src/game/TargetedMovementGenerator.h +++ b/src/game/TargetedMovementGenerator.h @@ -33,13 +33,13 @@ class MANGOS_DLL_SPEC TargetedMovementGeneratorBase FollowerReference i_target; }; -template +template class MANGOS_DLL_SPEC TargetedMovementGeneratorMedium -: public MovementGeneratorMedium< T, TargetedMovementGeneratorMedium >, public TargetedMovementGeneratorBase +: public MovementGeneratorMedium< T, D >, public TargetedMovementGeneratorBase { protected: - TargetedMovementGeneratorMedium() : MovementGeneratorMedium< T, TargetedMovementGeneratorMedium >(), TargetedMovementGeneratorBase() {} - + TargetedMovementGeneratorMedium() + : TargetedMovementGeneratorBase(), i_offset(0), i_angle(0), i_recalculateTravel(false) {} TargetedMovementGeneratorMedium(Unit &target) : TargetedMovementGeneratorBase(target), i_offset(0), i_angle(0), i_recalculateTravel(false) {} TargetedMovementGeneratorMedium(Unit &target, float offset, float angle) @@ -47,13 +47,9 @@ class MANGOS_DLL_SPEC TargetedMovementGeneratorMedium ~TargetedMovementGeneratorMedium() {} public: - void Initialize(T &) {} - void Finalize(T &) {} - void Interrupt(T &) {} - void Reset(T &) {} bool Update(T &, const uint32 &); - Unit* GetTarget() const; + Unit* GetTarget() const { return i_target.getTarget(); } bool GetDestination(float &x, float &y, float &z) const { @@ -76,12 +72,13 @@ class MANGOS_DLL_SPEC TargetedMovementGeneratorMedium }; template -class MANGOS_DLL_SPEC ChaseMovementGenerator : public TargetedMovementGeneratorMedium +class MANGOS_DLL_SPEC ChaseMovementGenerator : public TargetedMovementGeneratorMedium > { public: - ChaseMovementGenerator(Unit &target) : TargetedMovementGeneratorMedium(target) {} + ChaseMovementGenerator(Unit &target) + : TargetedMovementGeneratorMedium >(target) {} ChaseMovementGenerator(Unit &target, float offset, float angle) - : TargetedMovementGeneratorMedium(target, offset, angle) {} + : TargetedMovementGeneratorMedium >(target, offset, angle) {} ~ChaseMovementGenerator() {} MovementGeneratorType GetMovementGeneratorType() { return CHASE_MOTION_TYPE; } @@ -90,16 +87,16 @@ class MANGOS_DLL_SPEC ChaseMovementGenerator : public TargetedMovementGeneratorM void Finalize(T &); void Interrupt(T &); void Reset(T &); - bool Update(T &, const uint32 &); }; template -class MANGOS_DLL_SPEC FollowMovementGenerator : public TargetedMovementGeneratorMedium +class MANGOS_DLL_SPEC FollowMovementGenerator : public TargetedMovementGeneratorMedium > { public: - FollowMovementGenerator(Unit &target) : TargetedMovementGeneratorMedium(target) {} + FollowMovementGenerator(Unit &target) + : TargetedMovementGeneratorMedium >(target){} FollowMovementGenerator(Unit &target, float offset, float angle) - : TargetedMovementGeneratorMedium(target, offset, angle) {} + : TargetedMovementGeneratorMedium >(target, offset, angle) {} ~FollowMovementGenerator() {} MovementGeneratorType GetMovementGeneratorType() { return FOLLOW_MOTION_TYPE; } @@ -108,7 +105,6 @@ class MANGOS_DLL_SPEC FollowMovementGenerator : public TargetedMovementGenerator void Finalize(T &); void Interrupt(T &); void Reset(T &); - bool Update(T &, const uint32 &); }; #endif diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3c55f7cef..04d3492ab 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9206" + #define REVISION_NR "9207" #endif // __REVISION_NR_H__