diff options
author | David Athay <ko2fan@gmail.com> | 2008-04-17 13:03:38 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-04-17 13:03:38 +0000 |
commit | 6c9a64ba9686cd4390f8039421b7af903bb436e5 (patch) | |
tree | 302967311ab1497a548efda371ab8b915acce62c | |
parent | 389737d51fd330f30a0ae71ba807ced7bb23aa18 (diff) | |
download | manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.gz manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.bz2 manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.xz manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.zip |
Added basic party support
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/chat-server/chathandler.cpp | 18 | ||||
-rw-r--r-- | src/chat-server/chathandler.hpp | 8 |
3 files changed, 30 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2008-04-17 David Athay <ko2fan@gmail.com> + + * src/chat-server/chathandler.hpp, src/chat-server/chathandler.cpp: + Added basic party support. + 2008-04-17 Yohann Ferreira <bertram@cegetel.net> * src/Makefile.am: Fixed compilation using automake. diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index b058e60d..9d146ad1 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -107,6 +107,9 @@ void ChatHandler::computerDisconnected(NetComputer *comp) // Remove the character from the player map mPlayerMap.erase(computer->characterName); + + // Remove user from party + removeUserFromParty(*computer); } delete computer; @@ -903,15 +906,30 @@ void ChatHandler::sendGuildListUpdate(const std::string &guildName, void ChatHandler::handlePartyCreation(ChatClient &client, MessageIn &msg) { + MessageOut out(CPMSG_PARTY_CREATE_RESPONSE); if (!client.party) { client.party = new Party(); client.party->addUser(client.characterName); + out.writeByte(ERRMSG_OK); + } + else + { + out.writeByte(ERRMSG_FAILURE); } + client.send(out); } void ChatHandler::handlePartyQuit(ChatClient &client, MessageIn &msg) { + removeUserFromParty(client); + MessageOut out(CPMSG_PARTY_QUIT_RESPONSE); + out.writeByte(ERRMSG_OK); + client.send(out); +} + +void ChatHandler::removeUserFromParty(ChatClient &client) +{ if (client.party) { client.party->removeUser(client.characterName); diff --git a/src/chat-server/chathandler.hpp b/src/chat-server/chathandler.hpp index c558326b..5ea3b969 100644 --- a/src/chat-server/chathandler.hpp +++ b/src/chat-server/chathandler.hpp @@ -232,12 +232,18 @@ class ChatHandler : public ConnectionHandler handlePartyCreation(ChatClient &client, MessageIn &msg); /** - * Deal with Announcement messages. + * Deal with leaving a party. */ void handlePartyQuit(ChatClient &client, MessageIn &msg); /** + * Remove user from party + */ + void + removeUserFromParty(ChatClient &client); + + /** * Tell the player to be more polite. */ void warnPlayerAboutBadWords(ChatClient &computer); |