diff options
| author | megamage <none@none> | 2009-01-17 13:34:43 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-01-17 13:34:43 -0600 |
| commit | 8739ded05dbf68486551531024f1ad8ad7b389cf (patch) | |
| tree | 87f71484a1fa5b4578fc46bebafa4adc64078fc2 /src/game/FleeingMovementGenerator.cpp | |
| parent | fa2e6622ad9dca5051b451e14ea303670ec65fa6 (diff) | |
| parent | f414ab1686c300787e3dfb0c397227062b8feea6 (diff) | |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/FleeingMovementGenerator.cpp')
| -rw-r--r-- | src/game/FleeingMovementGenerator.cpp | 9 |
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> |
