diff options
Diffstat (limited to 'src/chat-server')
-rw-r--r-- | src/chat-server/chathandler.cpp | 2 | ||||
-rw-r--r-- | src/chat-server/guild.h | 2 | ||||
-rw-r--r-- | src/chat-server/guildhandler.cpp | 21 | ||||
-rw-r--r-- | src/chat-server/partyhandler.cpp | 18 | ||||
-rw-r--r-- | src/chat-server/post.cpp | 31 | ||||
-rw-r--r-- | src/chat-server/post.h | 11 |
6 files changed, 38 insertions, 47 deletions
diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index a33d08a9..cfdb5da6 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -83,7 +83,7 @@ void ChatHandler::tokenMatched(ChatClient *client, Pending *p) client->characterName = p->character; client->accountLevel = p->level; - CharacterData *c = storage->getCharacter(p->character); + auto c = storage->getCharacter(p->character); if (!c) { diff --git a/src/chat-server/guild.h b/src/chat-server/guild.h index 9cff757e..7f46f88c 100644 --- a/src/chat-server/guild.h +++ b/src/chat-server/guild.h @@ -102,7 +102,7 @@ class Guild /** * Returns a list of the members in this guild. */ - std::list<GuildMember*> getMembers() const + const std::list<GuildMember*> &getMembers() const { return mMembers; } /** diff --git a/src/chat-server/guildhandler.cpp b/src/chat-server/guildhandler.cpp index a47f8073..e69079e5 100644 --- a/src/chat-server/guildhandler.cpp +++ b/src/chat-server/guildhandler.cpp @@ -116,14 +116,11 @@ void ChatHandler::sendGuildListUpdate(Guild *guild, msg.writeInt16(guild->getId()); msg.writeString(characterName); msg.writeInt8(eventId); - std::map<std::string, ChatClient*>::const_iterator chr; - std::list<GuildMember*> members = guild->getMembers(); - for (std::list<GuildMember*>::const_iterator itr = members.begin(); - itr != members.end(); ++itr) + for (auto guildMember : guild->getMembers()) { - CharacterData *c = storage->getCharacter((*itr)->mId, nullptr); - chr = mPlayerMap.find(c->getName()); + auto c = storage->getCharacter(guildMember->mId, nullptr); + auto chr = mPlayerMap.find(c->getName()); if (chr != mPlayerMap.end()) { chr->second->send(msg); @@ -283,13 +280,11 @@ void ChatHandler::handleGuildGetMembers(ChatClient &client, MessageIn &msg) { reply.writeInt8(ERRMSG_OK); reply.writeInt16(guildId); - std::list<GuildMember*> memberList = guild->getMembers(); - std::list<GuildMember*>::const_iterator itr_end = memberList.end(); - for (auto itr = memberList.begin(); - itr != itr_end; ++itr) + + for (auto guildMember : guild->getMembers()) { - CharacterData *c = storage->getCharacter((*itr)->mId, nullptr); - std::string memberName = c->getName(); + auto c = storage->getCharacter(guildMember->mId, nullptr); + const std::string &memberName = c->getName(); reply.writeString(memberName); reply.writeInt8(mPlayerMap.find(memberName) != mPlayerMap.end()); } @@ -313,7 +308,7 @@ void ChatHandler::handleGuildMemberLevelChange(ChatClient &client, std::string user = msg.readString(); short level = msg.readInt8(); Guild *guild = guildManager->findById(guildId); - CharacterData *c = storage->getCharacter(user); + auto c = storage->getCharacter(user); if (guild && c) { diff --git a/src/chat-server/partyhandler.cpp b/src/chat-server/partyhandler.cpp index b7e1c8d9..fa615824 100644 --- a/src/chat-server/partyhandler.cpp +++ b/src/chat-server/partyhandler.cpp @@ -22,8 +22,9 @@ #include "chatclient.h" #include "party.h" -#include "account-server/storage.h" +#include "account-server/character.h" #include "account-server/serverhandler.h" +#include "account-server/storage.h" #include "common/manaserv_protocol.h" @@ -32,10 +33,10 @@ using namespace ManaServ; -void updateInfo(ChatClient *client, int partyId) +static void updateInfo(ChatClient *client, int partyId) { - CharacterData *character = storage->getCharacter(client->characterName); - GameServerHandler::sendPartyChange(character, partyId); + if (auto character = storage->getCharacter(client->characterName)) + GameServerHandler::sendPartyChange(*character, partyId); } void ChatHandler::removeExpiredPartyInvites() @@ -201,16 +202,13 @@ void ChatHandler::removeUserFromParty(ChatClient &client) void ChatHandler::informPartyMemberQuit(ChatClient &client) { - std::map<std::string, ChatClient*>::iterator itr; - std::map<std::string, ChatClient*>::const_iterator itr_end = mPlayerMap.end(); - - for (itr = mPlayerMap.begin(); itr != itr_end; ++itr) + for (auto& nameAndClient : mPlayerMap) { - if (itr->second->party == client.party) + if (nameAndClient.second->party == client.party) { MessageOut out(CPMSG_PARTY_MEMBER_LEFT); out.writeInt32(client.characterId); - itr->second->send(out); + nameAndClient.second->send(out); } } } diff --git a/src/chat-server/post.cpp b/src/chat-server/post.cpp index cfd9506b..78fab0ed 100644 --- a/src/chat-server/post.cpp +++ b/src/chat-server/post.cpp @@ -20,21 +20,22 @@ #include "post.h" -#include "../account-server/character.h" -#include "../common/configuration.h" +#include "account-server/character.h" +#include "common/configuration.h" -Letter::Letter(unsigned type, CharacterData *sender, CharacterData *receiver) - : mId(0), mType(type), mExpiry(0), mSender(sender), mReceiver(receiver) +Letter::Letter(unsigned type, + std::unique_ptr<CharacterData> sender, + std::unique_ptr<CharacterData> receiver) + : mId(0) + , mType(type) + , mExpiry(0) + , mSender(std::move(sender)) + , mReceiver(std::move(receiver)) { } Letter::~Letter() { - if (mSender) - delete mSender; - - if (mReceiver) - delete mReceiver; } void Letter::setExpiry(unsigned long expiry) @@ -72,12 +73,12 @@ bool Letter::addAttachment(InventoryItem item) CharacterData *Letter::getReceiver() const { - return mReceiver; + return mReceiver.get(); } CharacterData *Letter::getSender() const { - return mSender; + return mSender.get(); } const std::vector<InventoryItem> &Letter::getAttachments() const @@ -113,10 +114,6 @@ bool Post::addLetter(Letter *letter) Letter* Post::getLetter(int letter) const { - if (letter < 0 || (size_t) letter > mLetters.size()) - { - return nullptr; - } return mLetters[letter]; } @@ -137,9 +134,7 @@ void PostManager::addLetter(Letter *letter) { auto post = new Post(); post->addLetter(letter); - mPostBox.insert( - std::pair<CharacterData*, Post*>(letter->getReceiver(), post) - ); + mPostBox.insert(std::make_pair(letter->getReceiver(), post)); } } diff --git a/src/chat-server/post.h b/src/chat-server/post.h index de15bf1a..eb8cdb71 100644 --- a/src/chat-server/post.h +++ b/src/chat-server/post.h @@ -22,10 +22,11 @@ #define POST_H #include <map> +#include <memory> #include <string> #include <vector> -#include "../common/inventorydata.h" +#include "common/inventorydata.h" class CharacterData; @@ -41,7 +42,9 @@ public: * @param sender Pointer to character that sent the letter * @param receiver Pointer to character that will receive the letter */ - Letter(unsigned type, CharacterData *sender, CharacterData *receiver); + Letter(unsigned type, + std::unique_ptr<CharacterData> sender, + std::unique_ptr<CharacterData> receiver); ~Letter(); @@ -117,8 +120,8 @@ private: unsigned long mExpiry; std::string mContents; std::vector<InventoryItem> mAttachments; - CharacterData *mSender; - CharacterData *mReceiver; + std::unique_ptr<CharacterData> mSender; + std::unique_ptr<CharacterData> mReceiver; }; class Post |