From a487ddad4e2dd9099bb5b09862c17d47bb01fbef Mon Sep 17 00:00:00 2001 From: MitchesD Date: Thu, 23 Jul 2015 22:00:40 +0200 Subject: Core/PacketIO: updated SMSG_CONVERT_RUNE and SMSG_RESYNC_RUNES --- src/server/game/Server/Packets/SpellPackets.cpp | 20 ++++++++++++++++++ src/server/game/Server/Packets/SpellPackets.h | 27 +++++++++++++++++++++++++ src/server/game/Server/Protocol/Opcodes.cpp | 4 ++-- 3 files changed, 49 insertions(+), 2 deletions(-) (limited to 'src/server/game/Server') diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp index 00ce2593287..955888657c9 100644 --- a/src/server/game/Server/Packets/SpellPackets.cpp +++ b/src/server/game/Server/Packets/SpellPackets.cpp @@ -745,3 +745,23 @@ void WorldPackets::Spells::SpellClick::Read() _worldPacket >> SpellClickUnitGuid; TryAutoDismount = _worldPacket.ReadBit(); } + +WorldPacket const* WorldPackets::Spells::ConvertRune::Write() +{ + _worldPacket << uint8(Index); + _worldPacket << uint8(Rune); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Spells::ResyncRunes::Write() +{ + _worldPacket << uint32(Runes.size()); + for (auto const& rune : Runes) + { + _worldPacket << uint8(rune.RuneType); + _worldPacket << uint8(rune.Cooldown); + } + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h index b9388c02116..f5df5e32da0 100644 --- a/src/server/game/Server/Packets/SpellPackets.h +++ b/src/server/game/Server/Packets/SpellPackets.h @@ -749,6 +749,33 @@ namespace WorldPackets ObjectGuid SpellClickUnitGuid; bool TryAutoDismount = false; }; + + class ConvertRune final : public ServerPacket + { + public: + ConvertRune() : ServerPacket(SMSG_CONVERT_RUNE, 1 + 1) { } + + WorldPacket const* Write() override; + + uint8 Index = 0; + uint8 Rune = 0; + }; + + class ResyncRunes final : public ServerPacket + { + public: + struct ResyncRune + { + uint8 RuneType = 0; + uint8 Cooldown = 0; + }; + + ResyncRunes(size_t size) : ServerPacket(SMSG_RESYNC_RUNES, 4 + 2 * size) { } + + WorldPacket const* Write() override; + + std::vector Runes; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 38248b9daf6..c911213f99e 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1033,7 +1033,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONSOLE_WRITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTROL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_CHEAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COOLDOWN_EVENT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CORPSE_LOCATION, STATUS_NEVER, CONNECTION_TYPE_REALM); @@ -1566,7 +1566,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_REQUEST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESYNC_RUNES, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHANGED_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_CHOSEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_INFORM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); -- cgit v1.2.3