diff options
author | n0n4m3 <none@none> | 2010-04-11 11:06:51 +0400 |
---|---|---|
committer | n0n4m3 <none@none> | 2010-04-11 11:06:51 +0400 |
commit | 93f7e2796c62f8838764ed9f0a33b40f8c30433a (patch) | |
tree | 0421cc7acdddc5e929826ab2d6370eef42af07c2 /src/game/ArenaTeam.cpp | |
parent | 1dc4f7c745f9f061a545c11c0132a67e5f828702 (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.cpp | 36 |
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) |