From e74d56f9d2c9fc1792cd8a79a9fd2926dd239124 Mon Sep 17 00:00:00 2001 From: zerg Date: Wed, 20 Oct 2010 02:55:08 +0400 Subject: [PATCH] [10626] Fix logic in FillRaidOrPartyManaPriorityTargets and FillRaidOrPartyHealthPriorityTargets Signed-off-by: VladimirMangos --- src/game/Spell.cpp | 12 ++++++------ src/shared/revision_nr.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 5139c9844..926fdec00 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -67,7 +67,7 @@ struct PrioritizeMana { int operator()( PrioritizeManaUnitWraper const& x, PrioritizeManaUnitWraper const& y ) const { - return x.getPercent() < y.getPercent(); + return x.getPercent() > y.getPercent(); } }; @@ -91,7 +91,7 @@ struct PrioritizeHealth { int operator()( PrioritizeHealthUnitWraper const& x, PrioritizeHealthUnitWraper const& y ) const { - return x.getPercent() < y.getPercent(); + return x.getPercent() > y.getPercent(); } }; @@ -6665,12 +6665,12 @@ void Spell::FillRaidOrPartyManaPriorityTargets(UnitList &targetUnitMap, Unit* me FillRaidOrPartyTargets(targetUnitMap, member, center, radius, raid, withPets, withCaster); PrioritizeManaUnitQueue manaUsers; - for(UnitList::const_iterator itr = targetUnitMap.begin(); itr != targetUnitMap.end() && manaUsers.size() < count; ++itr) + for(UnitList::const_iterator itr = targetUnitMap.begin(); itr != targetUnitMap.end(); ++itr) if ((*itr)->getPowerType() == POWER_MANA && !(*itr)->isDead()) manaUsers.push(PrioritizeManaUnitWraper(*itr)); targetUnitMap.clear(); - while(!manaUsers.empty()) + while(!manaUsers.empty() && targetUnitMap.size() < count) { targetUnitMap.push_back(manaUsers.top().getUnit()); manaUsers.pop(); @@ -6682,12 +6682,12 @@ void Spell::FillRaidOrPartyHealthPriorityTargets(UnitList &targetUnitMap, Unit* FillRaidOrPartyTargets(targetUnitMap, member, center, radius, raid, withPets, withCaster); PrioritizeHealthUnitQueue healthQueue; - for(UnitList::const_iterator itr = targetUnitMap.begin(); itr != targetUnitMap.end() && healthQueue.size() < count; ++itr) + for(UnitList::const_iterator itr = targetUnitMap.begin(); itr != targetUnitMap.end(); ++itr) if (!(*itr)->isDead()) healthQueue.push(PrioritizeHealthUnitWraper(*itr)); targetUnitMap.clear(); - while(!healthQueue.empty()) + while(!healthQueue.empty() && targetUnitMap.size() < count) { targetUnitMap.push_back(healthQueue.top().getUnit()); healthQueue.pop(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d061556f1..6fb5a5d09 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10465" + #define REVISION_NR "10626" #endif // __REVISION_NR_H__