diff options
Diffstat (limited to 'src/account-server/serverhandler.cpp')
-rw-r--r-- | src/account-server/serverhandler.cpp | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/src/account-server/serverhandler.cpp b/src/account-server/serverhandler.cpp index aa9f78cd..4354997f 100644 --- a/src/account-server/serverhandler.cpp +++ b/src/account-server/serverhandler.cpp @@ -153,13 +153,13 @@ bool GameServerHandler::getGameServerFromMap(int mapId, } static void registerGameClient(GameServer *s, const std::string &token, - const CharacterData &ptr) + const CharacterData &character) { MessageOut msg(AGMSG_PLAYER_ENTER); msg.writeString(token, MAGIC_TOKEN_LENGTH); - msg.writeInt32(ptr.getDatabaseID()); - msg.writeString(ptr.getName()); - ptr.serialize(msg); + msg.writeInt32(character.getDatabaseID()); + msg.writeString(character.getName()); + character.serialize(msg); s->send(msg); } @@ -284,15 +284,14 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) { LOG_DEBUG("GAMSG_PLAYER_DATA"); int id = msg.readInt32(); - if (CharacterData *ptr = storage->getCharacter(id, nullptr)) + if (auto character = storage->getCharacter(id, nullptr)) { - ptr->deserialize(msg); - if (!storage->updateCharacter(ptr)) + character->deserialize(msg); + if (!storage->updateCharacter(*character)) { LOG_ERROR("Failed to update character " << id << '.'); } - delete ptr; } else { @@ -312,12 +311,12 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) LOG_DEBUG("GAMSG_REDIRECT"); int id = msg.readInt32(); std::string magic_token(utils::getMagicToken()); - if (CharacterData *ptr = storage->getCharacter(id, nullptr)) + if (auto character = storage->getCharacter(id, nullptr)) { - int mapId = ptr->getMapId(); + int mapId = character->getMapId(); if (GameServer *s = getGameServerFromMap(mapId)) { - registerGameClient(s, magic_token, *ptr); + registerGameClient(s, magic_token, *character); MessageOut result(AGMSG_REDIRECT_RESPONSE); result.writeInt32(id); result.writeString(magic_token, MAGIC_TOKEN_LENGTH); @@ -330,7 +329,6 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) LOG_ERROR("Server Change: No game server for map " << mapId << '.'); } - delete ptr; } else { @@ -345,11 +343,10 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) int id = msg.readInt32(); std::string magic_token = msg.readString(MAGIC_TOKEN_LENGTH); - if (CharacterData *ptr = storage->getCharacter(id, nullptr)) + if (auto character = storage->getCharacter(id, nullptr)) { - int accountID = ptr->getAccountID(); + int accountID = character->getAccountID(); AccountClientHandler::prepareReconnect(magic_token, accountID); - delete ptr; } else { @@ -415,10 +412,9 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) int level = msg.readInt16(); // get the character so we can get the account id - CharacterData *c = storage->getCharacter(id, nullptr); - if (c) + if (auto character = storage->getCharacter(id, nullptr)) { - storage->setAccountLevel(c->getAccountID(), level); + storage->setAccountLevel(character->getAccountID(), level); } } break; @@ -461,8 +457,8 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) result.writeInt32(characterId); // get the character based on the id - CharacterData *ptr = storage->getCharacter(characterId, nullptr); - if (!ptr) + auto character = storage->getCharacter(characterId, nullptr); + if (!character) { // Invalid character LOG_ERROR("Error finding character id for post"); @@ -470,7 +466,7 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) } // get the post for that character and send the post if valid - if (Post *post = postalManager->getPost(ptr)) + if (Post *post = postalManager->getPost(character.get())) { for (unsigned i = 0; i < post->getNumberOfLetters(); ++i) { @@ -487,7 +483,7 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) } // clean up - postalManager->clearPost(ptr); + postalManager->clearPost(character.get()); } comp->send(result); @@ -507,8 +503,8 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) result.writeInt32(senderId); // get their characters - CharacterData *sender = storage->getCharacter(senderId, nullptr); - CharacterData *receiver = storage->getCharacter(receiverName); + auto sender = storage->getCharacter(senderId, nullptr); + auto receiver = storage->getCharacter(receiverName); if (!sender || !receiver) { // Invalid character @@ -519,7 +515,9 @@ void ServerHandler::processMessage(NetComputer *comp, MessageIn &msg) // save the letter LOG_DEBUG("Creating letter"); - auto letter = new Letter(0, sender, receiver); + auto letter = new Letter(0, + std::move(sender), + std::move(receiver)); letter->addText(msg.readString()); while (msg.getUnreadLength() >= 4) { @@ -624,13 +622,13 @@ void GameServerHandler::dumpStatistics(std::ostream &os) } } -void GameServerHandler::sendPartyChange(CharacterData *ptr, int partyId) +void GameServerHandler::sendPartyChange(const CharacterData &character, int partyId) { - GameServer *s = ::getGameServerFromMap(ptr->getMapId()); + GameServer *s = ::getGameServerFromMap(character.getMapId()); if (s) { MessageOut msg(CGMSG_CHANGED_PARTY); - msg.writeInt32(ptr->getDatabaseID()); + msg.writeInt32(character.getDatabaseID()); msg.writeInt32(partyId); s->send(msg); } |