summaryrefslogtreecommitdiff
path: root/src/account-server/serverhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/account-server/serverhandler.cpp')
-rw-r--r--src/account-server/serverhandler.cpp54
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);
}