[7966] Clean up in Spell:SetTargetMap

* Little optimization
* Code style cleanup
* Formating cleanup

Signed-off-by: ApoC <apoc@nymfe.net>
This commit is contained in:
ApoC 2009-06-05 16:40:14 +02:00
parent 30c054ae38
commit e5e8a3755f
2 changed files with 33 additions and 42 deletions

View file

@ -1561,7 +1561,8 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
else else
{ {
Unit* pUnitTarget = m_targets.getUnitTarget(); Unit* pUnitTarget = m_targets.getUnitTarget();
if(!pUnitTarget) Unit* originalCaster = GetOriginalCaster();
if(!pUnitTarget || !originalCaster)
break; break;
unMaxTargets = EffectChainTarget; unMaxTargets = EffectChainTarget;
@ -1578,28 +1579,22 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
cell.data.Part.reserved = ALL_DISTRICT; cell.data.Part.reserved = ALL_DISTRICT;
cell.SetNoCreate(); cell.SetNoCreate();
Unit* originalCaster = GetOriginalCaster();
if(originalCaster)
{
std::list<Unit *> tempUnitMap; std::list<Unit *> tempUnitMap;
{ {
MaNGOS::AnyAoETargetUnitInObjectRangeCheck u_check(pUnitTarget, originalCaster, max_range, false); MaNGOS::AnyAoETargetUnitInObjectRangeCheck u_check(pUnitTarget, originalCaster, max_range, false);
MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck> searcher(m_caster, tempUnitMap, u_check); MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck> searcher(m_caster, tempUnitMap, u_check);
TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer> world_unit_searcher(searcher); TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer> world_unit_searcher(searcher);
TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer> grid_unit_searcher(searcher); TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer> grid_unit_searcher(searcher);
CellLock<GridReadGuard> cell_lock(cell, p); CellLock<GridReadGuard> cell_lock(cell, p);
cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap()); cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap());
cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap()); cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap());
} }
tempUnitMap.sort(TargetDistanceOrder(pUnitTarget));
if (tempUnitMap.empty()) if (tempUnitMap.empty())
break; break;
tempUnitMap.sort(TargetDistanceOrder(pUnitTarget));
if (*tempUnitMap.begin() == pUnitTarget) if (*tempUnitMap.begin() == pUnitTarget)
tempUnitMap.erase (tempUnitMap.begin()); tempUnitMap.erase (tempUnitMap.begin());
@ -1612,23 +1607,19 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
{ {
if (!prev->IsWithinDist (*next,CHAIN_SPELL_JUMP_RADIUS)) if (!prev->IsWithinDist (*next,CHAIN_SPELL_JUMP_RADIUS))
break; break;
if (!prev->IsWithinLOSInMap (*next)) if (!prev->IsWithinLOSInMap (*next))
{ {
++next; ++next;
continue; continue;
} }
prev = *next; prev = *next;
TagUnitMap.push_back(prev); TagUnitMap.push_back(prev);
tempUnitMap.erase(next); tempUnitMap.erase(next);
tempUnitMap.sort (TargetDistanceOrder(prev)); tempUnitMap.sort (TargetDistanceOrder(prev));
next = tempUnitMap.begin(); next = tempUnitMap.begin();
--t; --t;
} }
} }
}
}break; }break;
case TARGET_ALL_ENEMY_IN_AREA: case TARGET_ALL_ENEMY_IN_AREA:
{ {

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7965" #define REVISION_NR "7966"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__