1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-10 22:31:40 +02:00

Merge pull request #5616 from IvanSavenko/spellicon_fix

Fix loading of spell immunity icons for corresponding bonus
This commit is contained in:
Ivan Savenko
2025-04-12 10:51:02 +03:00
committed by GitHub
3 changed files with 10 additions and 4 deletions

View File

@@ -96,6 +96,12 @@ ImagePath CBonusTypeHandler::bonusToGraphics(const std::shared_ptr<Bonus> & bonu
{
const CBonusType & bt = bonusTypes[vstd::to_underlying(bonus->type)];
if (bonus->type == BonusType::SPELL_IMMUNITY && bonus->subtype.as<SpellID>().hasValue())
{
const CSpell * sp = bonus->subtype.as<SpellID>().toSpell();
return sp->getIconImmune();
}
if (bt.subtypeIcons.count(bonus->subtype.getNum()))
return bt.subtypeIcons.at(bonus->subtype.getNum());

View File

@@ -310,7 +310,7 @@ bool CSpell::canCastWithoutSkip() const
return castWithoutSkip;
}
const std::string & CSpell::getIconImmune() const
const ImagePath & CSpell::getIconImmune() const
{
return iconImmune;
}
@@ -948,7 +948,7 @@ std::shared_ptr<CSpell> CSpellHandler::loadFromJson(const std::string & scope, c
const JsonNode & graphicsNode = json["graphics"];
spell->iconImmune = graphicsNode["iconImmune"].String();
spell->iconImmune = ImagePath::fromJson(graphicsNode["iconImmune"]);
spell->iconBook = graphicsNode["iconBook"].String();
spell->iconEffect = graphicsNode["iconEffect"].String();
spell->iconScenarioBonus = graphicsNode["iconScenarioBonus"].String();

View File

@@ -221,7 +221,7 @@ public:
void registerIcons(const IconRegistar & cb) const override;
const std::string & getIconImmune() const; ///< Returns resource name of icon for SPELL_IMMUNITY bonus
const ImagePath & getIconImmune() const; ///< Returns resource name of icon for SPELL_IMMUNITY bonus
const std::string & getIconBook() const;
const std::string & getIconEffect() const;
const std::string & getIconScenarioBonus() const;
@@ -280,7 +280,7 @@ private:
spells::AimType targetType;
///graphics related stuff
std::string iconImmune;
ImagePath iconImmune;
std::string iconBook;
std::string iconEffect;
std::string iconScenarioBonus;