diff options
| author | Shauren <shauren.trinity@gmail.com> | 2015-10-26 17:06:30 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2015-10-26 17:06:30 +0100 |
| commit | f7dba226fea3481236032eae69cf2bff484f0234 (patch) | |
| tree | c5c05f906e9fbea9acbe5fbce97dcc28b7827fad | |
| parent | c9868f8dde7af861aeff26537f65c5f8c471e9a6 (diff) | |
Core/PacketIO: Started work on updating last bunch of packets still using old ObjectGuid::operator[] to remove it entirely
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 34 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 | ||||
| -rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 26 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/ChatPackets.h | 11 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/SpellPackets.h | 13 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 3 |
9 files changed, 55 insertions, 54 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 16fa3cd7f06..a1a1afe6f74 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14492,32 +14492,14 @@ void Unit::SetAuraStack(uint32 spellId, Unit* target, uint32 stack) aura->SetStackAmount(stack); } -void Unit::SendPlaySpellVisualKit(uint32 id, uint32 unkParam) -{ - ObjectGuid guid = GetGUID(); - - WorldPacket data(SMSG_PLAY_SPELL_VISUAL_KIT, 4 + 4+ 4 + 8); - data << uint32(0); - data << uint32(id); // SpellVisualKit.dbc index - data << uint32(unkParam); - data.WriteBit(guid[4]); - data.WriteBit(guid[7]); - data.WriteBit(guid[5]); - data.WriteBit(guid[3]); - data.WriteBit(guid[1]); - data.WriteBit(guid[2]); - data.WriteBit(guid[0]); - data.WriteBit(guid[6]); - data.FlushBits(); - data.WriteByteSeq(guid[0]); - data.WriteByteSeq(guid[4]); - data.WriteByteSeq(guid[1]); - data.WriteByteSeq(guid[6]); - data.WriteByteSeq(guid[7]); - data.WriteByteSeq(guid[2]); - data.WriteByteSeq(guid[3]); - data.WriteByteSeq(guid[5]); - SendMessageToSet(&data, true); +void Unit::SendPlaySpellVisualKit(uint32 id, uint32 type) +{ + WorldPackets::Spells::PlaySpellVisualKit playSpellVisualKit; + playSpellVisualKit.Unit = GetGUID(); + playSpellVisualKit.KitRecID = id; + playSpellVisualKit.KitType = type; + playSpellVisualKit.Duration = 0; + SendMessageToSet(playSpellVisualKit.Write(), true); } void Unit::ApplyResilience(Unit const* victim, int32* damage) const diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index c6a012ac1b7..5124513e8ad 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1626,7 +1626,7 @@ class Unit : public WorldObject Aura* AddAura(uint32 spellId, Unit* target); Aura* AddAura(SpellInfo const* spellInfo, uint32 effMask, Unit* target); void SetAuraStack(uint32 spellId, Unit* target, uint32 stack); - void SendPlaySpellVisualKit(uint32 id, uint32 unkParam); + void SendPlaySpellVisualKit(uint32 id, uint32 type); void DeMorph(); diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index c200c0851b2..88ad8358484 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -635,31 +635,9 @@ void WorldSession::HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet) creature->AI()->ReceiveEmote(_player, packet.SoundIndex); } -void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recvData) +void WorldSession::HandleChatIgnoredOpcode(WorldPackets::Chat::ChatReportIgnored& chatReportIgnored) { - ObjectGuid guid; - uint8 unk; - - recvData >> unk; // probably related to spam reporting - guid[5] = recvData.ReadBit(); - guid[2] = recvData.ReadBit(); - guid[6] = recvData.ReadBit(); - guid[4] = recvData.ReadBit(); - guid[7] = recvData.ReadBit(); - guid[0] = recvData.ReadBit(); - guid[1] = recvData.ReadBit(); - guid[3] = recvData.ReadBit(); - - recvData.ReadByteSeq(guid[0]); - recvData.ReadByteSeq(guid[6]); - recvData.ReadByteSeq(guid[5]); - recvData.ReadByteSeq(guid[1]); - recvData.ReadByteSeq(guid[4]); - recvData.ReadByteSeq(guid[3]); - recvData.ReadByteSeq(guid[7]); - recvData.ReadByteSeq(guid[2]); - - Player* player = ObjectAccessor::FindConnectedPlayer(guid); + Player* player = ObjectAccessor::FindConnectedPlayer(chatReportIgnored.IgnoredGUID); if (!player || !player->GetSession()) return; diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp index 5d242e430ce..9913ccde14f 100644 --- a/src/server/game/Server/Packets/ChatPackets.cpp +++ b/src/server/game/Server/Packets/ChatPackets.cpp @@ -265,3 +265,9 @@ WorldPacket const* WorldPackets::Chat::DefenseMessage::Write() return &_worldPacket; } + +void WorldPackets::Chat::ChatReportIgnored::Read() +{ + _worldPacket >> IgnoredGUID; + _worldPacket >> Reason; +} diff --git a/src/server/game/Server/Packets/ChatPackets.h b/src/server/game/Server/Packets/ChatPackets.h index fa4b83ef5ef..66a38192836 100644 --- a/src/server/game/Server/Packets/ChatPackets.h +++ b/src/server/game/Server/Packets/ChatPackets.h @@ -289,6 +289,17 @@ namespace WorldPackets int32 ZoneID = 0; std::string MessageText; }; + + class ChatReportIgnored final : public ClientPacket + { + public: + ChatReportIgnored(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_REPORT_IGNORED, std::move(packet)) { } + + void Read() override; + + ObjectGuid IgnoredGUID; + uint8 Reason = 0; + }; } } diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 9fc835b00c3..a908864c6a5 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -642,6 +642,16 @@ WorldPacket const* WorldPackets::Spells::CancelSpellVisual::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Spells::PlaySpellVisualKit::Write() +{ + _worldPacket << Unit; + _worldPacket << int32(KitRecID); + _worldPacket << int32(KitType); + _worldPacket << uint32(Duration); + + return &_worldPacket; +} + void WorldPackets::Spells::CancelCast::Read() { _worldPacket >> SpellID; diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index 39491b27130..451caf6d577 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -616,6 +616,19 @@ namespace WorldPackets int32 SpellVisualID = 0; }; + class PlaySpellVisualKit final : public ServerPacket + { + public: + PlaySpellVisualKit() : ServerPacket(SMSG_PLAY_SPELL_VISUAL_KIT, 16 + 4 + 4 + 4) { } + + WorldPacket const* Write() override; + + ObjectGuid Unit; + int32 KitRecID = 0; + int32 KitType = 0; + uint32 Duration = 0; + }; + class CancelCast final : public ClientPacket { public: diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 34181ec31f1..d8a376a124d 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -317,7 +317,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CHAT_MESSAGE_YELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessage, &WorldSession::HandleChatMessageOpcode); DEFINE_HANDLER(CMSG_CHAT_REGISTER_ADDON_PREFIXES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatRegisterAddonPrefixes, &WorldSession::HandleAddonRegisteredPrefixesOpcode); DEFINE_HANDLER(CMSG_CHAT_REPORT_FILTERED, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHAT_REPORT_IGNORED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChatIgnoredOpcode ); + DEFINE_HANDLER(CMSG_CHAT_REPORT_IGNORED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatReportIgnored, &WorldSession::HandleChatIgnoredOpcode); DEFINE_HANDLER(CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatUnregisterAllAddonPrefixes, &WorldSession::HandleUnregisterAllAddonPrefixesOpcode); DEFINE_HANDLER(CMSG_CHECK_RAF_EMAIL_ENABLED, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_CHECK_WOW_TOKEN_VETERAN_ELIGIBILITY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL); @@ -1490,7 +1490,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SOUND, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPEAKERBOT_SOUND, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_SPELL_VISUAL_KIT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PLAY_TIME_WARNING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PONG, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_POWER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 6ad2bf6dce0..302a0522e4c 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -219,6 +219,7 @@ namespace WorldPackets class EmoteClient; class ChatRegisterAddonPrefixes; class ChatUnregisterAllAddonPrefixes; + class ChatReportIgnored; } namespace Combat @@ -1378,7 +1379,7 @@ class WorldSession void SendPlayerAmbiguousNotice(std::string const& name); void SendChatRestrictedNotice(ChatRestrictionType restriction); void HandleTextEmoteOpcode(WorldPackets::Chat::CTextEmote& packet); - void HandleChatIgnoredOpcode(WorldPacket& recvPacket); + void HandleChatIgnoredOpcode(WorldPackets::Chat::ChatReportIgnored& chatReportIgnored); void HandleUnregisterAllAddonPrefixesOpcode(WorldPackets::Chat::ChatUnregisterAllAddonPrefixes& packet); void HandleAddonRegisteredPrefixesOpcode(WorldPackets::Chat::ChatRegisterAddonPrefixes& packet); |
