1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-21 17:17:06 +02:00

Fix regressions from previous PR

This commit is contained in:
Ivan Savenko 2024-11-07 12:07:45 +00:00
parent 697d63d2b8
commit b9ff192a91
4 changed files with 14 additions and 7 deletions

View File

@ -141,7 +141,7 @@ ArtifactID CArtifactInstance::getTypeId() const
const CArtifact * CArtifactInstance::getType() const
{
return artTypeID.toArtifact();
return artTypeID.hasValue() ? artTypeID.toArtifact() : nullptr;
}
ArtifactInstanceID CArtifactInstance::getId() const

View File

@ -1005,12 +1005,12 @@ CStackBasicDescriptor::CStackBasicDescriptor(const CCreature *c, TQuantity Count
const CCreature * CStackBasicDescriptor::getCreature() const
{
return typeID.toCreature();
return typeID.hasValue() ? typeID.toCreature() : nullptr;
}
const Creature * CStackBasicDescriptor::getType() const
{
return typeID.toEntity(VLC);
return typeID.hasValue() ? typeID.toEntity(VLC) : nullptr;
}
CreatureID CStackBasicDescriptor::getId() const

View File

@ -51,9 +51,16 @@ public:
template <typename Handler> void serialize(Handler &h)
{
h & typeID;
if(!h.saving)
setType(typeID.toCreature());
if(h.saving)
{
h & typeID;
}
else
{
CreatureID creatureID;
h & creatureID;
setType(creatureID.toCreature());
}
h & count;
}

View File

@ -358,7 +358,7 @@ TObjectTypeHandler CGHeroInstance::getObjectHandler() const
void CGHeroInstance::updateAppearance()
{
auto handler = VLC->objtypeh->getHandlerFor(Obj::HERO, getHeroClass()->getIndex());;
auto terrain = cb->gameState()->getTile(visitablePos())->terType->getId();
auto terrain = cb->gameState()->getTile(visitablePos())->getTerrainID();
auto app = handler->getOverride(terrain, this);
if (app)
appearance = app;