diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-02-24 21:03:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-02-24 21:03:04 +0300 |
commit | 026fdd913ea337e0f7775eba957f88fc9ced7690 (patch) | |
tree | 0237d1b01e0928377b2d4ca71904878297b6f6bb | |
parent | e16d1f9b8e242686f0ffa1a7bcc3f254caffca95 (diff) | |
download | mv-026fdd913ea337e0f7775eba957f88fc9ced7690.tar.gz mv-026fdd913ea337e0f7775eba957f88fc9ced7690.tar.bz2 mv-026fdd913ea337e0f7775eba957f88fc9ced7690.tar.xz mv-026fdd913ea337e0f7775eba957f88fc9ced7690.zip |
Add chat command /spawnslaveclone. Also add it to player context menu.
-rw-r--r-- | src/actions/commands.cpp | 9 | ||||
-rw-r--r-- | src/actions/commands.h | 1 | ||||
-rw-r--r-- | src/dyetool/actions/commands.cpp | 1 | ||||
-rw-r--r-- | src/enums/input/inputaction.h | 1 | ||||
-rw-r--r-- | src/gui/popups/popupmenu.cpp | 3 | ||||
-rw-r--r-- | src/input/inputactionmap.h | 6 | ||||
-rw-r--r-- | src/net/adminhandler.h | 2 | ||||
-rw-r--r-- | src/net/eathena/adminhandler.cpp | 5 | ||||
-rw-r--r-- | src/net/eathena/adminhandler.h | 2 | ||||
-rw-r--r-- | src/net/tmwa/adminhandler.cpp | 4 | ||||
-rw-r--r-- | src/net/tmwa/adminhandler.h | 3 |
11 files changed, 37 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index 1df8407bf..65acd7c70 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1350,4 +1350,13 @@ impHandler(commandSpawnClone) return true; } +impHandler(commandSpawnSlaveClone) +{ + const std::string args = event.args; + if (args.empty()) + return false; + adminHandler->spawnSlaveClone(args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 7b03da782..45aa62998 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -114,6 +114,7 @@ namespace Actions decHandler(commandSpawn); decHandler(commandSpawnSlave); decHandler(commandSpawnClone); + decHandler(commandSpawnSlaveClone); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index b9da16a17..1eeb134ce 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -114,5 +114,6 @@ impHandlerVoid(commandShowAccountInfo) impHandlerVoid(commandSpawn) impHandlerVoid(commandSpawnSlave) impHandlerVoid(commandSpawnClone) +impHandlerVoid(commandSpawnSlaveClone) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index c0fb202b4..d3295d11b 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -643,6 +643,7 @@ enumStart(InputAction) COMMAND_SPAWN, COMMAND_SPAWN_SLAVE, COMMAND_SPAWN_CLONE, + COMMAND_SPAWN_SLAVE_CLONE, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index 9273240d0..b1279c4ef 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2703,6 +2703,9 @@ void PopupMenu::showPlayerGMCommands() // TRANSLATORS: popup menu item // TRANSLATORS: spawn player clone mBrowserBox->addRow("/spawnclone 'NAME'", _("Spawn clone")); + // TRANSLATORS: popup menu item + // TRANSLATORS: spawn slave player clone + mBrowserBox->addRow("/spawnslaveclone 'NAME'", _("Spawn slave clone")); if (mBeingId != BeingId_zero) { mBrowserBox->addRow("##3---"); diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index e615d4cf2..8e24df1f7 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5347,6 +5347,12 @@ static const InputActionData inputActionData "spawnclone|playerclone|clone", UseArgs_true, Protected_true}, + {"keyCommandSpawnSlaveClone", + defaultAction(&Actions::commandSpawnSlaveClone), + InputCondition::INGAME, + "spawnslaveclone|playerslaveclone|slaveclone", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 6ebf7c867..197a1dad6 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -130,6 +130,8 @@ class AdminHandler notfinal virtual void spawnSlave(const std::string &name) const = 0; virtual void spawnClone(const std::string &name) const = 0; + + virtual void spawnSlaveClone(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index f0f787499..11adc9406 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -263,4 +263,9 @@ void AdminHandler::spawnClone(const std::string &name) const chatHandler->talk("@clone " + name, GENERAL_CHANNEL); } +void AdminHandler::spawnSlaveClone(const std::string &name) const +{ + chatHandler->talk("@slaveclone " + name, GENERAL_CHANNEL); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index 505cb16ed..63f27319a 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -104,6 +104,8 @@ class AdminHandler final : public Ea::AdminHandler void spawnClone(const std::string &name) const override final; + void spawnSlaveClone(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 914265295..9c32ceaab 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -190,4 +190,8 @@ void AdminHandler::spawnClone(const std::string &name A_UNUSED) const { } +void AdminHandler::spawnSlaveClone(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index c3c7cc31e..89f44674e 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -112,6 +112,9 @@ class AdminHandler final : public Ea::AdminHandler void spawnSlave(const std::string &name) const override final A_CONST; void spawnClone(const std::string &name) const override final A_CONST; + + void spawnSlaveClone(const std::string &name) const override final + A_CONST; }; } // namespace TmwAthena |