1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-23 00:28:08 +02:00

Map objects now use shared_ptr (game)

This commit is contained in:
Ivan Savenko
2025-03-13 19:42:18 +00:00
parent 2ca1748e96
commit 0ada2a5ebd
49 changed files with 487 additions and 613 deletions

View File

@ -139,7 +139,7 @@ const CGObjectInstance* CGameInfoCallback::getObj(ObjectInstanceID objid, bool v
return nullptr;
}
const CGObjectInstance *ret = gs->getMap().objects[oid];
const CGObjectInstance *ret = gs->getMap().objects[oid].get();
if(!ret)
{
if(verbose)
@ -484,8 +484,8 @@ std::vector<const CGObjectInstance *> CGameInfoCallback::getAllVisitableObjs() c
{
std::vector<const CGObjectInstance *> ret;
for(auto & obj : gs->getMap().objects)
if(obj && obj->isVisitable() && obj->ID != Obj::EVENT && isVisible(obj))
ret.push_back(obj);
if(obj && obj->isVisitable() && obj->ID != Obj::EVENT && isVisible(obj.get()))
ret.push_back(obj.get());
return ret;
}
@ -784,7 +784,7 @@ std::vector < const CGHeroInstance *> CPlayerSpecificInfoCallback::getHeroesInfo
if((hero->tempOwner == *getPlayerID()) ||
(isVisible(hero->visitablePos(), getPlayerID()) && !onlyOur) )
{
ret.push_back(hero);
ret.push_back(hero.get());
}
}
return ret;
@ -956,7 +956,7 @@ const CArtifactInstance * CGameInfoCallback::getArtInstance( ArtifactInstanceID
const CGObjectInstance * CGameInfoCallback::getObjInstance( ObjectInstanceID oid ) const
{
return gs->getMap().objects.at(oid.num);
return gs->getMap().objects.at(oid.num).get();
}
const CArtifactSet * CGameInfoCallback::getArtSet(const ArtifactLocation & loc) const