aboutsummaryrefslogtreecommitdiff
path: root/src/game/ArenaTeam.cpp
diff options
context:
space:
mode:
authorn0n4m3 <none@none>2010-04-11 11:06:51 +0400
committern0n4m3 <none@none>2010-04-11 11:06:51 +0400
commit93f7e2796c62f8838764ed9f0a33b40f8c30433a (patch)
tree0421cc7acdddc5e929826ab2d6370eef42af07c2 /src/game/ArenaTeam.cpp
parent1dc4f7c745f9f061a545c11c0132a67e5f828702 (diff)
Some fixes to guild/arenateam events. Big thx to TOM_RUS.
--HG-- branch : trunk
Diffstat (limited to 'src/game/ArenaTeam.cpp')
-rw-r--r--src/game/ArenaTeam.cpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp
index 23e97be8dcb..ab6d6df4a0f 100644
--- a/src/game/ArenaTeam.cpp
+++ b/src/game/ArenaTeam.cpp
@@ -312,9 +312,8 @@ void ArenaTeam::Disband(WorldSession *session)
// event
if (session)
{
- WorldPacket data;
- session->BuildArenaTeamEventPacket(&data, ERR_ARENA_TEAM_DISBANDED_S, 2, session->GetPlayerName(), GetName(), "");
- BroadcastPacket(&data);
+ // probably only 1 string required...
+ BroadcastEvent(ERR_ARENA_TEAM_DISBANDED_S, 0, 2, session->GetPlayerName(), GetName(), "");
}
while (!m_members.empty())
@@ -488,6 +487,37 @@ void ArenaTeam::BroadcastPacket(WorldPacket *packet)
}
}
+void ArenaTeam::BroadcastEvent(ArenaTeamEvents event, uint64 guid, uint8 strCount, std::string str1, std::string str2, std::string str3)
+{
+ WorldPacket data(SMSG_ARENA_TEAM_EVENT, 1+1+1);
+ data << uint8(event);
+ data << uint8(strCount);
+ switch (strCount)
+ {
+ case 0:
+ break;
+ case 1:
+ data << str1;
+ break;
+ case 2:
+ data << str1 << str2;
+ break;
+ case 3:
+ data << str1 << str2 << str3;
+ break;
+ default:
+ sLog.outError("Unhandled strCount %u in ArenaTeam::BroadcastEvent", strCount);
+ return;
+ }
+
+ if (guid)
+ data << uint64(guid);
+
+ BroadcastPacket(&data);
+
+ sLog.outDebug("WORLD: Sent SMSG_ARENA_TEAM_EVENT");
+}
+
uint8 ArenaTeam::GetSlotByType(uint32 type)
{
switch(type)