diff options
Diffstat (limited to 'src/chat-server/post.cpp')
-rw-r--r-- | src/chat-server/post.cpp | 31 |
1 files changed, 13 insertions, 18 deletions
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)); } } |