summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-12-06 01:30:04 +0300
committerAndrei Karas <akaras@inbox.ru>2011-12-06 01:30:04 +0300
commit7a2d595785a61ec874ddc566e0d999495684c2aa (patch)
treec0b6d8b0137e002eb4847d8ead44562264ad1e18 /src/gui
parent2d452dd8faf2529fda01913b0ab26f4a1f22ef3d (diff)
downloadmv-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.gz
mv-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.bz2
mv-7a2d595785a61ec874ddc566e0d999495684c2aa.tar.xz
mv-7a2d595785a61ec874ddc566e0d999495684c2aa.zip
Add gm commands to chat autocomplete list (only for gms)
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/chatwindow.cpp30
-rw-r--r--src/gui/chatwindow.h3
-rw-r--r--src/gui/didyouknowwindow.cpp6
-rw-r--r--src/gui/helpwindow.cpp6
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]);