瀏覽代碼

Merge pull request #16 from Haryaalcar/develop

crash in VCAI::completeGoal() fixed
DjWarmonger 11 年之前
父節點
當前提交
110aebc5b1
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      AI/VCAI/VCAI.cpp

+ 4 - 3
AI/VCAI/VCAI.cpp

@@ -1415,14 +1415,15 @@ void VCAI::completeGoal (Goals::TSubgoal goal)
 	}
 	else //complete goal for all heroes maybe?
 	{
-		for (auto p : lockedHeroes)
+		vstd::erase_if(lockedHeroes, [goal](std::pair<HeroPtr, Goals::TSubgoal> p)
 		{
 			if (*(p.second) == *goal || p.second->fulfillsMe(goal)) //we could have fulfilled goals of other heroes by chance
 			{
 				logAi->debugStream() << boost::format("%s") % p.second->completeMessage();
-				lockedHeroes.erase (lockedHeroes.find(p.first)); //is it safe?
+				return true;
 			}
-		}
+			return false;
+		});
 	}
 
 }