aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r--src/server/game/Groups/Group.cpp36
1 files changed, 14 insertions, 22 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 617a955fea0..d931343b5e2 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -986,21 +986,18 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
Player* member = itr->GetSource();
if (!member || !member->GetSession())
continue;
- if (i->AllowedForPlayer(member))
+ if (member->IsAtGroupRewardDistance(pLootedObject) && i->AllowedForPlayer(member))
{
- if (member->IsAtGroupRewardDistance(pLootedObject))
- {
- r->totalPlayersRolling++;
+ r->totalPlayersRolling++;
- if (member->GetPassOnGroupLoot())
- {
- r->playerVote[member->GetGUID()] = PASS;
- r->totalPass++;
- // can't broadcast the pass now. need to wait until all rolling players are known.
- }
- else
- r->playerVote[member->GetGUID()] = NOT_EMITED_YET;
+ if (member->GetPassOnGroupLoot())
+ {
+ r->playerVote[member->GetGUID()] = PASS;
+ r->totalPass++;
+ // can't broadcast the pass now. need to wait until all rolling players are known.
}
+ else
+ r->playerVote[member->GetGUID()] = NOT_EMITED_YET;
}
}
@@ -1072,13 +1069,10 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject)
if (!member || !member->GetSession())
continue;
- if (i->AllowedForPlayer(member))
+ if (member->IsAtGroupRewardDistance(pLootedObject) && i->AllowedForPlayer(member))
{
- if (member->IsAtGroupRewardDistance(pLootedObject))
- {
- r->totalPlayersRolling++;
- r->playerVote[member->GetGUID()] = NOT_EMITED_YET;
- }
+ r->totalPlayersRolling++;
+ r->playerVote[member->GetGUID()] = NOT_EMITED_YET;
}
}
@@ -1133,8 +1127,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
if (!playerToRoll || !playerToRoll->GetSession())
continue;
- bool allowedForPlayer = i->AllowedForPlayer(playerToRoll);
- if (allowedForPlayer && playerToRoll->IsAtGroupRewardDistance(lootedObject))
+ if (playerToRoll->IsAtGroupRewardDistance(lootedObject) && i->AllowedForPlayer(playerToRoll))
{
r->totalPlayersRolling++;
if (playerToRoll->GetPassOnGroupLoot())
@@ -1209,8 +1202,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject)
if (!playerToRoll || !playerToRoll->GetSession())
continue;
- bool allowedForPlayer = i->AllowedForPlayer(playerToRoll);
- if (allowedForPlayer && playerToRoll->IsAtGroupRewardDistance(lootedObject))
+ if (playerToRoll->IsAtGroupRewardDistance(lootedObject) && i->AllowedForPlayer(playerToRoll))
{
r->totalPlayersRolling++;
r->playerVote[playerToRoll->GetGUID()] = NOT_EMITED_YET;