[7455] Implemented condition that player can be in 2 groups in 1 time - BG raid and normal group / raid. Author: Triply

Patch is tested, but can cause problems / unexpected behaviour.
    TODO: set raid leader of battleground raid to raid leader who entered BG
    TODO: when player leaves group, he is removed from GroupQueueInfo, and for him is created new GroupQueueInfo in normal queue.

    Signed-off-by: Triply <[email protected]>

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-14 20:00:02 -06:00
parent d6e878caf2
commit 9041286aa2
9 changed files with 170 additions and 69 deletions
+8
View File
@@ -2166,6 +2166,13 @@ class TRINITY_DLL_SPEC Player : public Unit
void SetAuraUpdateMaskForRaid(uint8 slot) { m_auraRaidUpdateMask |= (uint64(1) << slot); }
Player* GetNextRandomRaidMember(float radius);
PartyResult CanUninviteFromGroup() const;
// BattleGround Group System
void SetBattleGroundRaid(Group *group, int8 subgroup = -1);
void RemoveFromBattleGroundRaid();
Group * GetOriginalGroup() { return m_originalGroup.getTarget(); }
GroupReference& GetOriginalGroupRef() { return m_originalGroup; }
uint8 GetOriginalSubGroup() const { return m_originalGroup.getSubGroup(); }
void SetOriginalGroup(Group *group, int8 subgroup = -1);
GridReference<Player> &GetGridRef() { return m_gridRef; }
MapReference &GetMapRef() { return m_mapRef; }
@@ -2407,6 +2414,7 @@ class TRINITY_DLL_SPEC Player : public Unit
// Groups
GroupReference m_group;
GroupReference m_originalGroup;
Group *m_groupInvite;
uint32 m_groupUpdateMask;
uint64 m_auraRaidUpdateMask;