aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Battlegrounds/BattlegroundMgr.cpp48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 8e145a49fb4..8ce212472e4 100755
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -1144,6 +1144,14 @@ void BattlegroundMgr::BuildBattlegroundListPacket(WorldPacket* data, uint64 guid
if (!player)
return;
+ BattlegroundDataContainer::iterator it = bgDataStore.find(bgTypeId);
+ if (it == bgDataStore.end())
+ return;
+
+ PvPDifficultyEntry const* bracketEntry = GetBattlegroundBracketByLevel(it->second.m_Battlegrounds.begin()->second->GetMapId(), player->getLevel());
+ if (!bracketEntry)
+ return;
+
uint32 winner_conquest = player->GetRandomWinner() ? BG_REWARD_WINNER_CONQUEST_FIRST : BG_REWARD_WINNER_CONQUEST_LAST;
uint32 winner_honor = player->GetRandomWinner() ? BG_REWARD_WINNER_HONOR_FIRST : BG_REWARD_WINNER_HONOR_LAST;
uint32 loser_honor = !player->GetRandomWinner() ? BG_REWARD_LOSER_HONOR_FIRST : BG_REWARD_LOSER_HONOR_LAST;
@@ -1151,15 +1159,15 @@ void BattlegroundMgr::BuildBattlegroundListPacket(WorldPacket* data, uint64 guid
ObjectGuid guidBytes = guid;
data->Initialize(SMSG_BATTLEFIELD_LIST);
- *data << uint32(winner_conquest); // Winner Conquest Reward or Random Winner Conquest Reward
- *data << uint32(winner_conquest); // Winner Conquest Reward or Random Winner Conquest Reward
- *data << uint32(loser_honor); // Loser Honor Reward or Random Loser Honor Reward
- *data << uint32(bgTypeId); // battleground id
- *data << uint32(loser_honor); // Loser Honor Reward or Random Loser Honor Reward
- *data << uint32(winner_honor); // Winner Honor Reward or Random Winner Honor Reward
- *data << uint32(winner_honor); // Winner Honor Reward or Random Winner Honor Reward
- *data << uint8(0); // max level
- *data << uint8(0); // min level
+ *data << uint32(winner_conquest) // Winner Conquest Reward or Random Winner Conquest Reward
+ << uint32(winner_conquest) // Winner Conquest Reward or Random Winner Conquest Reward
+ << uint32(loser_honor) // Loser Honor Reward or Random Loser Honor Reward
+ << uint32(bgTypeId) // battleground id
+ << uint32(loser_honor) // Loser Honor Reward or Random Loser Honor Reward
+ << uint32(winner_honor) // Winner Honor Reward or Random Winner Honor Reward
+ << uint32(winner_honor) // Winner Honor Reward or Random Winner Honor Reward
+ << uint8(bracketEntry->maxLevel) // max level
+ << uint8(bracketEntry->minLevel); // min level
data->WriteBit(guidBytes[0]);
data->WriteBit(guidBytes[1]);
@@ -1186,23 +1194,15 @@ void BattlegroundMgr::BuildBattlegroundListPacket(WorldPacket* data, uint64 guid
data->WriteByteSeq(guidBytes[7]);
data->WriteByteSeq(guidBytes[5]);
- BattlegroundDataContainer::iterator it = bgDataStore.find(bgTypeId);
- if (it != bgDataStore.end())
+ uint32 count = 0;
+ BattlegroundBracketId bracketId = bracketEntry->GetBracketId();
+ BattlegroundClientIdsContainer& clientIds = it->second.m_ClientBattlegroundIds[bracketId];
+ for (BattlegroundClientIdsContainer::const_iterator itr = clientIds.begin(); itr != clientIds.end(); ++itr)
{
- // expected bracket entry
- if (PvPDifficultyEntry const* bracketEntry = GetBattlegroundBracketByLevel(it->second.m_Battlegrounds.begin()->second->GetMapId(), player->getLevel()))
- {
- uint32 count = 0;
- BattlegroundBracketId bracketId = bracketEntry->GetBracketId();
- BattlegroundClientIdsContainer& clientIds = it->second.m_ClientBattlegroundIds[bracketId];
- for (BattlegroundClientIdsContainer::const_iterator itr = clientIds.begin(); itr != clientIds.end(); ++itr)
- {
- *data << uint32(*itr);
- ++count;
- }
- data->PutBits(count_pos, count, 24); // bg instance count
- }
+ *data << uint32(*itr);
+ ++count;
}
+ data->PutBits(count_pos, count, 24); // bg instance count
data->WriteByteSeq(guidBytes[0]);
data->WriteByteSeq(guidBytes[2]);