Преглед изворни кода

An attempt to handle spawning objects. However, on a day of double growth, when multiple monsters spawn, game freezes. Looks like engine issue, code is commented out.

DjWarmonger пре 11 година
родитељ
комит
344783efb5
1 измењених фајлова са 19 додато и 0 уклоњено
  1. 19 0
      AI/VCAI/VCAI.cpp

+ 19 - 0
AI/VCAI/VCAI.cpp

@@ -358,6 +358,25 @@ void VCAI::newObject(const CGObjectInstance * obj)
 	NET_EVENT_HANDLER;
 	if(obj->isVisitable())
 		addVisitableObj(obj);
+
+	//AI should reconsider strategy when spawning monsters block the way and free reserved objects
+
+	//FIXME: AI tends to freeze forever on a week of double growth if this code is active 
+	//auto safeCopy = reservedHeroesMap;
+	//for (auto hero : safeCopy)
+	//{
+	//	auto h = hero.first;
+	//	for (auto reservedObj : hero.second)
+	//	{
+	//		auto pos = reservedObj->visitablePos();
+	//		if (!(isAccessibleForHero(pos, h) && isSafeToVisit(h, pos)))
+	//		{
+	//			erase_if_present (reservedObjs, reservedObj);
+	//			for(auto &p : reservedHeroesMap)
+	//				erase_if_present (p.second, reservedObj);
+	//		}
+	//	}
+	//}
 }
 
 void VCAI::objectRemoved(const CGObjectInstance *obj)