summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-25 20:42:50 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-25 20:42:50 +0300
commit3fe3a77e1ae0db748a8a0b8d500db24a6a964b44 (patch)
treeaebc36f17eeb2d5ecf675bd3d424f5558422ec60 /src
parent64a067458ea169b9ff5b9a78ed1a011da86e8bdf (diff)
downloadmv-3fe3a77e1ae0db748a8a0b8d500db24a6a964b44.tar.gz
mv-3fe3a77e1ae0db748a8a0b8d500db24a6a964b44.tar.bz2
mv-3fe3a77e1ae0db748a8a0b8d500db24a6a964b44.tar.xz
mv-3fe3a77e1ae0db748a8a0b8d500db24a6a964b44.zip
Add chat command /gmheal. Also add it to player context menu.
Diffstat (limited to 'src')
-rw-r--r--src/actions/commands.cpp6
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/dyetool/actions/commands.cpp1
-rw-r--r--src/enums/input/inputaction.h1
-rw-r--r--src/gui/popups/popupmenu.cpp3
-rw-r--r--src/input/inputactionmap.h6
-rw-r--r--src/net/adminhandler.h2
-rw-r--r--src/net/eathena/adminhandler.cpp5
-rw-r--r--src/net/eathena/adminhandler.h2
-rw-r--r--src/net/tmwa/adminhandler.cpp4
-rw-r--r--src/net/tmwa/adminhandler.h2
11 files changed, 33 insertions, 0 deletions
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
@@ -2746,6 +2746,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"));
// TRANSLATORS: popup menu item
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