diff --git a/client/windows/CCreatureWindow.cpp b/client/windows/CCreatureWindow.cpp index 956a7ea99..3fcbfb536 100644 --- a/client/windows/CCreatureWindow.cpp +++ b/client/windows/CCreatureWindow.cpp @@ -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_ptrtext = 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_ptrsetObject(std::make_shared(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 + } } } diff --git a/client/windows/CCreatureWindow.h b/client/windows/CCreatureWindow.h index 2a82d4f0a..546bce3d6 100644 --- a/client/windows/CCreatureWindow.h +++ b/client/windows/CCreatureWindow.h @@ -43,6 +43,7 @@ public: void setObject(std::shared_ptr object); void deselect(); //TODO: consider using observer pattern instead? + bool getIsGrandmasterAbility(); void show(Canvas &to) override; };