summaryrefslogtreecommitdiff
path: root/src/gui/windows/skilldialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/skilldialog.cpp')
-rw-r--r--src/gui/windows/skilldialog.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp
index 5cd79c600..0babe5d38 100644
--- a/src/gui/windows/skilldialog.cpp
+++ b/src/gui/windows/skilldialog.cpp
@@ -125,8 +125,17 @@ void SkillDialog::action(const ActionEvent &event)
{
if (const SkillInfo *const info = tab->getSelectedInfo())
{
- mUseButton->setEnabled(info->range > 0);
- mUseButton->setCaption(info->useButton);
+ if (info && info->data && info->useButton.empty()
+ && info->data->description.empty())
+ {
+ mUseButton->setEnabled(true);
+ mUseButton->setCaption(_("Use"));
+ }
+ else
+ {
+ mUseButton->setEnabled(info->range > 0);
+ mUseButton->setCaption(info->useButton);
+ }
mIncreaseButton->setEnabled(info->id < SKILL_VAR_MIN_ID);
const int num = itemShortcutWindow->getTabIndex();
if (num >= 0 && num < static_cast<int>(SHORTCUT_TABS)
@@ -151,15 +160,7 @@ void SkillDialog::action(const ActionEvent &event)
if (tab)
{
const SkillInfo *const info = tab->getSelectedInfo();
- if (info && localPlayer && localPlayer->getTarget())
- {
- const Being *const being = localPlayer->getTarget();
- if (being)
- {
- Net::getSkillHandler()->useBeing(info->level,
- info->id, being->getId());
- }
- }
+ useSkill(info);
}
}
else if (eventId == "close")
@@ -420,15 +421,7 @@ void SkillDialog::useItem(const int itemId) const
return;
const SkillInfo *const info = (*it).second;
- if (info && localPlayer && localPlayer->getTarget())
- {
- const Being *const being = localPlayer->getTarget();
- if (being)
- {
- Net::getSkillHandler()->useBeing(info->level,
- info->id, being->getId());
- }
- }
+ useSkill(info);
}
void SkillDialog::updateTabSelection()
@@ -480,3 +473,16 @@ void SkillDialog::playUpdateEffect(const int id) const
effectManager->trigger(effectId, localPlayer);
}
}
+
+void SkillDialog::useSkill(const SkillInfo *const info)
+{
+ if (info && localPlayer && localPlayer->getTarget())
+ {
+ const Being *const being = localPlayer->getTarget();
+ if (being)
+ {
+ Net::getSkillHandler()->useBeing(info->level,
+ info->id, being->getId());
+ }
+ }
+}