aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index a758e836845..edbeaf4c9ec 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -14789,24 +14789,37 @@ void Unit::SetControlled(bool apply, UnitState state)
if (hasUnitState(state))
return;
- addUnitState(state);
-
switch(state)
{
case UNIT_STAT_STUNNED:
+ {
+ addUnitState(state);
SetStunned(true);
+ CastStop();
+ }
break;
case UNIT_STAT_ROOT:
if (!hasUnitState(UNIT_STAT_STUNNED))
- SetRooted(true);
+ {
+ addUnitState(state);
+ SetRooted(true);
+ }
break;
case UNIT_STAT_CONFUSED:
if (!hasUnitState(UNIT_STAT_STUNNED))
+ {
+ addUnitState(state);
SetConfused(true);
+ CastStop();
+ }
break;
case UNIT_STAT_FLEEING:
if (!hasUnitState(UNIT_STAT_STUNNED | UNIT_STAT_CONFUSED))
+ {
+ addUnitState(state);
SetFeared(true);
+ CastStop();
+ }
break;
default:
break;