aboutsummaryrefslogtreecommitdiff
path: root/src/game/PointMovementGenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/PointMovementGenerator.cpp')
-rw-r--r--src/game/PointMovementGenerator.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/game/PointMovementGenerator.cpp b/src/game/PointMovementGenerator.cpp
index 70c2c4d966e..adaaf9afbfc 100644
--- a/src/game/PointMovementGenerator.cpp
+++ b/src/game/PointMovementGenerator.cpp
@@ -56,9 +56,7 @@ bool PointMovementGenerator<T>::Update(T &unit, const uint32 &diff)
if(i_destinationHolder.HasArrived())
{
- //unit.StopMoving();
- if(!unit.hasUnitState(UNIT_STAT_CHARGING))
- MovementInform(unit);
+ arrived = true;
return false;
}
@@ -66,6 +64,15 @@ bool PointMovementGenerator<T>::Update(T &unit, const uint32 &diff)
}
template<class T>
+void PointMovementGenerator<T>:: Finalize(T &unit)
+{
+ if(unit.hasUnitState(UNIT_STAT_CHARGING))
+ unit.clearUnitState(UNIT_STAT_CHARGING);
+ else if(arrived)
+ MovementInform(unit);
+}
+
+template<class T>
void PointMovementGenerator<T>::MovementInform(T &unit)
{
}
@@ -78,7 +85,8 @@ template <> void PointMovementGenerator<Creature>::MovementInform(Creature &unit
template void PointMovementGenerator<Player>::Initialize(Player&);
template bool PointMovementGenerator<Player>::Update(Player &, const uint32 &diff);
template void PointMovementGenerator<Player>::MovementInform(Player&);
+template void PointMovementGenerator<Player>::Finalize(Player&);
template void PointMovementGenerator<Creature>::Initialize(Creature&);
template bool PointMovementGenerator<Creature>::Update(Creature&, const uint32 &diff);
-
+template void PointMovementGenerator<Creature>::Finalize(Creature&);