aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-02-04 00:27:43 +0100
committerQAston <qaston@gmail.com>2011-02-04 00:27:43 +0100
commitd18193e52dd0799927ac925158300ef4e5c88ba8 (patch)
tree07f0d73d551d428d4b2a985e02d33d8e8a18465e /src/server/game/Spells/SpellEffects.cpp
parent1740df0fac298ccb61dd35f4e1c08e76932be212 (diff)
Core/DynamicObjects: Change the way how dynamic objects are bound to their owners, fixes some crashes in Aura::GetOwner.
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 3e8aea4fe63..86268cfbb32 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2556,17 +2556,15 @@ void Spell::EffectPersistentAA(SpellEffIndex effIndex)
delete dynObj;
return;
}
- caster->AddDynObject(dynObj);
dynObj->GetMap()->Add(dynObj);
if (Aura * aura = Aura::TryCreate(m_spellInfo, dynObj, caster, &m_spellValue->EffectBasePoints[0]))
+ {
m_spellAura = aura;
+ m_spellAura->_RegisterForTargets();
+ }
else
- {
- ASSERT(false);
return;
- }
- m_spellAura->_RegisterForTargets();
}
ASSERT(m_spellAura->GetDynobjOwner());
m_spellAura->_ApplyEffectForTargets(effIndex);
@@ -3387,14 +3385,10 @@ void Spell::EffectAddFarsight(SpellEffIndex effIndex)
}
dynObj->SetDuration(duration);
dynObj->SetUInt32Value(DYNAMICOBJECT_BYTES, 0x80000002);
- m_caster->AddDynObject(dynObj);
dynObj->setActive(true); //must before add to map to be put in world container
dynObj->GetMap()->Add(dynObj); //grid will also be loaded
-
- // Need to update visibility of object for client to accept farsight guid
- m_caster->ToPlayer()->SetViewpoint(dynObj, true);
- //m_caster->ToPlayer()->UpdateVisibilityOf(dynObj);
+ dynObj->SetCasterViewpoint();
}
void Spell::EffectUntrainTalents(SpellEffIndex /*effIndex*/)