diff --git a/lib/gameState/CGameStateCampaign.cpp b/lib/gameState/CGameStateCampaign.cpp index f67ed7311..6ba1a44d6 100644 --- a/lib/gameState/CGameStateCampaign.cpp +++ b/lib/gameState/CGameStateCampaign.cpp @@ -217,6 +217,10 @@ void CGameStateCampaign::placeCampaignHeroes() 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) {