From 66c33ea3f5e82ae09b935f65d7183b4ffc8bb9b1 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Feb 2016 22:29:43 +0300 Subject: Add chat command /hide. 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 | 15 ++++++++++++++- 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 | 5 +++++ src/net/tmwa/adminhandler.h | 2 ++ 11 files changed, 45 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 969807577..f0dd84500 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1435,4 +1435,10 @@ impHandler(commandImmortal) return true; } +impHandler(commandHide) +{ + adminHandler->hide(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 1e642ec9e..74fedcf8c 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -126,6 +126,7 @@ namespace Actions decHandler(commandAlive); decHandler(commandDisguise); decHandler(commandImmortal); + decHandler(commandHide); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index c885e7c48..5debac3d0 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -126,5 +126,6 @@ impHandlerVoid(commandHeal) impHandlerVoid(commandAlive) impHandlerVoid(commandDisguise) impHandlerVoid(commandImmortal) +impHandlerVoid(commandHide) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index 6d68d55fb..4c6a351bb 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -655,6 +655,7 @@ enumStart(InputAction) COMMAND_ALIVE, COMMAND_DISGUISE, COMMAND_IMMORTAL, + COMMAND_HIDE, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 20ee37264..1caf50adb 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2739,7 +2739,17 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: mute menu mBrowserBox->addRow("mute", _("Mute...")); } - if (!legacy) + if (legacy) + { + if (localPlayer->getName() == mNick) + { + // TRANSLATORS: popup menu item + // TRANSLATORS: hide player + mBrowserBox->addRow("/hide", _("Hide")); + mBrowserBox->addRow("##3---"); + } + } + else { // TRANSLATORS: popup menu item // TRANSLATORS: heal player @@ -2747,6 +2757,9 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: popup menu item // TRANSLATORS: enable immortal mode for player mBrowserBox->addRow("/immortal 'NAME'", _("Immortal")); + // TRANSLATORS: popup menu item + // TRANSLATORS: hide player + mBrowserBox->addRow("/hide 'NAME'", _("Hide")); mBrowserBox->addRow("##3---"); // TRANSLATORS: popup menu item // TRANSLATORS: set player as killer diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index d42fda40d..625b7dd88 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5419,6 +5419,12 @@ static const InputActionData inputActionData "immortal", UseArgs_true, Protected_true}, + {"keyCommandHide", + defaultAction(&Actions::commandHide), + InputCondition::INGAME, + "hide", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index ab38cdb1a..2a35036c6 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -152,6 +152,8 @@ class AdminHandler notfinal virtual void disguise(const std::string &name) const = 0; virtual void immortal(const std::string &name) const = 0; + + virtual void hide(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 8912750f4..1b7a7a8d5 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -300,4 +300,9 @@ void AdminHandler::immortal(const std::string &name) const Gm::runCharCommand("monsterignore", name); } +void AdminHandler::hide(const std::string &name) const +{ + Gm::runCharCommand("hide", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 79ad2143e..a86e68f4e 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -128,6 +128,8 @@ class AdminHandler final : public Ea::AdminHandler void immortal(const std::string &name) const override final; + void hide(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 6bcfcc66f..47ee1edcb 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -236,4 +236,9 @@ void AdminHandler::immortal(const std::string &name A_UNUSED) const { } +void AdminHandler::hide(const std::string &name A_UNUSED) const +{ + Gm::runCommand("hide"); +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 56511f7a8..4239bde8e 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -140,6 +140,8 @@ class AdminHandler final : public Ea::AdminHandler void disguise(const std::string &name) const override final; void immortal(const std::string &name) const override final; + + void hide(const std::string &name) const override final; }; } // namespace TmwAthena -- cgit v1.2.3-70-g09d2