diff options
| author | megamage <none@none> | 2009-02-10 10:03:39 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-02-10 10:03:39 -0600 |
| commit | 31f49932647433b484bf91a9cc5a56fd44473459 (patch) | |
| tree | 685350874e7c3973333543f00c646fb14fb884b9 /src/game/FleeingMovementGenerator.cpp | |
| parent | 22855d6e79e5a7007845b5d6a452aa94cc020b9c (diff) | |
[7260] Fixed access to uninitilized fields in FleeingMovementGenerator and Creature::IsOutOfThreatArea. Author: VladimirMangos
--HG--
branch : trunk
Diffstat (limited to 'src/game/FleeingMovementGenerator.cpp')
| -rw-r--r-- | src/game/FleeingMovementGenerator.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/game/FleeingMovementGenerator.cpp b/src/game/FleeingMovementGenerator.cpp index c64b653d5e9..9f705074d75 100644 --- a/src/game/FleeingMovementGenerator.cpp +++ b/src/game/FleeingMovementGenerator.cpp @@ -301,19 +301,26 @@ FleeingMovementGenerator<T>::Initialize(T &owner) if(!&owner) return; - Unit * fright = ObjectAccessor::GetUnit(owner, i_frightGUID); - if(!fright) - 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(); - i_caster_z = fright->GetPositionZ(); + + if(Unit * fright = ObjectAccessor::GetUnit(owner, i_frightGUID)) + { + i_caster_x = fright->GetPositionX(); + i_caster_y = fright->GetPositionY(); + i_caster_z = fright->GetPositionZ(); + } + else + { + i_caster_x = owner.GetPositionX(); + i_caster_y = owner.GetPositionY(); + i_caster_z = owner.GetPositionZ(); + } + i_only_forward = true; i_cur_angle = 0.0f; i_last_distance_from_caster = 0.0f; |
