aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2017-02-05 23:42:31 +0100
committerShauren <shauren.trinity@gmail.com>2017-02-05 23:42:31 +0100
commit14dfc377b48bc909894396e65d4e4ce89d9708b6 (patch)
tree4c4a44bbbbd26e1266f1ffead2ce16890035e335 /src/server/game/Groups/Group.cpp
parent075f0e26ccaea835f1b3b771b717e9edef0d0b59 (diff)
Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer Fixed some more crashes * Correction
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;