aboutsummaryrefslogtreecommitdiff
path: root/src/game/Group.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Group.cpp')
-rw-r--r--src/game/Group.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/game/Group.cpp b/src/game/Group.cpp
index 8f79f94697c..3e9dcff7d1b 100644
--- a/src/game/Group.cpp
+++ b/src/game/Group.cpp
@@ -212,7 +212,7 @@ bool Group::AddInvite(Player *player)
RemoveInvite(player);
- m_invitees.insert(player->GetGUID());
+ m_invitees.insert(player);
player->SetGroupInvite(this);
@@ -231,14 +231,7 @@ bool Group::AddLeaderInvite(Player *player)
uint32 Group::RemoveInvite(Player *player)
{
- for(InvitesList::iterator itr=m_invitees.begin(); itr!=m_invitees.end(); ++itr)
- {
- if((*itr) == player->GetGUID())
- {
- m_invitees.erase(itr);
- break;
- }
- }
+ m_invitees.erase(player);
player->SetGroupInvite(NULL);
return GetMembersCount();
@@ -247,12 +240,29 @@ uint32 Group::RemoveInvite(Player *player)
void Group::RemoveAllInvites()
{
for(InvitesList::iterator itr=m_invitees.begin(); itr!=m_invitees.end(); ++itr)
+ (*itr)->SetGroupInvite(NULL);
+
+ m_invitees.clear();
+}
+
+Player* Group::GetInvited(const uint64& guid) const
+{
+ for(InvitesList::const_iterator itr = m_invitees.begin(); itr != m_invitees.end(); ++itr)
{
- Player *invitee = objmgr.GetPlayer(*itr);
- if(invitee)
- invitee->SetGroupInvite(NULL);
+ if((*itr)->GetGUID() == guid)
+ return (*itr);
}
- m_invitees.clear();
+ return NULL;
+}
+
+Player* Group::GetInvited(const std::string& name) const
+{
+ for(InvitesList::const_iterator itr = m_invitees.begin(); itr != m_invitees.end(); ++itr)
+ {
+ if((*itr)->GetName() == name)
+ return (*itr);
+ }
+ return NULL;
}
bool Group::AddMember(const uint64 &guid, const char* name)