aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-02-28 16:39:59 -0300
committerariel- <ariel-@users.noreply.github.com>2017-02-28 16:39:59 -0300
commitff43a74822630c11851abae4cba35a6542e0c86a (patch)
tree4baf55aad164279a7d4dfd9dd3be57d56bd9bc8b /src
parent2e68736afcab26d0bb8e1408fa639d09d4772dfb (diff)
Core/Entities: spawned movementtype should override template movementtype
Core/SmartAI: pass the CreatureData pointer (if any) on updating template Closes #19223
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp6
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 8bb526f9373..20ad2721b67 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1025,9 +1025,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 ce40889bc99..f25d3f63fb3 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -461,7 +461,7 @@ bool Creature::InitEntry(uint32 entry, CreatureData const* data /*= nullptr*/)
SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 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;