Selaa lähdekoodia

ai fix town portal to occupied town

Andrii Danylchenko 6 vuotta sitten
vanhempi
sitoutus
5fb5ddfc67

+ 0 - 5
AI/VCAI/AIhelper.cpp

@@ -152,8 +152,3 @@ void AIhelper::updatePaths(std::vector<HeroPtr> heroes)
 {
 	pathfindingManager->updatePaths(heroes);
 }
-
-void AIhelper::updatePaths(const HeroPtr & hero)
-{
-	pathfindingManager->updatePaths(hero);
-}

+ 0 - 1
AI/VCAI/AIhelper.h

@@ -61,7 +61,6 @@ public:
 	Goals::TGoalVec howToVisitObj(ObjectIdRef obj) const override;
 	std::vector<AIPath> getPathsToTile(const HeroPtr & hero, const int3 & tile) const override;
 	void updatePaths(std::vector<HeroPtr> heroes) override;
-	void updatePaths(const HeroPtr & hero) override;
 
 	STRONG_INLINE
 	bool isTileAccessible(const HeroPtr & hero, const int3 & tile) const

+ 0 - 30
AI/VCAI/Pathfinding/AIPathfinder.cpp

@@ -103,36 +103,6 @@ void AIPathfinder::updatePaths(std::vector<HeroPtr> heroes)
 	}
 }
 
-void AIPathfinder::updatePaths(const HeroPtr & hero)
-{
-	std::shared_ptr<AINodeStorage> nodeStorage;
-
-	if(!vstd::contains(storageMap, hero))
-	{
-		if(storageMap.size() < storagePool.size())
-		{
-			nodeStorage = storagePool.at(storageMap.size());
-		}
-		else
-		{
-			nodeStorage = std::make_shared<AINodeStorage>(cb->getMapSize());
-			storagePool.push_back(nodeStorage);
-		}
-
-		storageMap[hero] = nodeStorage;
-		nodeStorage->setHero(hero, ai);
-	}
-	else
-	{
-		nodeStorage = storageMap.at(hero);
-	}
-
-	logAi->debug("Recalculate paths for %s", hero->name);
-	auto config = std::make_shared<AIPathfinding::AIPathfinderConfig>(cb, ai, nodeStorage);
-
-	cb->calculatePaths(config, hero.get());
-}
-
 std::shared_ptr<const AINodeStorage> AIPathfinder::getStorage(const HeroPtr & hero) const
 {
 	return storageMap.at(hero);

+ 0 - 1
AI/VCAI/Pathfinding/AIPathfinder.h

@@ -28,6 +28,5 @@ public:
 	std::vector<AIPath> getPathInfo(const HeroPtr & hero, const int3 & tile) const;
 	bool isTileAccessible(const HeroPtr & hero, const int3 & tile) const;
 	void updatePaths(std::vector<HeroPtr> heroes);
-	void updatePaths(const HeroPtr & heroes);
 	void init();
 };

+ 0 - 5
AI/VCAI/Pathfinding/PathfindingManager.cpp

@@ -240,8 +240,3 @@ void PathfindingManager::updatePaths(std::vector<HeroPtr> heroes)
 	logAi->debug("AIPathfinder has been reseted.");
 	pathfinder->updatePaths(heroes);
 }
-
-void PathfindingManager::updatePaths(const HeroPtr & hero)
-{
-	pathfinder->updatePaths(hero);
-}

+ 0 - 2
AI/VCAI/Pathfinding/PathfindingManager.h

@@ -21,7 +21,6 @@ public:
 	virtual void setAI(VCAI * AI) = 0;
 
 	virtual void updatePaths(std::vector<HeroPtr> heroes) = 0;
-	virtual void updatePaths(const HeroPtr & hero) = 0;
 	virtual Goals::TGoalVec howToVisitTile(const HeroPtr & hero, const int3 & tile, bool allowGatherArmy = true) const = 0;
 	virtual Goals::TGoalVec howToVisitObj(const HeroPtr & hero, ObjectIdRef obj, bool allowGatherArmy = true) const = 0;
 	virtual Goals::TGoalVec howToVisitTile(const int3 & tile) const = 0;
@@ -48,7 +47,6 @@ public:
 	Goals::TGoalVec howToVisitObj(ObjectIdRef obj) const override;
 	std::vector<AIPath> getPathsToTile(const HeroPtr & hero, const int3 & tile) const override;
 	void updatePaths(std::vector<HeroPtr> heroes) override;
-	void updatePaths(const HeroPtr & hero) override;
 
 	STRONG_INLINE
 	bool isTileAccessible(const HeroPtr & hero, const int3 & tile) const

+ 2 - 2
AI/VCAI/VCAI.cpp

@@ -1422,14 +1422,14 @@ void VCAI::wander(HeroPtr h)
 	while(h->movement)
 	{
 		validateVisitableObjs();
-		ah->updatePaths(h);
+		ah->updatePaths(getMyHeroes());
 
 		std::vector<ObjectIdRef> dests;
 
 		//also visit our reserved objects - but they are not prioritized to avoid running back and forth
 		vstd::copy_if(reservedHeroesMap[h], std::back_inserter(dests), [&](ObjectIdRef obj) -> bool
 		{
-			return ah->getPathsToTile(h, obj->visitablePos()).size();
+			return ah->isTileAccessible(h, obj->visitablePos());
 		});
 
 		int pass = 0;