summaryrefslogtreecommitdiff
path: root/src/input/inputmanager.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-10-16 20:04:47 +0300
committerAndrei Karas <akaras@inbox.ru>2015-10-16 20:04:47 +0300
commitf4761d658102198abcce6b020c2c0f0e756d534a (patch)
treec0f3df556e4eb6074900c056a70684aba2d94829 /src/input/inputmanager.cpp
parenteeaf54bbaa50ba969fa982498bf39d40dca9a67a (diff)
downloadmanaplus-f4761d658102198abcce6b020c2c0f0e756d534a.tar.gz
manaplus-f4761d658102198abcce6b020c2c0f0e756d534a.tar.bz2
manaplus-f4761d658102198abcce6b020c2c0f0e756d534a.tar.xz
manaplus-f4761d658102198abcce6b020c2c0f0e756d534a.zip
Add protection attribute to input actions. Unsafe actions blocked from remote usage.
Diffstat (limited to 'src/input/inputmanager.cpp')
-rw-r--r--src/input/inputmanager.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/input/inputmanager.cpp b/src/input/inputmanager.cpp
index a9d35fb64..27d15a366 100644
--- a/src/input/inputmanager.cpp
+++ b/src/input/inputmanager.cpp
@@ -811,6 +811,27 @@ bool InputManager::executeChatCommand(const std::string &cmd,
return false;
}
+bool InputManager::executeRemoteChatCommand(const std::string &cmd,
+ const std::string &args,
+ ChatTab *const tab)
+{
+ const StringIntMapCIter it = mChatMap.find(cmd);
+ if (it != mChatMap.end())
+ {
+ const InputActionData &data = inputActionData[(*it).second];
+ if (data.isProtected == Protected_true)
+ return false;
+ ActionFuncPtr func = *(data.action);
+ if (func)
+ {
+ InputEvent evt(args, tab, mMask);
+ func(evt);
+ return true;
+ }
+ }
+ return false;
+}
+
bool InputManager::executeChatCommand(const InputActionT keyNum,
const std::string &args,
ChatTab *const tab)