From a24cb8a057d53c4df15b97e536c14640d9d08610 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 28 Feb 2017 16:39:59 -0300 Subject: Core/Entities: spawned movementtype should override template movementtype Core/SmartAI: pass the CreatureData pointer (if any) on updating template (cherrypicked from ff43a74822630c11851abae4cba35a6542e0c86a) Closes #19223 --- src/server/game/AI/SmartScripts/SmartScript.cpp | 6 +++--- src/server/game/Entities/Creature/Creature.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 6d664ddb2dc..f0fee07e8ba 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1183,9 +1183,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (!targets) break; - for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) - if (IsCreature(*itr)) - (*itr)->ToCreature()->UpdateEntry(e.action.updateTemplate.creature, nullptr, e.action.updateTemplate.updateLevel != 0); + for (WorldObject* target : *targets) + if (IsCreature(target)) + target->ToCreature()->UpdateEntry(e.action.updateTemplate.creature, target->ToCreature()->GetCreatureData(), e.action.updateTemplate.updateLevel != 0); delete targets; break; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index aae73db3d69..ae8ccf2c582 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -478,7 +478,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/) SetHoverHeight(cinfo->HoverHeight); // checked at loading - m_defaultMovementType = MovementGeneratorType(cinfo->MovementType); + m_defaultMovementType = MovementGeneratorType(data ? data->movementType : cinfo->MovementType); if (!m_respawnradius && m_defaultMovementType == RANDOM_MOTION_TYPE) m_defaultMovementType = IDLE_MOTION_TYPE; -- cgit v1.2.3