From 2efe6bad2044f12d842466e149f512aba9b7fc86 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 23 Aug 2014 20:51:41 +0300 Subject: Add support for miltiple chat command names per one action. --- src/input/inputmanager.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/input/inputmanager.cpp b/src/input/inputmanager.cpp index 140600a0a..099e2b7fb 100644 --- a/src/input/inputmanager.cpp +++ b/src/input/inputmanager.cpp @@ -110,7 +110,12 @@ void InputManager::retrieve() { const std::string &cmd = inputActionData[i].chatCommand; if (!cmd.empty()) - mChatMap[cmd] = i; + { + StringVect tokens; + splitToStringVector(tokens, cmd, '|'); + FOR_EACH (StringVectCIter, it, tokens) + mChatMap[*it] = i; + } #ifdef USE_SDL2 const std::string cf = std::string("sdl2") + inputActionData[i].configField; @@ -856,10 +861,15 @@ void InputManager::addChatCommands(std::list &arr) std::string cmd = ad.chatCommand; if (!cmd.empty()) { - cmd = std::string("/").append(cmd); - if (ad.useArgs) - cmd.append(" "); - arr.push_back(cmd); + StringVect tokens; + splitToStringVector(tokens, cmd, '|'); + FOR_EACH (StringVectCIter, it, tokens) + { + cmd = std::string("/").append(*it); + if (ad.useArgs) + cmd.append(" "); + arr.push_back(cmd); + } } } } -- cgit v1.2.3-70-g09d2