diff options
Diffstat (limited to 'src/gui/popups')
-rw-r--r-- | src/gui/popups/popupmenu.cpp | 55 | ||||
-rw-r--r-- | src/gui/popups/popupmenu.h | 3 |
2 files changed, 58 insertions, 0 deletions
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index b7a7a282e..8257033b4 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2397,6 +2397,14 @@ void PopupMenu::showSkillPopup(const SkillInfo *const info) // TRANSLATORS: popup menu item // TRANSLATORS: set skill cast type _("Skill cast type...")); + mBrowserBox->addRow("/showskilloffsetx 'ITEMID'", + // TRANSLATORS: popup menu item + // TRANSLATORS: set skill cast offset by x + _("Skill offset by x...")); + mBrowserBox->addRow("/showskilloffsety 'ITEMID'", + // TRANSLATORS: popup menu item + // TRANSLATORS: set skill cast offset by y + _("Skill offset by y...")); // TRANSLATORS: popup menu item // TRANSLATORS: close menu mBrowserBox->addRow("cancel", _("Cancel")); @@ -2404,6 +2412,53 @@ void PopupMenu::showSkillPopup(const SkillInfo *const info) showPopup(mX, mY); } +void PopupMenu::showSkillOffsetPopup(const SkillInfo *const info, + const bool isOffsetX) +{ + if (!info) + return; + setMousePos2(); + + // using mItemId as skill id + mItemId = info->id; + // using mItemIndex as skill level + mItemIndex = info->level; + mBrowserBox->clearRows(); + char letter = ' '; + + if (isOffsetX) + { + // TRANSLATORS: popup menu header + mBrowserBox->addRow(_("Skill cast offset by x")); + letter = 'x'; + } + else + { + // TRANSLATORS: popup menu header + mBrowserBox->addRow(_("Skill cast offset by y")); + letter = 'y'; + } + for (int f = -9; f <= 9; f ++) + { + const std::string command = strprintf( + "/setskilloffset%c 'ITEMID' %d", letter, f); + if (f == 0) + { + mBrowserBox->addRow(command, + strprintf("%d", f).c_str()); + } + else + { + mBrowserBox->addRow(command, + strprintf("%+d", f).c_str()); + } + } + // TRANSLATORS: popup menu item + // TRANSLATORS: close menu + mBrowserBox->addRow("cancel", _("Cancel")); + showPopup(mX, mY); +} + void PopupMenu::showSkillLevelPopup(const SkillInfo *const info) { if (!info) diff --git a/src/gui/popups/popupmenu.h b/src/gui/popups/popupmenu.h index 45c9bdda7..7bd4c085e 100644 --- a/src/gui/popups/popupmenu.h +++ b/src/gui/popups/popupmenu.h @@ -167,6 +167,9 @@ class PopupMenu final : public Popup, public LinkHandler void showSkillTypePopup(const SkillInfo *const info); + void showSkillOffsetPopup(const SkillInfo *const info, + const bool isOffsetX); + void showCraftPopup(); void showEmoteType(); |