From f78ab9aba45e3b4189a71bb68de6d5b13f45bbca Mon Sep 17 00:00:00 2001 From: SnapperRy Date: Fri, 15 Jul 2016 16:48:04 +0200 Subject: 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 --- src/server/game/Entities/Creature/Creature.cpp | 3 +++ src/server/game/Entities/Creature/Creature.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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) -- cgit v1.2.3