1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-05-13 22:06:58 +02:00

Fix broken grandmaster ability description updating on select/deselect

This commit is contained in:
Dydzio 2023-08-28 23:49:07 +02:00
parent dacf6c9d08
commit 2769782d0a
2 changed files with 14 additions and 2 deletions

View File

@ -128,6 +128,11 @@ void CCommanderSkillIcon::deselect()
isSelected = false;
}
bool CCommanderSkillIcon::getIsGrandmasterAbility()
{
return isGrandmasterAbility;
}
void CCommanderSkillIcon::show(Canvas &to)
{
CIntObject::show(to);
@ -915,7 +920,10 @@ void CStackWindow::setSelection(si32 newSkill, std::shared_ptr<CCommanderSkillIc
if(selectedIcon)
{
selectedIcon->text = getSkillDescription(oldSelection, false); //update previously selected icon's message to existing skill level
if(!selectedIcon->getIsGrandmasterAbility()) //unlike WoG, in VCMI grandmaster skill descriptions are taken from bonus descriptions
{
selectedIcon->text = getSkillDescription(oldSelection, false); //update previously selected icon's message to existing skill level
}
selectedIcon->deselect();
}
@ -923,7 +931,10 @@ void CStackWindow::setSelection(si32 newSkill, std::shared_ptr<CCommanderSkillIc
if(newSkill < 100)
{
newIcon->setObject(std::make_shared<CPicture>(getSkillImage(newSkill)));
newIcon->text = getSkillDescription(newSkill, true); //update currently selected icon's message to show upgrade description
if(!newIcon->getIsGrandmasterAbility())
{
newIcon->text = getSkillDescription(newSkill, true); //update currently selected icon's message to show upgrade description
}
}
}

View File

@ -43,6 +43,7 @@ public:
void setObject(std::shared_ptr<CIntObject> object);
void deselect(); //TODO: consider using observer pattern instead?
bool getIsGrandmasterAbility();
void show(Canvas &to) override;
};