diff options
| author | Orion <orionic.gm@gmail.com> | 2015-06-15 02:03:00 +0300 |
|---|---|---|
| committer | Rochet2 <tqbattlenet@gmail.com> | 2015-06-15 02:03:00 +0300 |
| commit | eeb49d238a292669e95cdbd591fcfcc55eeb560a (patch) | |
| tree | 596cc1c7498a065540a412a6dc1605484924f4ac /src/server/game/Server | |
| parent | 3ada2ed993517a19f9733fcface94787569bbdf9 (diff) | |
Update and enable CMSG_GET_MIRROR_IMAGE_DATA, SMSG_MIRROR_IMAGE_CREATURE_DATA, SMSG_MIRROR_IMAGE_COMPONENTED_DATA.
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 36 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 44 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 3 |
4 files changed, 85 insertions, 4 deletions
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 421a2e9a46c..832dfc82b06 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -706,3 +706,39 @@ void WorldPackets::Spells::UnlearnSkill::Read() { _worldPacket >> SkillLine; } + +void WorldPackets::Spells::GetMirrorImageData::Read() +{ + _worldPacket >> UnitGUID; + _worldPacket >> DisplayID; +} + +WorldPacket const* WorldPackets::Spells::MirrorImageComponentedData::Write() +{ + _worldPacket << UnitGUID; + _worldPacket << DisplayID; + _worldPacket << RaceID; + _worldPacket << Gender; + _worldPacket << ClassID; + _worldPacket << SkinColor; + _worldPacket << FaceVariation; + _worldPacket << HairVariation; + _worldPacket << HairColor; + _worldPacket << BeardVariation; + _worldPacket << GuildGUID; + + _worldPacket << uint32(ItemDisplayID.size()); + + for (auto const& itemDisplayId : ItemDisplayID) + _worldPacket << itemDisplayId; + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Spells::MirrorImageCreatureData::Write() +{ + _worldPacket << UnitGUID; + _worldPacket << DisplayID; + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 9408ac13398..a3fa6c10925 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -694,6 +694,50 @@ namespace WorldPackets void Read() override { } }; + + class GetMirrorImageData final : public ClientPacket + { + public: + GetMirrorImageData(WorldPacket&& packet) : ClientPacket(CMSG_GET_MIRROR_IMAGE_DATA, std::move(packet)) {} + + void Read() override; + + ObjectGuid UnitGUID; + uint32 DisplayID = 0; + }; + + class MirrorImageComponentedData final : public ServerPacket + { + public: + MirrorImageComponentedData() : ServerPacket(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, 8 + 4 + 8 * 1 + 8 + 11 * 4) { } + + WorldPacket const* Write() override; + + ObjectGuid UnitGUID; + uint32 DisplayID = 0; + uint8 RaceID = 0; + uint8 Gender = 0; + uint8 ClassID = 0; + uint8 SkinColor = 0; + uint8 FaceVariation = 0; + uint8 HairVariation = 0; + uint8 HairColor = 0; + uint8 BeardVariation = 0; + ObjectGuid GuildGUID; + + std::vector<uint32> ItemDisplayID; + }; + + class MirrorImageCreatureData final : public ServerPacket + { + public: + MirrorImageCreatureData() : ServerPacket(SMSG_MIRROR_IMAGE_CREATURE_DATA, 8 + 4) { } + + WorldPacket const* Write() override; + + ObjectGuid UnitGUID; + uint32 DisplayID = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 45071d14cd4..e149b0602d4 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -394,7 +394,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_GET_CHALLENGE_MODE_REWARDS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Garrison::GetGarrisonInfo, &WorldSession::HandleGetGarrisonInfo); DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::GetItemPurchaseData, &WorldSession::HandleGetItemPurchaseData); - DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest ); + DEFINE_HANDLER(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Spells::GetMirrorImageData, &WorldSession::HandleMirrorImageDataRequest); DEFINE_HANDLER(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Battleground::GetPVPOptionsEnabled, &WorldSession::HandleGetPVPOptionsEnabled); DEFINE_HANDLER(CMSG_GET_REMAINING_GAME_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_TROPHY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); @@ -1329,8 +1329,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_MASTER_LOOT_CANDIDATE_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MESSAGE_BOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MINIMAP_PING, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_CREATURE_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_COMPONENTED_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_MIRROR_IMAGE_CREATURE_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MISSILE_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index d0242b86440..b46afe6378a 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -498,6 +498,7 @@ namespace WorldPackets class SetActionButton; class UnlearnSkill; class SelfRes; + class GetMirrorImageData; } namespace Talent @@ -1496,7 +1497,7 @@ class WorldSession // Miscellaneous void HandleSpellClick(WorldPacket& recvData); - void HandleMirrorImageDataRequest(WorldPacket& recvData); + void HandleMirrorImageDataRequest(WorldPackets::Spells::GetMirrorImageData& packet); void HandleRemoveGlyph(WorldPacket& recvData); void HandleGuildSetFocusedAchievement(WorldPackets::Achievement::GuildSetFocusedAchievement& setFocusedAchievement); void HandleEquipmentSetSave(WorldPackets::EquipmentSet::SaveEquipmentSet& packet); |
