Browse Source

Fix bug when no casualties but 1 skeleton is raised

Michał Zaremba 7 months ago
parent
commit
63906c4446
1 changed files with 3 additions and 1 deletions
  1. 3 1
      lib/mapObjects/CGHeroInstance.cpp

+ 3 - 1
lib/mapObjects/CGHeroInstance.cpp

@@ -969,11 +969,13 @@ CStackBasicDescriptor CGHeroInstance::calculateNecromancy (const BattleResult &b
 		const ui8 necromancyLevel = valOfBonuses(BonusType::IMPROVED_NECROMANCY);
 		const ui8 necromancyLevel = valOfBonuses(BonusType::IMPROVED_NECROMANCY);
 		vstd::amin(necromancySkill, 1.0); //it's impossible to raise more creatures than all...
 		vstd::amin(necromancySkill, 1.0); //it's impossible to raise more creatures than all...
 		const std::map<CreatureID,si32> &casualties = battleResult.casualties[CBattleInfoEssentials::otherSide(battleResult.winner)];
 		const std::map<CreatureID,si32> &casualties = battleResult.casualties[CBattleInfoEssentials::otherSide(battleResult.winner)];
+        if(casualties.empty())
+            return CStackBasicDescriptor();
 		// figure out what to raise - pick strongest creature meeting requirements
 		// figure out what to raise - pick strongest creature meeting requirements
 		CreatureID creatureTypeRaised = CreatureID::NONE; //now we always have IMPROVED_NECROMANCY, no need for hardcode
 		CreatureID creatureTypeRaised = CreatureID::NONE; //now we always have IMPROVED_NECROMANCY, no need for hardcode
 		int requiredCasualtyLevel = 1;
 		int requiredCasualtyLevel = 1;
 		TConstBonusListPtr improvedNecromancy = getBonusesOfType(BonusType::IMPROVED_NECROMANCY);
 		TConstBonusListPtr improvedNecromancy = getBonusesOfType(BonusType::IMPROVED_NECROMANCY);
-		if(!improvedNecromancy->empty())
+        if(!improvedNecromancy->empty())
 		{
 		{
 			int maxCasualtyLevel = 1;
 			int maxCasualtyLevel = 1;
 			for(const auto & casualty : casualties)
 			for(const auto & casualty : casualties)