diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-06-23 16:45:32 +0200 |
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2019-06-23 16:45:32 +0200 |
| commit | f4b06fd0b7ead843bba8f5215a09abf7976e012c (patch) | |
| tree | 615a9dc5a6063fc16f5476ad7a8c6fa86c35420d /src/server/game/Entities/Unit | |
| parent | 396f87c30dff1b50f1eb0d924778a7fbab7e8d11 (diff) | |
Entities/Unit: Fix an issue where Unit pointers could be left dangling if a channeled Charm was interrupted by a control aura application. Closes #23440.
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 4c36de9b22e..68411bcd0b3 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -11055,12 +11055,14 @@ void Unit::SetControlled(bool apply, UnitState state) if (HasUnitState(state)) return; + if (state & UNIT_STATE_CONTROLLED) + CastStop(); + AddUnitState(state); switch (state) { case UNIT_STATE_STUNNED: SetStunned(true); - CastStop(); break; case UNIT_STATE_ROOT: if (!HasUnitState(UNIT_STATE_STUNNED)) @@ -11073,7 +11075,6 @@ void Unit::SetControlled(bool apply, UnitState state) SendMeleeAttackStop(); // SendAutoRepeatCancel ? SetConfused(true); - CastStop(); } break; case UNIT_STATE_FLEEING: @@ -11083,7 +11084,6 @@ void Unit::SetControlled(bool apply, UnitState state) SendMeleeAttackStop(); // SendAutoRepeatCancel ? SetFeared(true); - CastStop(); } break; default: |
