mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[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:
parent
30c054ae38
commit
e5e8a3755f
2 changed files with 33 additions and 42 deletions
|
|
@ -1561,7 +1561,8 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
|
|||
else
|
||||
{
|
||||
Unit* pUnitTarget = m_targets.getUnitTarget();
|
||||
if(!pUnitTarget)
|
||||
Unit* originalCaster = GetOriginalCaster();
|
||||
if(!pUnitTarget || !originalCaster)
|
||||
break;
|
||||
|
||||
unMaxTargets = EffectChainTarget;
|
||||
|
|
@ -1578,28 +1579,22 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
|
|||
cell.data.Part.reserved = ALL_DISTRICT;
|
||||
cell.SetNoCreate();
|
||||
|
||||
Unit* originalCaster = GetOriginalCaster();
|
||||
if(originalCaster)
|
||||
{
|
||||
std::list<Unit *> tempUnitMap;
|
||||
|
||||
{
|
||||
MaNGOS::AnyAoETargetUnitInObjectRangeCheck u_check(pUnitTarget, originalCaster, max_range, false);
|
||||
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>, GridTypeMapContainer> grid_unit_searcher(searcher);
|
||||
|
||||
CellLock<GridReadGuard> cell_lock(cell, p);
|
||||
|
||||
cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap());
|
||||
cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap());
|
||||
}
|
||||
|
||||
tempUnitMap.sort(TargetDistanceOrder(pUnitTarget));
|
||||
|
||||
if (tempUnitMap.empty())
|
||||
break;
|
||||
|
||||
tempUnitMap.sort(TargetDistanceOrder(pUnitTarget));
|
||||
|
||||
if (*tempUnitMap.begin() == pUnitTarget)
|
||||
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))
|
||||
break;
|
||||
|
||||
if (!prev->IsWithinLOSInMap (*next))
|
||||
{
|
||||
++next;
|
||||
continue;
|
||||
}
|
||||
|
||||
prev = *next;
|
||||
TagUnitMap.push_back(prev);
|
||||
tempUnitMap.erase(next);
|
||||
tempUnitMap.sort (TargetDistanceOrder(prev));
|
||||
next = tempUnitMap.begin();
|
||||
|
||||
--t;
|
||||
}
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case TARGET_ALL_ENEMY_IN_AREA:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "7965"
|
||||
#define REVISION_NR "7966"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue