diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2015-08-02 20:19:52 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2015-08-02 20:19:52 +0200 |
| commit | f3d44b0309f428c3b45411275d4a1d1f2f5c8bf4 (patch) | |
| tree | c597f937d833aaeadd761775ace30c0d157cd7ce /src/server/game/Server | |
| parent | 49a6e600ea3abb23400b9814e39668d40c6005d7 (diff) | |
Core/PacketIO: Update and enabled SMSG_LOOT_LIST opcode
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/LootPackets.cpp | 18 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/LootPackets.h | 12 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
3 files changed, 31 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/LootPackets.cpp b/src/server/game/Server/Packets/LootPackets.cpp index 029196d22f7..863179b702e 100644 --- a/src/server/game/Server/Packets/LootPackets.cpp +++ b/src/server/game/Server/Packets/LootPackets.cpp @@ -121,3 +121,21 @@ WorldPacket const* WorldPackets::Loot::LootReleaseResponse::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Loot::LootList::Write() +{ + _worldPacket << Owner; + + _worldPacket.WriteBit(Master.is_initialized()); + _worldPacket.WriteBit(RoundRobinWinner.is_initialized()); + + _worldPacket.FlushBits(); + + if (Master) + _worldPacket << *Master; + + if (RoundRobinWinner) + _worldPacket << *RoundRobinWinner; + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/LootPackets.h b/src/server/game/Server/Packets/LootPackets.h index fd8f545a19f..b3f9e703ba2 100644 --- a/src/server/game/Server/Packets/LootPackets.h +++ b/src/server/game/Server/Packets/LootPackets.h @@ -166,6 +166,18 @@ namespace WorldPackets ObjectGuid LootObj; ObjectGuid Owner; }; + + class LootList final : public ServerPacket + { + public: + LootList() : ServerPacket(SMSG_LOOT_LIST, 3 * 16) { } + + WorldPacket const* Write() override; + + ObjectGuid Owner; + Optional<ObjectGuid> Master; + Optional<ObjectGuid> RoundRobinWinner; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 7e5fe5e5e29..6eda0a0a009 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1307,7 +1307,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ALL_PASSED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_CONTENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_ITEM_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_MONEY_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_LOOT_RELEASE_ALL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |
