diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/gui/chat.cpp | 90 | ||||
-rw-r--r-- | src/gui/chat.h | 9 | ||||
-rw-r--r-- | tmw.cbp | 4 |
4 files changed, 100 insertions, 7 deletions
@@ -1,3 +1,7 @@ +2008-07-08 David Athay <ko2fan@gmail.com> + + * src/gui/chat.cpp, src/gui/chat.h: Mantis #359 patch by Scraggy. + 2008-06-30 Bjørn Lindeijer <bjorn@lindeijer.nl> * src/CMakeLists.txt: Updated CMake file to fix compilation. Patch by diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 5e3aaf60..2894bb70 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -275,13 +275,25 @@ ChatWindow::chatSend(const std::string &nick, std::string msg) } else if (msg.substr(0, IS_HELP_LENGTH) == IS_HELP) { - chatLog("-- Help --", BY_SERVER); - chatLog("/help: Display this help.", BY_SERVER); - chatLog("/announce: Global announcement (GM only)", BY_SERVER); - chatLog("/where: Display map name", BY_SERVER); - chatLog("/who: Display number of online users", BY_SERVER); - chatLog("/clear: Clears this window", BY_SERVER); - chatLog("/whisper <nick> <message>: Sends a private <message> to <nick>", BY_SERVER); + msg.erase(0, IS_HELP_LENGTH + 1); + trim(msg); + std::size_t space = msg.find(" "); + std::string msg1; + if (space == std::string::npos) + { + msg1 = ""; + } + else + { + msg1 = msg.substr(space + 1, msg.length()); + msg = msg.substr(0, space); + } + if (msg != "" && msg.at(0) == '/') + { + msg.erase(0, 1); + } + trim(msg1); + help(msg, msg1); } else if (msg.substr(0, IS_WHERE_LENGTH) == IS_WHERE) { @@ -469,3 +481,67 @@ ChatWindow::setVisible(bool isVisible) mTmpVisible = false; } +void ChatWindow::help(const std::string &msg1, const std::string &msg2) +{ + chatLog("-- Help --", BY_SERVER); + if (msg1 == "") + { + chatLog("/announce: Global announcement (GM only)", BY_SERVER); + chatLog("/clear: Clears this window", BY_SERVER); + chatLog("/help: Display this help.", BY_SERVER); + chatLog("/where: Display map name", BY_SERVER); + chatLog("/whisper <nick> <message>: Sends a private <message>" + " to <nick>", BY_SERVER); + chatLog("/who: Display number of online users", BY_SERVER); + chatLog("For more information, type /help <command>", BY_SERVER); + return; + } + if (msg1 == "announce") + { + chatLog("Command: /announce <msg>", BY_SERVER); + chatLog("*** only available to a GM ***", BY_SERVER); + chatLog("This command sends the message <msg> to " + "all players currently online.", BY_SERVER); + return; + } + if (msg1 == "clear") + { + chatLog("Command: /clear", BY_SERVER); + chatLog("This command clears the chat log of previous chat.", + BY_SERVER); + return; + } + if (msg1 == "help") + { + chatLog("Command: /help", BY_SERVER); + chatLog("This command displays a list of all commands available.", + BY_SERVER); + chatLog("Command: /help <command>", BY_SERVER); + chatLog("This command displays help on <command>.", BY_SERVER); + return; + } + if (msg1 == "where") + { + chatLog("Command: /where", BY_SERVER); + chatLog("This command displays the name of the current map.", + BY_SERVER); + return; + } + if (msg1 == "whisper") + { + chatLog("Command: /whisper <nick> <msg>", BY_SERVER); + chatLog("This command sends the message <msg> to <nick.", BY_SERVER); + chatLog("If the <nick> has spaces in it, enclose it in " + "double quotes (\").", BY_SERVER); + return; + } + if (msg1 == "who") + { + chatLog("Command: /who", BY_SERVER); + chatLog("This command displays the number of players currently " + "online.", BY_SERVER); + return; + } + chatLog("Unknown command.", BY_SERVER); + chatLog("Type /help for a list of commands.", BY_SERVER); +} diff --git a/src/gui/chat.h b/src/gui/chat.h index 0bdc76f1..a1d659a0 100644 --- a/src/gui/chat.h +++ b/src/gui/chat.h @@ -208,6 +208,15 @@ class ChatWindow : public Window, public gcn::ActionListener, void scroll(int amount); + /** + * help implements the /help command + * + * @param msg1 is the command that the player needs help on + * @param msg2 is the sub-command relating to the command + */ + void + help(const std::string &msg1, const std::string &msg2); + private: Network *mNetwork; bool mTmpVisible; @@ -325,6 +325,8 @@ <Unit filename="src/resources/monsterinfo.h" /> <Unit filename="src/resources/music.cpp" /> <Unit filename="src/resources/music.h" /> + <Unit filename="src/resources/npcdb.cpp" /> + <Unit filename="src/resources/npcdb.h" /> <Unit filename="src/resources/resource.cpp" /> <Unit filename="src/resources/resource.h" /> <Unit filename="src/resources/resourcemanager.cpp" /> @@ -334,6 +336,8 @@ <Unit filename="src/resources/spritedef.cpp" /> <Unit filename="src/resources/spritedef.h" /> <Unit filename="src/serverinfo.h" /> + <Unit filename="src/shopitem.cpp" /> + <Unit filename="src/shopitem.h" /> <Unit filename="src/simpleanimation.cpp" /> <Unit filename="src/simpleanimation.h" /> <Unit filename="src/sound.cpp" /> |