mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-29 23:07:48 +02:00
Added overloaded version of getObjectHandler to CGHeroInstance
This commit is contained in:
@@ -370,7 +370,7 @@ void CGameStateCampaign::replaceHeroesPlaceholders()
|
|||||||
heroToPlace->tempOwner = heroPlaceholder->tempOwner;
|
heroToPlace->tempOwner = heroPlaceholder->tempOwner;
|
||||||
heroToPlace->setAnchorPos(heroPlaceholder->anchorPos());
|
heroToPlace->setAnchorPos(heroPlaceholder->anchorPos());
|
||||||
heroToPlace->setHeroType(heroToPlace->getHeroTypeID());
|
heroToPlace->setHeroType(heroToPlace->getHeroTypeID());
|
||||||
heroToPlace->appearance = VLC->objtypeh->getHandlerFor(Obj::HERO, heroToPlace->getHeroTypeID())->getTemplates().front();
|
heroToPlace->appearance = heroToPlace->getObjectHandler()->getTemplates().front();
|
||||||
|
|
||||||
gameState->map->removeBlockVisTiles(heroPlaceholder, true);
|
gameState->map->removeBlockVisTiles(heroPlaceholder, true);
|
||||||
gameState->map->objects[heroPlaceholder->id.getNum()] = nullptr;
|
gameState->map->objects[heroPlaceholder->id.getNum()] = nullptr;
|
||||||
|
|||||||
@@ -339,12 +339,20 @@ void CGHeroInstance::initHero(vstd::RNG & rand, const HeroTypeID & SUBID)
|
|||||||
initHero(rand);
|
initHero(rand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TObjectTypeHandler CGHeroInstance::getObjectHandler() const
|
||||||
|
{
|
||||||
|
if (ID == Obj::HERO)
|
||||||
|
return VLC->objtypeh->getHandlerFor(ID, getHeroClass()->getIndex());
|
||||||
|
else // prison or random hero
|
||||||
|
return VLC->objtypeh->getHandlerFor(ID, 0);
|
||||||
|
}
|
||||||
|
|
||||||
void CGHeroInstance::initHero(vstd::RNG & rand)
|
void CGHeroInstance::initHero(vstd::RNG & rand)
|
||||||
{
|
{
|
||||||
assert(validTypes(true));
|
assert(validTypes(true));
|
||||||
|
|
||||||
if (ID == Obj::HERO)
|
if (ID == Obj::HERO)
|
||||||
appearance = VLC->objtypeh->getHandlerFor(Obj::HERO, getHeroClass()->getIndex())->getTemplates().front();
|
appearance = getObjectHandler()->getTemplates().front();
|
||||||
|
|
||||||
if(!vstd::contains(spells, SpellID::PRESET))
|
if(!vstd::contains(spells, SpellID::PRESET))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -307,6 +307,8 @@ public:
|
|||||||
std::string getHoverText(PlayerColor player) const override;
|
std::string getHoverText(PlayerColor player) const override;
|
||||||
std::string getMovementPointsTextIfOwner(PlayerColor player) const;
|
std::string getMovementPointsTextIfOwner(PlayerColor player) const;
|
||||||
|
|
||||||
|
TObjectTypeHandler getObjectHandler() const override;
|
||||||
|
|
||||||
void afterAddToMap(CMap * map) override;
|
void afterAddToMap(CMap * map) override;
|
||||||
void afterRemoveFromMap(CMap * map) override;
|
void afterRemoveFromMap(CMap * map) override;
|
||||||
|
|
||||||
|
|||||||
@@ -360,8 +360,11 @@ void CGObjectInstance::serializeJson(JsonSerializeFormat & handler)
|
|||||||
//only save here, loading is handled by map loader
|
//only save here, loading is handled by map loader
|
||||||
if(handler.saving)
|
if(handler.saving)
|
||||||
{
|
{
|
||||||
handler.serializeString("type", typeName);
|
std::string ourTypeName = getTypeName();
|
||||||
handler.serializeString("subtype", subTypeName);
|
std::string ourSubtypeName = getSubtypeName();
|
||||||
|
|
||||||
|
handler.serializeString("type", ourTypeName);
|
||||||
|
handler.serializeString("subtype", ourSubtypeName);
|
||||||
|
|
||||||
handler.serializeInt("x", pos.x);
|
handler.serializeInt("x", pos.x);
|
||||||
handler.serializeInt("y", pos.y);
|
handler.serializeInt("y", pos.y);
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public:
|
|||||||
std::optional<AudioPath> getVisitSound(vstd::RNG & rng) const;
|
std::optional<AudioPath> getVisitSound(vstd::RNG & rng) const;
|
||||||
std::optional<AudioPath> getRemovalSound(vstd::RNG & rng) const;
|
std::optional<AudioPath> getRemovalSound(vstd::RNG & rng) const;
|
||||||
|
|
||||||
TObjectTypeHandler getObjectHandler() const;
|
virtual TObjectTypeHandler getObjectHandler() const;
|
||||||
|
|
||||||
/** VIRTUAL METHODS **/
|
/** VIRTUAL METHODS **/
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user