diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-11-22 19:16:53 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-11-22 19:25:44 +0300 |
commit | 09e8d7ba7a5e29e4991b21056e358a7dcf0dd2df (patch) | |
tree | 4d6667c430fa75dd020a0c55272c4a110cfce841 | |
parent | c10c3b3e5ae49719a6f52873b003ef2643df3e60 (diff) | |
download | manaplus-09e8d7ba7a5e29e4991b21056e358a7dcf0dd2df.tar.gz manaplus-09e8d7ba7a5e29e4991b21056e358a7dcf0dd2df.tar.bz2 manaplus-09e8d7ba7a5e29e4991b21056e358a7dcf0dd2df.tar.xz manaplus-09e8d7ba7a5e29e4991b21056e358a7dcf0dd2df.zip |
Add chat command /selectskilllevel for select skill level in skills dialog.
-rw-r--r-- | src/actions/commands.cpp | 14 | ||||
-rw-r--r-- | src/actions/commands.h | 1 | ||||
-rw-r--r-- | src/dyetool/actions/commands.cpp | 2 | ||||
-rw-r--r-- | src/enums/input/inputaction.h | 1 | ||||
-rw-r--r-- | src/gui/windows/skilldialog.cpp | 13 | ||||
-rw-r--r-- | src/gui/windows/skilldialog.h | 3 | ||||
-rw-r--r-- | src/input/inputactionmap.h | 6 |
7 files changed, 39 insertions, 1 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 337174c25..5dcbc3d93 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -40,6 +40,7 @@ #include "gui/viewport.h" #include "gui/windows/chatwindow.h" +#include "gui/windows/skilldialog.h" #include "gui/windows/socialwindow.h" #include "gui/windows/outfitwindow.h" @@ -1062,4 +1063,17 @@ impHandler(slide) return false; } +impHandler(selectSkillLevel) +{ + int skill = 0; + int level = 0; + + if (skillDialog && parse2Int(event.args, skill, level)) + { + skillDialog->selectSkillLevel(skill, level); + return true; + } + return false; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index c3102b8c0..0e71f409c 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -90,6 +90,7 @@ namespace Actions decHandler(confGet); decHandler(serverConfGet); decHandler(slide); + decHandler(selectSkillLevel); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 17aa14083..60206a5a7 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -90,5 +90,5 @@ impHandlerVoid(serverConfSet) impHandlerVoid(confGet) impHandlerVoid(serverConfGet) impHandlerVoid(slide) - +impHandlerVoid(selectSkillLevel) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index 628f70b82..936aa9403 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -605,6 +605,7 @@ enumStart(InputAction) CHANGE_TARGETING_TYPE, TEST_INFO, SLIDE, + SELECT_SKILL_LEVEL, TOTAL } enumEnd(InputAction); diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index bcc023731..49b89c951 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -831,3 +831,16 @@ void SkillDialog::slowLogic() } } } + +void SkillDialog::selectSkillLevel(const int skillId, + const int level) +{ + SkillInfo *const info = getSkill(skillId); + if (!info) + return; + if (level > info->level) + info->selectedLevel = info->level; + else + info->selectedLevel = level; + info->update(); +} diff --git a/src/gui/windows/skilldialog.h b/src/gui/windows/skilldialog.h index 1e5740f58..47458e2db 100644 --- a/src/gui/windows/skilldialog.h +++ b/src/gui/windows/skilldialog.h @@ -147,6 +147,9 @@ class SkillDialog final : public Window, SkillData *getSkillDataByLevel(const int id, const int level) const; + void selectSkillLevel(const int skillId, + const int level); + private: void addSkillDuration(SkillInfo *const skill); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 7beafa6c3..c814e5ee6 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5072,6 +5072,12 @@ static const InputActionData inputActionData "slide", UseArgs_true, Protected_false}, + {"keySelectSkillLevel", + defaultAction(&Actions::selectSkillLevel), + InputCondition::INGAME, + "selectskilllevel", + UseArgs_true, + Protected_false}, }; #undef defaultAction |