From 3fe3a77e1ae0db748a8a0b8d500db24a6a964b44 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Feb 2016 20:42:50 +0300 Subject: Add chat command /gmheal. Also add it to player context menu. --- src/actions/commands.cpp | 6 ++++++ src/actions/commands.h | 1 + src/dyetool/actions/commands.cpp | 1 + src/enums/input/inputaction.h | 1 + src/gui/popups/popupmenu.cpp | 3 +++ src/input/inputactionmap.h | 6 ++++++ src/net/adminhandler.h | 2 ++ src/net/eathena/adminhandler.cpp | 5 +++++ src/net/eathena/adminhandler.h | 2 ++ src/net/tmwa/adminhandler.cpp | 4 ++++ src/net/tmwa/adminhandler.h | 2 ++ 11 files changed, 33 insertions(+) diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 426c89da7..b3412f50a 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1408,4 +1408,10 @@ impHandler(commandKillable) return true; } +impHandler(commandHeal) +{ + adminHandler->heal(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 19581facc..c84a4de54 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -122,6 +122,7 @@ namespace Actions decHandler(commandGotoNpc); decHandler(commandKiller); decHandler(commandKillable); + decHandler(commandHeal); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index b1ff43838..5473ee04e 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -122,5 +122,6 @@ impHandlerVoid(commandRandomWarp) impHandlerVoid(commandGotoNpc) impHandlerVoid(commandKiller) impHandlerVoid(commandKillable) +impHandlerVoid(commandHeal) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index c838648a4..ca1fe01a2 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -651,6 +651,7 @@ enumStart(InputAction) COMMAND_GOTO_NPC, COMMAND_KILLER, COMMAND_KILLABLE, + COMMAND_HEAL, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index b8923bd7e..34d29ef10 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2745,6 +2745,9 @@ void PopupMenu::showPlayerGMCommands() } if (!legacy) { + // TRANSLATORS: popup menu item + // TRANSLATORS: heal player + mBrowserBox->addRow("/gmheal 'NAME'", _("Heal")); // TRANSLATORS: popup menu item // TRANSLATORS: set player as killer mBrowserBox->addRow("/killer 'NAME'", _("Killer")); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 6c0975015..299af0268 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5395,6 +5395,12 @@ static const InputActionData inputActionData "setkillable|killable", UseArgs_true, Protected_true}, + {"keyCommandHeal", + defaultAction(&Actions::commandHeal), + InputCondition::INGAME, + "gmheal", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 6814f36ea..b741fd7a1 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -146,6 +146,8 @@ class AdminHandler notfinal virtual void killer(const std::string &name) const = 0; virtual void killable(const std::string &name) const = 0; + + virtual void heal(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 270c20070..1abdb3b01 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -280,4 +280,9 @@ void AdminHandler::killable(const std::string &name) const Gm::runCharCommand("killable", name); } +void AdminHandler::heal(const std::string &name) const +{ + Gm::runCharCommand("heal", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 6e6906fcf..8897dd58d 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -120,6 +120,8 @@ class AdminHandler final : public Ea::AdminHandler void killable(const std::string &name) const override final; + void heal(const std::string &name) const override final; + protected: static std::string mStatsName; }; diff --git a/src/net/tmwa/adminhandler.cpp b/src/net/tmwa/adminhandler.cpp index 5b3645786..f9f85e8be 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -219,4 +219,8 @@ void AdminHandler::killable(const std::string &name A_UNUSED) const { } +void AdminHandler::heal(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 607ea8ed1..2d06e88d3 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -132,6 +132,8 @@ class AdminHandler final : public Ea::AdminHandler void killer(const std::string &name) const override final A_CONST; void killable(const std::string &name) const override final A_CONST; + + void heal(const std::string &name) const override final A_CONST; }; } // namespace TmwAthena -- cgit v1.2.3-60-g2f50