Ver código fonte

CBattleInterface: fix crash on defeat in tactics phase. Fix issue 2440

It's possible to lose all mobile stacks if you move them on moat so tactics phase must end in that case.
Arseniy Shestakov 9 anos atrás
pai
commit
3a1a6cf338
1 arquivos alterados com 6 adições e 0 exclusões
  1. 6 0
      client/battle/CBattleInterface.cpp

+ 6 - 0
client/battle/CBattleInterface.cpp

@@ -1935,6 +1935,12 @@ void CBattleInterface::bTacticNextStack(const CStack *current /*= nullptr*/)
 
 	TStacks stacksOfMine = tacticianInterface->cb->battleGetStacks(CBattleCallback::ONLY_MINE);
 	vstd::erase_if(stacksOfMine, &immobile);
+	if(stacksOfMine.empty())
+	{
+		bEndTacticPhase();
+		return;
+	}
+
 	auto it = vstd::find(stacksOfMine, current);
 	if(it != stacksOfMine.end() && ++it != stacksOfMine.end())
 		stackActivated(*it);