diff options
| author | megamage <none@none> | 2009-05-29 16:49:28 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-05-29 16:49:28 -0500 |
| commit | 89f4c1c444b9a0b090d71667c26f05165394a594 (patch) | |
| tree | b70b3583bba1a1341f1e371e9a9a1956dc1377c0 /src/game/Spell.cpp | |
| parent | 3faa712d429fe5e352b73a6e5e524a2d1f4630d7 (diff) | |
*Add function FindNearestCreature and FindNearestGameObject to replace old FindCreature and FindGameObject
--HG--
branch : trunk
Diffstat (limited to 'src/game/Spell.cpp')
| -rw-r--r-- | src/game/Spell.cpp | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c6740e22765..299aac060ae 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1642,21 +1642,13 @@ WorldObject* Spell::SearchNearbyTarget(float range, SpellTargets TargetType) switch(i_spellST->second.type) { case SPELL_TARGET_TYPE_GAMEOBJECT: - { - GameObject* p_GameObject = NULL; - if(i_spellST->second.targetEntry) { - Trinity::NearestGameObjectEntryInObjectRangeCheck go_check(*m_caster,i_spellST->second.targetEntry,range); - Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> checker(m_caster,p_GameObject,go_check); - m_caster->VisitNearbyGridObject(range, checker); - - if(p_GameObject) + if(goScriptTarget = m_caster->FindNearestGameObject(i_spellST->second.targetEntry, range)) { // remember found target and range, next attempt will find more near target with another entry creatureScriptTarget = NULL; - goScriptTarget = p_GameObject; - range = go_check.GetLastRange(); + range = m_caster->GetDistance(goScriptTarget); } } else if( focusObject ) //Focus Object @@ -1670,27 +1662,17 @@ WorldObject* Spell::SearchNearbyTarget(float range, SpellTargets TargetType) } } break; - } case SPELL_TARGET_TYPE_CREATURE: if(m_targets.getUnitTarget() && m_targets.getUnitTarget()->GetEntry() == i_spellST->second.targetEntry) return m_targets.getUnitTarget(); case SPELL_TARGET_TYPE_DEAD: default: - { - Creature *p_Creature = NULL; - - Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck u_check(*m_caster,i_spellST->second.targetEntry,i_spellST->second.type!=SPELL_TARGET_TYPE_DEAD,range); - Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck> searcher(m_caster,p_Creature, u_check); - m_caster->VisitNearbyObject(range, searcher); - - if(p_Creature ) + if(creatureScriptTarget = m_caster->FindNearestCreature(i_spellST->second.targetEntry, range, i_spellST->second.type != SPELL_TARGET_TYPE_DEAD)) { - creatureScriptTarget = p_Creature; goScriptTarget = NULL; - range = u_check.GetLastRange(); + range = m_caster->GetDistance(creatureScriptTarget); } break; - } } } |
