summaryrefslogtreecommitdiff
path: root/src/chat-server/chathandler.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-04-17 13:03:38 +0000
committerDavid Athay <ko2fan@gmail.com>2008-04-17 13:03:38 +0000
commit6c9a64ba9686cd4390f8039421b7af903bb436e5 (patch)
tree302967311ab1497a548efda371ab8b915acce62c /src/chat-server/chathandler.cpp
parent389737d51fd330f30a0ae71ba807ced7bb23aa18 (diff)
downloadmanaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.gz
manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.bz2
manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.tar.xz
manaserv-6c9a64ba9686cd4390f8039421b7af903bb436e5.zip
Added basic party support
Diffstat (limited to 'src/chat-server/chathandler.cpp')
-rw-r--r--src/chat-server/chathandler.cpp18
1 files changed, 18 insertions, 0 deletions
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);