aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSnapperRy <snapperryen@gmail.com>2016-07-15 16:48:04 +0200
committerGitHub <noreply@github.com>2016-07-15 16:48:04 +0200
commitf78ab9aba45e3b4189a71bb68de6d5b13f45bbca (patch)
treeec6fb3b6cea6ece0b23e50ee6204d8a6a236070f /src
parent1a2bd0dc3aaa5668521cf758165c64f106e9a276 (diff)
Core/Creature: implement INHABIT_ROOT to apply UNIT_STATE_ROOT to creature (#17543)
Add flag 8 to InhabitType for creatures that should appear rooted client-side
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp3
-rw-r--r--src/server/game/Entities/Creature/Creature.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 5d19895824a..4a5f70165fc 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -481,6 +481,9 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/)
ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true);
}
+ if (cInfo->InhabitType & INHABIT_ROOT)
+ SetControlled(true, UNIT_STATE_ROOT);
+
UpdateMovementFlags();
LoadCreaturesAddon();
return true;
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 1a59587f018..642b8c39252 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -294,7 +294,8 @@ enum InhabitTypeValues
INHABIT_GROUND = 1,
INHABIT_WATER = 2,
INHABIT_AIR = 4,
- INHABIT_ANYWHERE = INHABIT_GROUND | INHABIT_WATER | INHABIT_AIR
+ INHABIT_ROOT = 8,
+ INHABIT_ANYWHERE = INHABIT_GROUND | INHABIT_WATER | INHABIT_AIR | INHABIT_ROOT
};
// Enums used by StringTextData::Type (CreatureEventAI)