diff options
-rw-r--r-- | src/gui/widgets/itemshortcutcontainer.cpp | 32 | ||||
-rw-r--r-- | src/gui/windows/skilldialog.cpp | 20 | ||||
-rw-r--r-- | src/resources/skill/skilldata.h | 1 |
3 files changed, 36 insertions, 17 deletions
diff --git a/src/gui/widgets/itemshortcutcontainer.cpp b/src/gui/widgets/itemshortcutcontainer.cpp index 915923610..e99230216 100644 --- a/src/gui/widgets/itemshortcutcontainer.cpp +++ b/src/gui/widgets/itemshortcutcontainer.cpp @@ -208,13 +208,15 @@ void ItemShortcutContainer::draw(Graphics *const graphics) image->setAlpha(1.0F); graphics->drawImage(image, itemX, itemY); } - - font->drawString(graphics, - mForegroundColor, - mForegroundColor, - skill->data->shortName, - itemX + 2, - itemY + mBoxHeight / 2); + if (!skill->data->haveIcon) + { + font->drawString(graphics, + mForegroundColor, + mForegroundColor, + skill->data->shortName, + itemX + 2, + itemY + mBoxHeight / 2); + } } } } @@ -345,13 +347,15 @@ void ItemShortcutContainer::safeDraw(Graphics *const graphics) image->setAlpha(1.0F); graphics->drawImage(image, itemX, itemY); } - - font->drawString(graphics, - mForegroundColor, - mForegroundColor, - skill->data->shortName, - itemX + 2, - itemY + mBoxHeight / 2); + if (!skill->data->haveIcon) + { + font->drawString(graphics, + mForegroundColor, + mForegroundColor, + skill->data->shortName, + itemX + 2, + itemY + mBoxHeight / 2); + } } } } diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index fdc1b7409..2305cd58b 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -536,9 +536,15 @@ void SkillDialog::loadSkillData(XmlNodeConstPtr node, data->name = name; const std::string icon = XML::getProperty(node, "icon", ""); if (icon.empty()) + { data->setIcon(paths.getStringValue("missingSkillIcon")); + data->haveIcon = false; + } else + { data->setIcon(icon); + data->haveIcon = true; + } if (skill->id < SKILL_VAR_MIN_ID) { data->dispName = strprintf("%s, %u", @@ -673,8 +679,6 @@ std::string SkillDialog::getDefaultSkillIcon(const SkillType::SkillType type) default: break; } - if (icon.empty()) - return paths.getStringValue("missingSkillIcon"); return icon; } @@ -705,7 +709,17 @@ void SkillDialog::addSkill(const SkillOwner::Type owner, data->dispName = strprintf("%s, %u", name.c_str(), skill->id); } data->description.clear(); - data->setIcon(getDefaultSkillIcon(type)); + const std::string icon = getDefaultSkillIcon(type); + if (icon.empty()) + { + data->setIcon(paths.getStringValue("missingSkillIcon")); + data->haveIcon = false; + } + else + { + data->setIcon(icon); + data->haveIcon = true; + } data->shortName = toString(skill->id); skill->modifiable = modifiable; skill->visible = Visible_false; diff --git a/src/resources/skill/skilldata.h b/src/resources/skill/skilldata.h index 920bb91cd..bb52b31cd 100644 --- a/src/resources/skill/skilldata.h +++ b/src/resources/skill/skilldata.h @@ -53,6 +53,7 @@ struct SkillData final int castingGroundEffectId; int srcEffectId; int dstEffectId; + bool haveIcon; SkillData(); A_DELETE_COPY(SkillData) |