diff options
| author | DJScias <DJScias@gmail.com> | 2015-05-28 18:46:45 +0200 |
|---|---|---|
| committer | Carbenium <carbenium@outlook.com> | 2015-06-02 04:16:24 +0200 |
| commit | 33ba6b74bdf7eaa1a378998dc202cbee1411aec3 (patch) | |
| tree | c523b01cd5f75b3a06417688f2fda51cf5c102fe /src/server/game/Server | |
| parent | b15a0b96bf05e8d2ccf6cf8f9c09a6e58dcf5b0a (diff) | |
Core/PacketsIO: Updated and enabled SMSG_CHAR_CUSTOMIZE, SMSG_CHAR_CUSTOMIZE_FAILED
Closes #14789
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 37 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 29 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 4 |
3 files changed, 68 insertions, 2 deletions
diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index a48639f1b03..9c6bb07f56e 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -498,3 +498,40 @@ WorldPacket const* WorldPackets::Character::SetFactionVisible::Write() _worldPacket << FactionIndex; return &_worldPacket; } + +WorldPackets::Character::CharCustomizeResponse::CharCustomizeResponse(WorldPackets::Character::CharCustomizeInfo const* info) + : ServerPacket(SMSG_CHAR_CUSTOMIZE, 16 + 1 + 1 + 1 + 1 + 1 + 1 + 1) +{ + CharGUID = info->CharGUID; + SexID = info->SexID; + SkinID = info->SkinID; + HairColorID = info->HairColorID; + HairStyleID = info->HairStyleID; + FacialHairStyleID = info->FacialHairStyleID; + FaceID = info->FaceID; + CharName = info->CharName; +} + +WorldPacket const* WorldPackets::Character::CharCustomizeResponse::Write() +{ + _worldPacket << CharGUID; + _worldPacket << uint8(SexID); + _worldPacket << uint8(SkinID); + _worldPacket << uint8(HairColorID); + _worldPacket << uint8(HairStyleID); + _worldPacket << uint8(FacialHairStyleID); + _worldPacket << uint8(FaceID); + _worldPacket.WriteBits(CharName.length(), 6); + _worldPacket.FlushBits(); + _worldPacket.WriteString(CharName); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Character::CharCustomizeFailed::Write() +{ + _worldPacket << uint8(Result); + _worldPacket << CharGUID; + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index b3f280f9411..10f1053f8ee 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -686,6 +686,35 @@ namespace WorldPackets uint32 FactionIndex = 0; }; + + class CharCustomizeResponse final : public ServerPacket + { + public: + CharCustomizeResponse() : ServerPacket(SMSG_CHAR_CUSTOMIZE, 16 + 1 + 1 + 1 + 1 + 1 + 1 + 1) { } + CharCustomizeResponse(CharCustomizeInfo const* customizeInfo); + + WorldPacket const* Write() override; + + ObjectGuid CharGUID; + std::string CharName; + uint8 SexID = 0; + uint8 SkinID = 0; + uint8 HairColorID = 0; + uint8 HairStyleID = 0; + uint8 FacialHairStyleID = 0; + uint8 FaceID = 0; + }; + + class CharCustomizeFailed final : public ServerPacket + { + public: + CharCustomizeFailed() : ServerPacket(SMSG_CHAR_CUSTOMIZE_FAILED, 1 + 16) { } + + WorldPacket const* Write() override; + + uint8 Result = 0; + ObjectGuid CharGUID; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 3a2397eabdc..70a22f0b1bb 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1001,8 +1001,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_SPELL_TIER_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHARACTER_UPGRADE_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_CUSTOMIZE_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAR_FACTION_CHANGE_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHAT_AUTO_RESPONDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |
