1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

Fix regressions

This commit is contained in:
Ivan Savenko
2025-04-10 12:27:18 +03:00
parent e6a8e5d4bd
commit 912c2eae94
17 changed files with 94 additions and 98 deletions

View File

@@ -581,6 +581,7 @@ std::shared_ptr<CGObjectInstance> CMap::eraseObject(ObjectInstanceID oldObjectID
{
auto oldObject = objects.at(oldObjectID.getNum());
instanceNames.erase(oldObject->instanceName);
objects.at(oldObjectID) = nullptr;
removeBlockVisTiles(oldObject.get(), true);
oldObject->afterRemoveFromMap(this);
@@ -849,6 +850,13 @@ void CMap::addToHeroPool(std::shared_ptr<CGHeroInstance> hero)
assert(heroesPool.at(hero->getHeroTypeID().getNum()) == nullptr);
heroesPool.at(hero->getHeroTypeID().getNum()) = hero;
if (!hero->id.hasValue())
{
// reserve ID for this new hero, if needed (but don't actually add it since hero is not present on map)
hero->id = ObjectInstanceID(objects.size());
objects.push_back(nullptr);
}
}
CGHeroInstance * CMap::tryGetFromHeroPool(HeroTypeID hero)