1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-24 08:32:34 +02:00

AI: fix freeze while endlesly trying to recruit hero which is not possible anylonger.

This commit is contained in:
Andrii Danylchenko 2018-12-24 14:03:00 +02:00
parent 035d279ae8
commit ee5a26da60

View File

@ -823,6 +823,7 @@ void VCAI::makeTurn()
}
markHeroAbleToExplore(primaryHero());
visitedHeroes.clear();
ai->ah->resetPaths();
try
{
@ -1007,6 +1008,9 @@ void VCAI::mainLoop()
for (auto basicGoal : ultimateGoalsFromBasic[goalToRealize])
goalsToRemove.push_back(basicGoal);
// sometimes resource manager contains an elementar goal which is not able to execute anymore and just fails each turn.
ai->ah->notifyGoalCompleted(goalToRealize);
//we failed to realize best goal, but maybe others are still possible?
}
@ -2056,6 +2060,10 @@ void VCAI::tryRealize(Goals::RecruitHero & g)
//TODO try to free way to blocked town
//TODO: adventure map tavern or prison?
}
else
{
throw cannotFulfillGoalException("No town to recruit hero!");
}
}
void VCAI::tryRealize(Goals::VisitTile & g)