1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Merge remote-tracking branch 'vcmi/master' into develop

This commit is contained in:
Ivan Savenko
2024-01-19 13:49:54 +02:00
191 changed files with 3188 additions and 1892 deletions

View File

@@ -210,17 +210,21 @@ void CGameStateCampaign::placeCampaignHeroes()
// with the same hero type id
std::vector<CGHeroInstance *> removedHeroes;
std::set<HeroTypeID> heroesToRemove = campaignState->getReservedHeroes();
std::set<HeroTypeID> reservedHeroes = campaignState->getReservedHeroes();
std::set<HeroTypeID> heroesToRemove;
for (auto const & heroID : reservedHeroes )
{
// Do not replace reserved heroes initially, e.g. in 1st campaign scenario in which they appear
if (!campaignState->getHeroByType(heroID).isNull())
heroesToRemove.insert(heroID);
}
for(auto & campaignHeroReplacement : campaignHeroReplacements)
heroesToRemove.insert(campaignHeroReplacement.hero->getHeroType());
for(auto & heroID : heroesToRemove)
{
// Do not replace reserved heroes initially, e.g. in 1st campaign scenario in which they appear
if (campaignState->getHeroByType(heroID).isNull())
continue;
auto * hero = gameState->getUsedHero(heroID);
if(hero)
{