aboutsummaryrefslogtreecommitdiff
path: root/src/game/FleeingMovementGenerator.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-17 13:34:43 -0600
committermegamage <none@none>2009-01-17 13:34:43 -0600
commit8739ded05dbf68486551531024f1ad8ad7b389cf (patch)
tree87f71484a1fa5b4578fc46bebafa4adc64078fc2 /src/game/FleeingMovementGenerator.cpp
parentfa2e6622ad9dca5051b451e14ea303670ec65fa6 (diff)
parentf414ab1686c300787e3dfb0c397227062b8feea6 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/FleeingMovementGenerator.cpp')
-rw-r--r--src/game/FleeingMovementGenerator.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/game/FleeingMovementGenerator.cpp b/src/game/FleeingMovementGenerator.cpp
index 69c2c37dffe..6566ad4320e 100644
--- a/src/game/FleeingMovementGenerator.cpp
+++ b/src/game/FleeingMovementGenerator.cpp
@@ -306,6 +306,10 @@ FleeingMovementGenerator<T>::Initialize(T &owner)
return;
_Init(owner);
+ owner.CastStop();
+ owner.addUnitState(UNIT_STAT_FLEEING);
+ owner.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
+ owner.SetUInt64Value(UNIT_FIELD_TARGET, 0);
owner.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
i_caster_x = fright->GetPositionX();
i_caster_y = fright->GetPositionY();
@@ -323,7 +327,7 @@ FleeingMovementGenerator<Creature>::_Init(Creature &owner)
{
if(!&owner)
return;
- owner.SetUInt64Value(UNIT_FIELD_TARGET, 0);
+
is_water_ok = owner.canSwim();
is_land_ok = owner.canWalk();
}
@@ -340,7 +344,10 @@ template<class T>
void
FleeingMovementGenerator<T>::Finalize(T &owner)
{
+ owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
owner.clearUnitState(UNIT_STAT_FLEEING);
+ if(owner.GetTypeId() == TYPEID_UNIT && owner.getVictim())
+ owner.SetUInt64Value(UNIT_FIELD_TARGET, owner.getVictim()->GetGUID());
}
template<class T>