diff options
author | Shauren <shauren.trinity@gmail.com> | 2012-09-09 15:57:40 +0300 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-09-09 22:43:45 +0100 |
commit | f508f7dbc52f3e41861ef408a440224307a65f61 (patch) | |
tree | dd3efabe1fbda69b0f46b2d8fb93e836c9dc89e8 | |
parent | 9f841da63d44206386f5190689c4f5ee035df41a (diff) |
Core/Guilds: Corrected CMSG_GUILD_NEWS_UPDATE_STICKY structure
Signed-off-by: Nay <dnpd.dd@gmail.com>
-rwxr-xr-x | src/server/game/Handlers/GuildHandler.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp index f5f69b18b62..bbd21176511 100755 --- a/src/server/game/Handlers/GuildHandler.cpp +++ b/src/server/game/Handlers/GuildHandler.cpp @@ -824,16 +824,16 @@ void WorldSession::HandleGuildQueryNewsOpcode(WorldPacket& recvPacket) void WorldSession::HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket) { uint32 newId; - bool unk; + bool sticky; ObjectGuid guid; - recvPacket >> newId; + recvPacket >> id; - unk = recvPacket.ReadBit(); guid[2] = recvPacket.ReadBit(); guid[4] = recvPacket.ReadBit(); guid[3] = recvPacket.ReadBit(); guid[0] = recvPacket.ReadBit(); + sticky = recvPacket.ReadBit(); guid[6] = recvPacket.ReadBit(); guid[7] = recvPacket.ReadBit(); guid[1] = recvPacket.ReadBit(); @@ -850,11 +850,15 @@ void WorldSession::HandleGuildNewsUpdateStickyOpcode(WorldPacket& recvPacket) if (Guild* guild = sGuildMgr->GetGuildById(_player->GetGuildId())) { - if (GuildNewsEntry* guildNew = guild->GetNewsLog().GetNewById(newId)) + if (GuildNewsEntry* newsEntry = guild->GetNewsLog().GetNewById(id)) { - guildNew->Flags ^= 1; + if (sticky) + newsEntry->Flags |= 1; + else + newsEntry->Flags &= ~1; + WorldPacket data; - guild->GetNewsLog().BuildNewsData(newId, *guildNew, data); + guild->GetNewsLog().BuildNewsData(id, *newsEntry, data); SendPacket(&data); } } |