diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/BattlegroundMgr.cpp | 46 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/BattlegroundMgr.h | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/BattlegroundPackets.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Server/Packets/BattlegroundPackets.h | 20 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 4 |
6 files changed, 41 insertions, 56 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 166eff5e495..edff48629d7 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1008,10 +1008,11 @@ void Battleground::RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool Sen AddToBGFreeSlotQueue(); sBattlegroundMgr->ScheduleQueueUpdate(0, 0, bgQueueTypeId, bgTypeId, GetBracketId()); } + // Let others know - WorldPacket data; - sBattlegroundMgr->BuildPlayerLeftBattlegroundPacket(&data, guid); - SendPacketToTeam(team, &data, player, false); + WorldPackets::Battleground::BattlegroundPlayerLeft playerLeft; + playerLeft.Guid = guid; + SendPacketToTeam(team, playerLeft.Write(), player, false); } if (player) @@ -1096,9 +1097,9 @@ void Battleground::AddPlayer(Player* player) UpdatePlayersCountByTeam(team, false); // +1 player - WorldPacket data; - sBattlegroundMgr->BuildPlayerJoinedBattlegroundPacket(&data, player->GetGUID()); - SendPacketToTeam(team, &data, player, false); + WorldPackets::Battleground::BattlegroundPlayerJoined playerJoined; + playerJoined.Guid = player->GetGUID(); + SendPacketToTeam(team, playerJoined.Write(), player, false); // BG Status packet BattlegroundQueueTypeId bgQueueTypeId = sBattlegroundMgr->BGQueueTypeId(m_TypeID, GetArenaType()); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 3524588dc4c..1bb636078e2 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -212,52 +212,6 @@ void BattlegroundMgr::BuildBattlegroundStatusFailed(WorldPackets::Battleground:: battlefieldStatus->ClientID = *errorGuid; } -void BattlegroundMgr::BuildPlayerLeftBattlegroundPacket(WorldPacket* data, ObjectGuid guid) -{ - data->Initialize(SMSG_BATTLEGROUND_PLAYER_LEFT, 8); - - data->WriteBit(guid[7]); - data->WriteBit(guid[6]); - data->WriteBit(guid[2]); - data->WriteBit(guid[4]); - data->WriteBit(guid[5]); - data->WriteBit(guid[1]); - data->WriteBit(guid[3]); - data->WriteBit(guid[0]); - - data->WriteByteSeq(guid[4]); - data->WriteByteSeq(guid[2]); - data->WriteByteSeq(guid[5]); - data->WriteByteSeq(guid[7]); - data->WriteByteSeq(guid[0]); - data->WriteByteSeq(guid[6]); - data->WriteByteSeq(guid[1]); - data->WriteByteSeq(guid[3]); -} - -void BattlegroundMgr::BuildPlayerJoinedBattlegroundPacket(WorldPacket* data, ObjectGuid guid) -{ - data->Initialize(SMSG_BATTLEGROUND_PLAYER_JOINED, 8); - - data->WriteBit(guid[0]); - data->WriteBit(guid[4]); - data->WriteBit(guid[3]); - data->WriteBit(guid[5]); - data->WriteBit(guid[7]); - data->WriteBit(guid[6]); - data->WriteBit(guid[2]); - data->WriteBit(guid[1]); - - data->WriteByteSeq(guid[1]); - data->WriteByteSeq(guid[5]); - data->WriteByteSeq(guid[3]); - data->WriteByteSeq(guid[2]); - data->WriteByteSeq(guid[0]); - data->WriteByteSeq(guid[7]); - data->WriteByteSeq(guid[4]); - data->WriteByteSeq(guid[6]); -} - Battleground* BattlegroundMgr::GetBattleground(uint32 instanceId, BattlegroundTypeId bgTypeId) { if (!instanceId) diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h index 55afad9e6c6..ff7b3f86f1c 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.h +++ b/src/server/game/Battlegrounds/BattlegroundMgr.h @@ -83,8 +83,6 @@ class BattlegroundMgr void Update(uint32 diff); /* Packet Building */ - void BuildPlayerJoinedBattlegroundPacket(WorldPacket* data, ObjectGuid guid); - void BuildPlayerLeftBattlegroundPacket(WorldPacket* data, ObjectGuid guid); void SendBattlegroundList(Player* player, ObjectGuid const& guid, BattlegroundTypeId bgTypeId); void BuildBattlegroundStatusHeader(WorldPackets::Battleground::BattlefieldStatusHeader* battlefieldStatus, Battleground* bg, Player* player, uint32 ticketId, uint32 joinTime, uint32 arenaType); void BuildBattlegroundStatusNone(WorldPackets::Battleground::BattlefieldStatusNone* battlefieldStatus, Player* player, uint32 ticketId, uint32 joinTime, uint32 arenaType); diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp index ac65f2d6361..1124a3b9d6e 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.cpp +++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp @@ -253,3 +253,15 @@ WorldPacket const* WorldPackets::Battleground::BattlegroundPlayerPositions::Writ return &_worldPacket; } + +WorldPacket const* WorldPackets::Battleground::BattlegroundPlayerJoined::Write() +{ + _worldPacket << Guid; + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::BattlegroundPlayerLeft::Write() +{ + _worldPacket << Guid; + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h index eaf38f0208d..d532ec949b8 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.h +++ b/src/server/game/Server/Packets/BattlegroundPackets.h @@ -336,6 +336,26 @@ namespace WorldPackets std::vector<BattlegroundPlayerPosition> FlagCarriers; }; + + class BattlegroundPlayerJoined final : public ServerPacket + { + public: + BattlegroundPlayerJoined() : ServerPacket(SMSG_BATTLEGROUND_PLAYER_JOINED, 16) { } + + WorldPacket const* Write() override; + + ObjectGuid Guid; + }; + + class BattlegroundPlayerLeft final : public ServerPacket + { + public: + BattlegroundPlayerLeft() : ServerPacket(SMSG_BATTLEGROUND_PLAYER_LEFT, 16) { } + + WorldPacket const* Write() override; + + ObjectGuid Guid; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index b72c6f73e84..0e411a502e6 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -896,8 +896,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_JOINED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_LEFT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_PLAYER_POSITIONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_POINTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_CHALLENGE_ABORT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |