diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-02-18 01:47:23 +0200 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-02-18 01:47:23 +0200 |
commit | 3b699158d2732d45e3a6bbb8c0dc1abfe85a9167 (patch) | |
tree | a4b8e95e65d458161c726be55cd263fee4f8b132 /src/net/tmwa/beinghandler.cpp | |
parent | 652759da11309e151d2d522532bc2a367cbd179d (diff) | |
download | mv-3b699158d2732d45e3a6bbb8c0dc1abfe85a9167.tar.gz mv-3b699158d2732d45e3a6bbb8c0dc1abfe85a9167.tar.bz2 mv-3b699158d2732d45e3a6bbb8c0dc1abfe85a9167.tar.xz mv-3b699158d2732d45e3a6bbb8c0dc1abfe85a9167.zip |
Add packet SMSG_BEING_NAME_RESPONSE2 with big being names.
Diffstat (limited to 'src/net/tmwa/beinghandler.cpp')
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp index f1d31a145..742a69f66 100644 --- a/src/net/tmwa/beinghandler.cpp +++ b/src/net/tmwa/beinghandler.cpp @@ -75,6 +75,7 @@ BeingHandler::BeingHandler(bool enableSync): SMSG_BEING_CHANGE_LOOKS, SMSG_BEING_CHANGE_LOOKS2, SMSG_BEING_NAME_RESPONSE, + SMSG_BEING_NAME_RESPONSE2, SMSG_PLAYER_GUILD_PARTY_INFO, SMSG_BEING_CHANGE_DIRECTION, SMSG_PLAYER_UPDATE_1, @@ -745,6 +746,46 @@ void BeingHandler::handleMessage(Net::MessageIn &msg) } } break; + case SMSG_BEING_NAME_RESPONSE2: + { + int len = msg.readInt16(); + logger->log("len: %d", len); + int beingId = msg.readInt32(); + logger->log("id: %d", beingId); + std::string str = msg.readString(len - 8); + logger->log("str: %s", str.c_str()); + if ((dstBeing = actorSpriteManager->findBeing(beingId))) + { + if (beingId == player_node->getId()) + { + player_node->pingResponse(); + } + else + { + dstBeing->setName(str); + dstBeing->updateGuild(); + dstBeing->addToCache(); + + if (dstBeing->getType() == Being::PLAYER) + dstBeing->updateColors(); + + if (player_node) + { + Party *party = player_node->getParty(); + if (party && party->isMember(dstBeing->getId())) + { + PartyMember *member = party->getMember( + dstBeing->getId()); + + if (member) + member->setName(dstBeing->getName()); + } + player_node->checkNewName(dstBeing); + } + } + } + } + break; case SMSG_BEING_IP_RESPONSE: { if ((dstBeing = actorSpriteManager->findBeing( |