@@ -140,6 +140,8 @@ void CArtifactsOfHeroBase::gestureArtPlace(CComponentHolder & artPlace, const Po
void CArtifactsOfHeroBase::setHero(const CGHeroInstance * hero)
{
curHero = hero;
+ if (!hero)
+ return;
for(auto slot : artWorn)
@@ -28,7 +28,8 @@ CArtifactsOfHeroMain::CArtifactsOfHeroMain(const Point & position)
CArtifactsOfHeroMain::~CArtifactsOfHeroMain()
- CArtifactsOfHeroBase::putBackPickedArtifact();
+ if(curHero)
+ CArtifactsOfHeroBase::putBackPickedArtifact();
}
void CArtifactsOfHeroMain::keyPressed(EShortcut key)
@@ -312,6 +312,7 @@ void CHeroWindow::dismissCurrent()
arts->putBackPickedArtifact();
close();
LOCPLINT->cb->dismissHero(curHero);
+ arts->setHero(nullptr);
}, nullptr);