aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/CharacterHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Handlers/CharacterHandler.cpp')
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp61
1 files changed, 17 insertions, 44 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 797f7de6210..6845ebb383b 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -44,6 +44,7 @@
#include "SharedDefines.h"
#include "SocialMgr.h"
#include "SystemConfig.h"
+#include "SystemPackets.h"
#include "UpdateMask.h"
#include "Util.h"
#include "World.h"
@@ -863,36 +864,14 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder)
// Send MOTD
{
- data.Initialize(SMSG_MOTD, 50); // new in 2.0.1
- data << (uint32)0;
-
- uint32 linecount=0;
- std::string str_motd = sWorld->GetMotd();
- std::string::size_type pos, nextpos;
-
- pos = 0;
- while ((nextpos= str_motd.find('@', pos)) != std::string::npos)
- {
- if (nextpos != pos)
- {
- data << str_motd.substr(pos, nextpos-pos);
- ++linecount;
- }
- pos = nextpos+1;
- }
-
- if (pos<str_motd.length())
- {
- data << str_motd.substr(pos);
- ++linecount;
- }
-
- data.put(0, linecount);
-
- SendPacket(&data);
+ WorldPackets::System::MOTD motd;
+ motd.Text = &sWorld->GetMotd();
+ SendPacket(motd.Write());
TC_LOG_DEBUG("network", "WORLD: Sent motd (SMSG_MOTD)");
+ }
- // send server info
+ // send server info
+ {
if (sWorld->getIntConfig(CONFIG_ENABLE_SINFO_LOGIN) == 1)
chH.PSendSysMessage(_FULLVERSION);
@@ -2163,31 +2142,25 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recvData)
SendCharFactionChange(RESPONSE_SUCCESS, factionChangeInfo);
}
-void WorldSession::HandleRandomizeCharNameOpcode(WorldPacket& recvData)
+void WorldSession::HandleRandomizeCharNameOpcode(WorldPackets::Character::GenerateRandomCharacterName& packet)
{
- uint8 gender, race;
-
- recvData >> race;
- recvData >> gender;
-
- if (!Player::IsValidRace(race))
+ if (!Player::IsValidRace(packet.Race))
{
- TC_LOG_ERROR("misc", "Invalid race (%u) sent by accountId: %u", race, GetAccountId());
+ TC_LOG_ERROR("misc", "Invalid race (%u) sent by accountId: %u", packet.Race, GetAccountId());
return;
}
- if (!Player::IsValidGender(gender))
+ if (!Player::IsValidGender(packet.Sex))
{
- TC_LOG_ERROR("misc", "Invalid gender (%u) sent by accountId: %u", gender, GetAccountId());
+ TC_LOG_ERROR("misc", "Invalid gender (%u) sent by accountId: %u", packet.Sex, GetAccountId());
return;
}
- std::string const* name = GetRandomCharacterName(race, gender);
- WorldPacket data(SMSG_RANDOMIZE_CHAR_NAME, 10);
- data.WriteBit(0); // unk
- data.WriteBits(name->size(), 7);
- data.WriteString(*name);
- SendPacket(&data);
+ WorldPackets::Character::GenerateRandomCharacterNameResult result;
+ result.Success = true;
+ result.Name = GetRandomCharacterName(packet.Race, packet.Sex);
+
+ SendPacket(result.Write());
}
void WorldSession::HandleReorderCharacters(WorldPackets::Character::ReorderCharacters& reorderChars)