Core/LFG: Fixes StackOverflow Exception.

This commit is contained in:
hondacrx
2021-03-11 22:55:48 -05:00
parent beb1fa701e
commit 8e4d1e191e
+10 -8
View File
@@ -809,8 +809,7 @@ namespace Game.DungeonFinding
List<ObjectGuid> keys = new List<ObjectGuid>(groles.Keys); List<ObjectGuid> keys = new List<ObjectGuid>(groles.Keys);
for (int i = 0; i < keys.Count; i++) for (int i = 0; i < keys.Count; i++)
{ {
var it = groles[keys[i]]; LfgRoles role = groles[keys[i]] & ~LfgRoles.Leader;
LfgRoles role = it & ~LfgRoles.Leader;
if (role == LfgRoles.None) if (role == LfgRoles.None)
return false; return false;
@@ -818,10 +817,11 @@ namespace Game.DungeonFinding
{ {
if (role != LfgRoles.Damage) if (role != LfgRoles.Damage)
{ {
it -= (byte)LfgRoles.Damage; groles[keys[i]] -= LfgRoles.Damage;
if (CheckGroupRoles(groles)) if (CheckGroupRoles(groles))
return true; return true;
it += (byte)LfgRoles.Damage;
groles[keys[i]] += (byte)LfgRoles.Damage;
} }
else if (damage == SharedConst.LFGDPSNeeded) else if (damage == SharedConst.LFGDPSNeeded)
return false; return false;
@@ -833,10 +833,11 @@ namespace Game.DungeonFinding
{ {
if (role != LfgRoles.Healer) if (role != LfgRoles.Healer)
{ {
it -= (byte)LfgRoles.Healer; groles[keys[i]] -= LfgRoles.Healer;
if (CheckGroupRoles(groles)) if (CheckGroupRoles(groles))
return true; return true;
it += (byte)LfgRoles.Healer;
groles[keys[i]] += (byte)LfgRoles.Healer;
} }
else if (healer == SharedConst.LFGHealersNeeded) else if (healer == SharedConst.LFGHealersNeeded)
return false; return false;
@@ -848,10 +849,11 @@ namespace Game.DungeonFinding
{ {
if (role != LfgRoles.Tank) if (role != LfgRoles.Tank)
{ {
it -= (byte)LfgRoles.Tank; groles[keys[i]] -= LfgRoles.Tank;
if (CheckGroupRoles(groles)) if (CheckGroupRoles(groles))
return true; return true;
it += (byte)LfgRoles.Tank;
groles[keys[i]] += (byte)LfgRoles.Tank;
} }
else if (tank == SharedConst.LFGTanksNeeded) else if (tank == SharedConst.LFGTanksNeeded)
return false; return false;