diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-12-06 01:30:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-12-06 01:30:04 +0300 |
commit | 7a2d595785a61ec874ddc566e0d999495684c2aa (patch) | |
tree | c0b6d8b0137e002eb4847d8ead44562264ad1e18 /src/gui | |
parent | 2d452dd8faf2529fda01913b0ab26f4a1f22ef3d (diff) | |
download | manaplus-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.gz manaplus-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.bz2 manaplus-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.xz manaplus-7a2d595785a61ec874ddc566e0d999495684c2aa.zip |
Add gm commands to chat autocomplete list (only for gms)
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/chatwindow.cpp | 30 | ||||
-rw-r--r-- | src/gui/chatwindow.h | 3 | ||||
-rw-r--r-- | src/gui/didyouknowwindow.cpp | 6 | ||||
-rw-r--r-- | src/gui/helpwindow.cpp | 6 |
4 files changed, 38 insertions, 7 deletions
diff --git a/src/gui/chatwindow.cpp b/src/gui/chatwindow.cpp index 9ba54016e..33c24e9c7 100644 --- a/src/gui/chatwindow.cpp +++ b/src/gui/chatwindow.cpp @@ -60,6 +60,8 @@ #include "utils/gettext.h" #include "utils/stringutils.h" +#include "resources/resourcemanager.h" + #include <guichan/focushandler.hpp> #include <guichan/focuslistener.hpp> @@ -152,7 +154,8 @@ public: ChatWindow::ChatWindow(): Window(_("Chat"), false, nullptr, "chat.xml"), mTmpVisible(false), - mChatHistoryIndex(0) + mChatHistoryIndex(0), + mGMLoaded(false) { listen(CHANNEL_NOTICES); listen(Mana::CHANNEL_ATTRIBUTES); @@ -212,6 +215,8 @@ ChatWindow::ChatWindow(): mColorPicker->setVisible(config.getBoolValue("showChatColorsList")); fillCommands(); + if (player_node && player_node->isGM()) + loadGMCommands(); initTradeFilter(); loadCustomList(); parseHighlights(); @@ -302,6 +307,29 @@ void ChatWindow::fillCommands() mCommands.push_back("/pseudoaway "); } +void ChatWindow::loadGMCommands() +{ + if (mGMLoaded) + return; + + const char *fileName = "gmcommands.txt"; + ResourceManager *resman = ResourceManager::getInstance(); + std::vector<std::string> list; + resman->loadTextFile(fileName, list); + std::vector<std::string>::const_iterator it = list.begin(); + std::vector<std::string>::const_iterator it_end = list.end(); + + while (it != it_end) + { + const std::string str = *it; + if (!str.empty()) + mCommands.push_back(str); + + ++ it; + } + mGMLoaded = true; +} + void ChatWindow::resetToDefaultSize() { Window::resetToDefaultSize(); diff --git a/src/gui/chatwindow.h b/src/gui/chatwindow.h index 9d63ca402..3c1195e8f 100644 --- a/src/gui/chatwindow.h +++ b/src/gui/chatwindow.h @@ -243,6 +243,8 @@ class ChatWindow : public Window, void loadCustomList(); + void loadGMCommands(); + std::string doReplace(const std::string &msg); void adjustTabSize(); @@ -330,6 +332,7 @@ class ChatWindow : public Window, unsigned int mChatHistoryIndex; std::list<std::string> mAwayLog; std::vector<std::string> mHighlights; + bool mGMLoaded; }; extern ChatWindow *chatWindow; diff --git a/src/gui/didyouknowwindow.cpp b/src/gui/didyouknowwindow.cpp index 9a913a305..b5a7da634 100644 --- a/src/gui/didyouknowwindow.cpp +++ b/src/gui/didyouknowwindow.cpp @@ -138,16 +138,16 @@ void DidYouKnowWindow::loadFile(int num) { std::string name = helpPath + langs[0] + "/" + file + ".txt"; if (resman->exists(name)) - lines = resman->loadTextFile(name); + resman->loadTextFile(name, lines); if (lines.empty() && langs.size() > 1) { name = helpPath + langs[1] + "/" + file + ".txt"; - lines = resman->loadTextFile(name); + resman->loadTextFile(name, lines); } } if (lines.empty()) - lines = resman->loadTextFile(helpPath + file + ".txt"); + resman->loadTextFile(helpPath + file + ".txt", lines); for (unsigned int i = 0; i < lines.size(); ++i) mBrowserBox->addRow(lines[i]); diff --git a/src/gui/helpwindow.cpp b/src/gui/helpwindow.cpp index 49f309bca..b1175d709 100644 --- a/src/gui/helpwindow.cpp +++ b/src/gui/helpwindow.cpp @@ -114,16 +114,16 @@ void HelpWindow::loadFile(const std::string &file) { std::string name = helpPath + langs[0] + "/" + file + ".txt"; if (resman->exists(name)) - lines = resman->loadTextFile(name); + resman->loadTextFile(name, lines); if (lines.empty() && langs.size() > 1) { name = helpPath + langs[1] + "/" + file + ".txt"; - lines = resman->loadTextFile(name); + resman->loadTextFile(name, lines); } } if (lines.empty()) - lines = resman->loadTextFile(helpPath + file + ".txt"); + resman->loadTextFile(helpPath + file + ".txt", lines); for (unsigned int i = 0; i < lines.size(); ++i) mBrowserBox->addRow(lines[i]); |