From 86c02e2712e2177ae6a41bbfa66e6284d6ff9b15 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Feb 2016 18:37:52 +0300 Subject: Add chat command /loadposition. 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 | 5 ++++- 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 | 3 +++ 11 files changed, 35 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index ebb472130..771bf0ed5 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -1375,4 +1375,10 @@ impHandler(commandSavePosition) return true; } +impHandler(commandLoadPosition) +{ + adminHandler->loadPosition(event.args); + return true; +} + } // namespace Actions diff --git a/src/actions/commands.h b/src/actions/commands.h index 130efec9a..c7b1b60cb 100644 --- a/src/actions/commands.h +++ b/src/actions/commands.h @@ -117,6 +117,7 @@ namespace Actions decHandler(commandSpawnSlaveClone); decHandler(commandSpawnEvilClone); decHandler(commandSavePosition); + decHandler(commandLoadPosition); } // namespace Actions #undef decHandler diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp index 984d814d3..3f6254053 100644 --- a/src/dyetool/actions/commands.cpp +++ b/src/dyetool/actions/commands.cpp @@ -117,5 +117,6 @@ impHandlerVoid(commandSpawnClone) impHandlerVoid(commandSpawnSlaveClone) impHandlerVoid(commandSpawnEvilClone) impHandlerVoid(commandSavePosition) +impHandlerVoid(commandLoadPosition) } // namespace Actions diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h index 5844e36be..c3e04d935 100644 --- a/src/enums/input/inputaction.h +++ b/src/enums/input/inputaction.h @@ -646,6 +646,7 @@ enumStart(InputAction) COMMAND_SPAWN_SLAVE_CLONE, COMMAND_SPAWN_EVIL_CLONE, COMMAND_SAVE_POSITION, + COMMAND_LOAD_POSITION, TOTAL } enumEnd(InputAction); diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp index cdcbf836a..763bdd771 100644 --- a/src/gui/popups/popupmenu.cpp +++ b/src/gui/popups/popupmenu.cpp @@ -2737,7 +2737,10 @@ void PopupMenu::showPlayerGMCommands() } // TRANSLATORS: popup menu item // TRANSLATORS: set player save position - mBrowserBox->addRow("/savepos", _("Set save position")); + mBrowserBox->addRow("/savepos 'NAME'", _("Set save position")); + // TRANSLATORS: popup menu item + // TRANSLATORS: warp player to save position + mBrowserBox->addRow("/loadpos 'NAME'", _("Warp to save position")); mBrowserBox->addRow("##3---"); // TRANSLATORS: popup menu item // TRANSLATORS: spawn player clone diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index be335c9fb..1289a9ecd 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -5365,6 +5365,12 @@ static const InputActionData inputActionData "savepos|saveposition", UseArgs_true, Protected_true}, + {"keyCommandLoadPosition", + defaultAction(&Actions::commandLoadPosition), + InputCondition::INGAME, + "loadpos|loadposition", + UseArgs_true, + Protected_true}, }; #undef defaultAction diff --git a/src/net/adminhandler.h b/src/net/adminhandler.h index 963356a81..f34a47306 100644 --- a/src/net/adminhandler.h +++ b/src/net/adminhandler.h @@ -136,6 +136,8 @@ class AdminHandler notfinal virtual void spawnEvilClone(const std::string &name) const = 0; virtual void savePosition(const std::string &name) const = 0; + + virtual void loadPosition(const std::string &name) const = 0; }; } // namespace Net diff --git a/src/net/eathena/adminhandler.cpp b/src/net/eathena/adminhandler.cpp index 9794a8b51..80a1df983 100644 --- a/src/net/eathena/adminhandler.cpp +++ b/src/net/eathena/adminhandler.cpp @@ -255,4 +255,9 @@ void AdminHandler::savePosition(const std::string &name) const Gm::runCharCommand("save", name); } +void AdminHandler::loadPosition(const std::string &name) const +{ + Gm::runCharCommand("load", name); +} + } // namespace EAthena diff --git a/src/net/eathena/adminhandler.h b/src/net/eathena/adminhandler.h index d0212a027..e5b5e511a 100644 --- a/src/net/eathena/adminhandler.h +++ b/src/net/eathena/adminhandler.h @@ -110,6 +110,8 @@ class AdminHandler final : public Ea::AdminHandler void savePosition(const std::string &name) const override final; + void loadPosition(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 264eca1ad..69bdf27b8 100644 --- a/src/net/tmwa/adminhandler.cpp +++ b/src/net/tmwa/adminhandler.cpp @@ -199,4 +199,8 @@ void AdminHandler::savePosition(const std::string &name A_UNUSED) const { } +void AdminHandler::loadPosition(const std::string &name A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/adminhandler.h b/src/net/tmwa/adminhandler.h index 0aaa64f17..9d0471b8c 100644 --- a/src/net/tmwa/adminhandler.h +++ b/src/net/tmwa/adminhandler.h @@ -121,6 +121,9 @@ class AdminHandler final : public Ea::AdminHandler void savePosition(const std::string &name) const override final A_CONST; + + void loadPosition(const std::string &name) const override final + A_CONST; }; } // namespace TmwAthena -- cgit v1.2.3-70-g09d2