aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rwxr-xr-xsrc/server/game/Groups/Group.cpp31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 6fb15cb7756..527b7801a72 100755
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -104,12 +104,15 @@ bool Group::Create(Player* leader)
m_leaderGuid = leaderGuid;
m_leaderName = leader->GetName();
- m_groupType = (isBGGroup() || isBFGroup()) ? GROUPTYPE_BGRAID : GROUPTYPE_NORMAL;
+ if (isBGGroup() || isBFGroup())
+ m_groupType = GROUPTYPE_BGRAID;
if (m_groupType & GROUPTYPE_RAID)
_initRaidSubGroupsCounter();
- m_lootMethod = GROUP_LOOT;
+ if (!isLFGGroup())
+ m_lootMethod = GROUP_LOOT;
+
m_lootThreshold = ITEM_QUALITY_UNCOMMON;
m_looterGuid = leaderGuid;
@@ -219,13 +222,7 @@ void Group::LoadMemberFromDB(uint32 guidLow, uint8 memberFlags, uint8 subgroup,
SubGroupCounterIncrease(subgroup);
- if (isLFGGroup())
- {
- LfgDungeonSet Dungeons;
- Dungeons.insert(sLFGMgr->GetDungeon(GetGUID()));
- sLFGMgr->SetSelectedDungeons(member.guid, Dungeons);
- sLFGMgr->SetState(member.guid, sLFGMgr->GetState(GetGUID()));
- }
+ sLFGMgr->SetupGroupMember(member.guid, GetGUID());
}
void Group::ConvertToLFG()
@@ -630,9 +627,9 @@ bool Group::RemoveMember(uint64 guid, const RemoveMethod &method /*= GROUP_REMOV
if (isLFGGroup() && GetMembersCount() == 1)
{
- Player* Leader = ObjectAccessor::FindPlayer(GetLeaderGUID());
- LFGDungeonData const* dungeon = sLFGMgr->GetLFGDungeon(sLFGMgr->GetDungeon(GetGUID()));
- if ((Leader && dungeon && Leader->isAlive() && Leader->GetMapId() != uint32(dungeon->map)) || !dungeon)
+ Player* leader = ObjectAccessor::FindPlayer(GetLeaderGUID());
+ uint32 mapId = sLFGMgr->GetDungeonMapId(GetGUID());
+ if (!mapId || !leader || (leader->isAlive() && leader->GetMapId() != mapId))
{
Disband();
return false;
@@ -2139,7 +2136,7 @@ void Group::BroadcastGroupUpdate(void)
{
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
pp->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
- sLog->outDebug(LOG_FILTER_GENERAL, "-- Forced group value update for '%s'", pp->GetName());
+ sLog->outDebug(LOG_FILTER_GENERAL, "-- Forced group value update for '%s'", pp->GetName().c_str());
}
}
}
@@ -2147,12 +2144,12 @@ void Group::BroadcastGroupUpdate(void)
void Group::ResetMaxEnchantingLevel()
{
m_maxEnchantingLevel = 0;
- Player* pMember = NULL;
+ Player* member = NULL;
for (member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
{
- pMember = ObjectAccessor::FindPlayer(citr->guid);
- if (pMember && m_maxEnchantingLevel < pMember->GetSkillValue(SKILL_ENCHANTING))
- m_maxEnchantingLevel = pMember->GetSkillValue(SKILL_ENCHANTING);
+ member = ObjectAccessor::FindPlayer(citr->guid);
+ if (member && m_maxEnchantingLevel < member->GetSkillValue(SKILL_ENCHANTING))
+ m_maxEnchantingLevel = member->GetSkillValue(SKILL_ENCHANTING);
}
}