1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-29 23:07:48 +02:00

CGEvent: avoid permanent event removal after visit. Fix issue 2339

This commit is contained in:
ArseniyShestakov
2015-11-28 23:03:26 +03:00
parent c45cd1f4c2
commit ce5b7c73be
2 changed files with 19 additions and 2 deletions

View File

@@ -51,7 +51,7 @@ void CGPandoraBox::onHeroVisit(const CGHeroInstance * h) const
void CGPandoraBox::giveContentsUpToExp(const CGHeroInstance *h) const
{
cb->removeAfterVisit(this);
afterSuccessfulVisit();
InfoWindow iw;
iw.player = h->getOwner();
@@ -331,6 +331,11 @@ void CGPandoraBox::heroLevelUpDone(const CGHeroInstance *hero) const
giveContentsAfterExp(hero);
}
void CGPandoraBox::afterSuccessfulVisit() const
{
cb->removeAfterVisit(this);
}
void CGEvent::onHeroVisit( const CGHeroInstance * h ) const
{
if(!(availableFor & (1 << h->tempOwner.getNum())))
@@ -362,3 +367,13 @@ void CGEvent::activated( const CGHeroInstance * h ) const
giveContentsUpToExp(h);
}
}
void CGEvent::afterSuccessfulVisit() const
{
if(removeAfterVisit)
{
cb->removeAfterVisit(this);
}
else if(hasGuardians)
hasGuardians = false;
}