aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp13
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp46
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h2
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.cpp12
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.h20
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp4
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);