@@ -505,7 +505,7 @@ void CGameStateCampaign::generateCampaignHeroesToReplace()
if (!gameState->players.at(placeholder->getOwner()).isHuman())
continue;
- CGHeroInstance * hero = campaignState->crossoverDeserialize(*nodeListIter, gameState->map.get());
+ auto hero = campaignState->crossoverDeserialize(*nodeListIter, gameState->map.get());
nodeListIter++;
logGlobal->info("Hero crossover: Loading placeholder as %d (%s)", hero->getHeroType(), hero->getNameTranslated());
@@ -101,7 +101,7 @@ std::vector<const CGHeroInstance *> TavernHeroesPool::getHeroesFor(PlayerColor c
for(const auto & slot : currentTavern)
{
- assert(slot.hero != nullptr);
+ assert(slot.hero.hasValue());
if (slot.player == color)
result.push_back(owner->getMap().tryGetFromHeroPool(slot.hero));
}