1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Fix crash on AI evaluating hero pool after retreating from combat

This commit is contained in:
Ivan Savenko
2025-04-28 19:36:14 +03:00
parent 71d742ab19
commit eaae6270b2
2 changed files with 16 additions and 14 deletions

View File

@@ -497,18 +497,6 @@ void BattleResultProcessor::battleFinalize(const BattleID & battleID, const Batt
//handle victory/loss of engaged players
gameHandler->checkVictoryLossConditions({finishingBattle->loser, finishingBattle->victor});
if (result.result == EBattleResult::SURRENDER)
{
gameHandler->gameState().statistic.accumulatedValues[finishingBattle->loser].numHeroSurrendered++;
gameHandler->heroPool->onHeroSurrendered(finishingBattle->loser, loserHero);
}
if (result.result == EBattleResult::ESCAPE)
{
gameHandler->gameState().statistic.accumulatedValues[finishingBattle->loser].numHeroEscaped++;
gameHandler->heroPool->onHeroEscaped(finishingBattle->loser, loserHero);
}
// Remove beaten hero
if(loserHero)
{
@@ -524,6 +512,18 @@ void BattleResultProcessor::battleFinalize(const BattleID & battleID, const Batt
gameHandler->heroPool->onHeroEscaped(finishingBattle->victor, winnerHero);
}
if (result.result == EBattleResult::SURRENDER)
{
gameHandler->gameState().statistic.accumulatedValues[finishingBattle->loser].numHeroSurrendered++;
gameHandler->heroPool->onHeroSurrendered(finishingBattle->loser, loserHero);
}
if (result.result == EBattleResult::ESCAPE)
{
gameHandler->gameState().statistic.accumulatedValues[finishingBattle->loser].numHeroEscaped++;
gameHandler->heroPool->onHeroEscaped(finishingBattle->loser, loserHero);
}
finishingBattles.erase(battleID);
battleResults.erase(battleID);
}