From 8e4d1e191ef2a3b34f21ae2b1a771832e3f7c006 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 11 Mar 2021 22:55:48 -0500 Subject: [PATCH] Core/LFG: Fixes StackOverflow Exception. --- Source/Game/DungeonFinding/LFGManager.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Source/Game/DungeonFinding/LFGManager.cs b/Source/Game/DungeonFinding/LFGManager.cs index 78dc3688b..81ee5fb1e 100644 --- a/Source/Game/DungeonFinding/LFGManager.cs +++ b/Source/Game/DungeonFinding/LFGManager.cs @@ -809,8 +809,7 @@ namespace Game.DungeonFinding List keys = new List(groles.Keys); for (int i = 0; i < keys.Count; i++) { - var it = groles[keys[i]]; - LfgRoles role = it & ~LfgRoles.Leader; + LfgRoles role = groles[keys[i]] & ~LfgRoles.Leader; if (role == LfgRoles.None) return false; @@ -818,10 +817,11 @@ namespace Game.DungeonFinding { if (role != LfgRoles.Damage) { - it -= (byte)LfgRoles.Damage; + groles[keys[i]] -= LfgRoles.Damage; if (CheckGroupRoles(groles)) return true; - it += (byte)LfgRoles.Damage; + + groles[keys[i]] += (byte)LfgRoles.Damage; } else if (damage == SharedConst.LFGDPSNeeded) return false; @@ -833,10 +833,11 @@ namespace Game.DungeonFinding { if (role != LfgRoles.Healer) { - it -= (byte)LfgRoles.Healer; + groles[keys[i]] -= LfgRoles.Healer; if (CheckGroupRoles(groles)) return true; - it += (byte)LfgRoles.Healer; + + groles[keys[i]] += (byte)LfgRoles.Healer; } else if (healer == SharedConst.LFGHealersNeeded) return false; @@ -848,10 +849,11 @@ namespace Game.DungeonFinding { if (role != LfgRoles.Tank) { - it -= (byte)LfgRoles.Tank; + groles[keys[i]] -= LfgRoles.Tank; if (CheckGroupRoles(groles)) return true; - it += (byte)LfgRoles.Tank; + + groles[keys[i]] += (byte)LfgRoles.Tank; } else if (tank == SharedConst.LFGTanksNeeded) return false;