aboutsummaryrefslogtreecommitdiff
path: root/src/game/TargetedMovementGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/TargetedMovementGenerator.cpp')
-rw-r--r--src/game/TargetedMovementGenerator.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/game/TargetedMovementGenerator.cpp b/src/game/TargetedMovementGenerator.cpp
index 46c18b1578f..061e875a91c 100644
--- a/src/game/TargetedMovementGenerator.cpp
+++ b/src/game/TargetedMovementGenerator.cpp
@@ -22,6 +22,7 @@
#include "TargetedMovementGenerator.h"
#include "Errors.h"
#include "Creature.h"
+#include "CreatureAI.h" // MrSmite 09-05-2009 PetAI_v1.0
#include "DestinationHolderImp.h"
#include "World.h"
@@ -236,6 +237,12 @@ TargetedMovementGenerator<T>::Update(T &owner, const uint32 & time_diff)
owner.Attack(i_target.getTarget(),true);
}
}
+
+ // MrSmite 09-05-2009 PetAI_v1.0
+ // Implemented for PetAI to handle resetting flags when pet owner reached
+ if (i_destinationHolder.HasArrived())
+ MovementInform(owner);
+
return true;
}
@@ -246,6 +253,20 @@ TargetedMovementGenerator<T>::GetTarget() const
return i_target.getTarget();
}
+template<class T>
+void TargetedMovementGenerator<T>::MovementInform(T &unit)
+{
+ // MrSmite 09-05-2009 PetAI_v1.0
+}
+
+template <> void TargetedMovementGenerator<Creature>::MovementInform(Creature &unit)
+{
+ // MrSmite 09-05-2009 PetAI_v1.0
+ // Pass back the GUIDLow of the target. If it is pet's owner then PetAI will handle
+ unit.AI()->MovementInform(TARGETED_MOTION_TYPE, i_target.getTarget()->GetGUIDLow());
+}
+
+template void TargetedMovementGenerator<Player>::MovementInform(Player&); // MrSmite 09-05-2009 PetAI_v1.0 - Not implemented for players
template TargetedMovementGenerator<Player>::TargetedMovementGenerator(Unit &target, float offset, float angle);
template TargetedMovementGenerator<Creature>::TargetedMovementGenerator(Unit &target, float offset, float angle);
template bool TargetedMovementGenerator<Player>::_setTargetLocation(Player &);