1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-09-16 09:26:28 +02:00

- Fixed mantis #1422 (starting another scenario crashes VCMI for now)

- Refactoring
This commit is contained in:
beegee1
2013-12-16 18:39:56 +00:00
parent 7d7e65a316
commit b9b25ef552
8 changed files with 312 additions and 256 deletions

View File

@@ -433,16 +433,16 @@ bool CScenarioTravel::STravelBonus::isBonusForHero() const
void CCampaignState::mapConquered( const std::vector<CGHeroInstance*> & heroes )
{
camp->scenarios[currentMap].prepareCrossoverHeroes(heroes);
mapsConquered.push_back(currentMap);
mapsRemaining -= currentMap;
camp->scenarios[currentMap].conquered = true;
camp->scenarios[*currentMap].prepareCrossoverHeroes(heroes);
mapsConquered.push_back(*currentMap);
mapsRemaining -= *currentMap;
camp->scenarios[*currentMap].conquered = true;
}
boost::optional<CScenarioTravel::STravelBonus> CCampaignState::getBonusForCurrentMap() const
{
auto bonuses = getCurrentScenario().travelOptions.bonusesToChoose;
assert(chosenCampaignBonuses.count(currentMap) || bonuses.size() == 0);
assert(chosenCampaignBonuses.count(*currentMap) || bonuses.size() == 0);
if(bonuses.size())
return bonuses[currentBonusID()];
else
@@ -451,16 +451,18 @@ boost::optional<CScenarioTravel::STravelBonus> CCampaignState::getBonusForCurren
const CCampaignScenario & CCampaignState::getCurrentScenario() const
{
return camp->scenarios[currentMap];
return camp->scenarios[*currentMap];
}
ui8 CCampaignState::currentBonusID() const
{
return chosenCampaignBonuses.at(*currentMap);
}
CCampaignState::CCampaignState()
{
}
ui8 CCampaignState::currentBonusID() const
{
return chosenCampaignBonuses.at(currentMap);
}
CCampaignState::CCampaignState()
{}
CCampaignState::CCampaignState( unique_ptr<CCampaign> _camp ) : camp(std::move(_camp))
{