mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-10 22:31:40 +02:00
Stability & regression fixes
This commit is contained in:
@@ -672,7 +672,7 @@ bool shouldVisit(const Nullkiller * ai, const CGHeroInstance * h, const CGObject
|
||||
{
|
||||
if(q.obj == obj->id)
|
||||
{
|
||||
if(q.getQuest(cb)->checkQuest(h))
|
||||
if(q.getQuest(ai->cb.get())->checkQuest(h))
|
||||
return true; //we completed the quest
|
||||
else
|
||||
return false; //we can't complete this quest
|
||||
|
@@ -1578,6 +1578,9 @@ void CGameState::restoreBonusSystemTree()
|
||||
for(auto & art : map->getArtifacts())
|
||||
art->attachToBonusSystem(this);
|
||||
|
||||
for(auto & heroID : map->getHeroesInPool())
|
||||
map->tryGetFromHeroPool(heroID)->artDeserializationFix(this, map->tryGetFromHeroPool(heroID));
|
||||
|
||||
if (campaign)
|
||||
campaign->setGamestate(this);
|
||||
}
|
||||
|
@@ -1217,16 +1217,17 @@ void RemoveObject::applyGs(CGameState *gs)
|
||||
|
||||
beatenHero->setVisitedTown(nullptr, false);
|
||||
}
|
||||
//return hero to the pool, so he may reappear in tavern
|
||||
|
||||
//return hero to the pool, so he may reappear in tavern
|
||||
gs->heroesPool->addHeroToPool(beatenHero->getHeroTypeID());
|
||||
gs->getMap().addToHeroPool(beatenHero);
|
||||
|
||||
//If hero on Boat is removed, the Boat disappears
|
||||
if(beatenHero->inBoat())
|
||||
{
|
||||
beatenHero->detachFrom(*beatenHero->getBoat());
|
||||
gs->getMap().eraseObject(beatenHero->getBoat()->id);
|
||||
auto boat = beatenHero->getBoat();
|
||||
beatenHero->setBoat(nullptr);
|
||||
gs->getMap().eraseObject(boat->id);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1242,7 +1243,6 @@ void RemoveObject::applyGs(CGameState *gs)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
gs->getMap().eraseObject(objectID);
|
||||
gs->getMap().calculateGuardingGreaturePositions();//FIXME: excessive, update only affected tiles
|
||||
}
|
||||
|
Reference in New Issue
Block a user